From 244e76a552ef05a5067134b1065d26dd89246d8c Mon Sep 17 00:00:00 2001 From: Rigel Kent Date: Tue, 17 Apr 2018 00:49:04 +0200 Subject: feature: initial syndication feeds support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Provides rss 2.0, atom 1.0 and json 1.0 feeds for videos (instance and account-wide) on listings and video-watch views. * still lacks redis caching * still lacks lastBuildDate support * still lacks channel-wide support * still lacks semantic annotation (for licenses, NSFW warnings, etc.) * still lacks love ( ˘ ³˘) * RSS: has MRSS support for torrent lists! * RSS: includes the first torrent in an enclosure * JSON: lists all torrents in the 'attachments' object * ATOM: lacking torrent listing support Advances #23 Partial implementation for the accountId generation in the client, which will need a hotfix to add a way to get the proper account id. --- server/helpers/custom-validators/feeds.ts | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 server/helpers/custom-validators/feeds.ts (limited to 'server/helpers/custom-validators') diff --git a/server/helpers/custom-validators/feeds.ts b/server/helpers/custom-validators/feeds.ts new file mode 100644 index 000000000..638e814f0 --- /dev/null +++ b/server/helpers/custom-validators/feeds.ts @@ -0,0 +1,23 @@ +import { exists } from './misc' + +function isValidRSSFeed (value: string) { + if (!exists(value)) return false + + const feedExtensions = [ + 'xml', + 'json', + 'json1', + 'rss', + 'rss2', + 'atom', + 'atom1' + ] + + return feedExtensions.indexOf(value) !== -1 +} + +// --------------------------------------------------------------------------- + +export { + isValidRSSFeed +} -- cgit v1.2.3