feature: initial syndication feeds support 500/head
authorRigel Kent <sendmemail@rigelk.eu>
Mon, 16 Apr 2018 22:49:04 +0000 (00:49 +0200)
committerRigel <sendmemail@rigelk.eu>
Mon, 16 Apr 2018 23:09:06 +0000 (01:09 +0200)
commit244e76a552ef05a5067134b1065d26dd89246d8c
treea15fcd52bce99797fc9366572fea62a7a44aaabe
parentc36d5a6b98056ef7fec3db43fbee880ee7332dcf
feature: initial syndication feeds support

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.
33 files changed:
client/src/app/account/account-videos/account-videos.component.ts
client/src/app/shared/misc/object-length.pipe.ts [new file with mode: 0644]
client/src/app/shared/shared.module.ts
client/src/app/shared/video/abstract-video-list.html
client/src/app/shared/video/abstract-video-list.scss
client/src/app/shared/video/abstract-video-list.ts
client/src/app/shared/video/video-feed.component.html [new file with mode: 0644]
client/src/app/shared/video/video-feed.component.scss [new file with mode: 0644]
client/src/app/shared/video/video-feed.component.ts [new file with mode: 0644]
client/src/app/shared/video/video.service.ts
client/src/app/videos/+video-watch/video-watch.component.html
client/src/app/videos/+video-watch/video-watch.component.scss
client/src/app/videos/+video-watch/video-watch.component.ts
client/src/app/videos/video-list/video-local.component.ts
client/src/app/videos/video-list/video-recently-added.component.ts
client/src/app/videos/video-list/video-search.component.ts
client/src/app/videos/video-list/video-trending.component.ts
client/src/assets/images/global/syndication.svg [new file with mode: 0644]
client/src/sass/include/_bootstrap.scss
package.json
server.ts
server/controllers/feeds.ts [new file with mode: 0644]
server/controllers/index.ts
server/helpers/custom-validators/feeds.ts [new file with mode: 0644]
server/middlewares/validators/feeds.ts [new file with mode: 0644]
server/middlewares/validators/index.ts
server/models/account/account.ts
server/models/video/video.ts
shared/models/feeds/feed-format.enum.ts [new file with mode: 0644]
shared/models/feeds/index.ts [new file with mode: 0644]
shared/models/index.ts
support/doc/api/openapi.yaml
yarn.lock