]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - shared/server-commands/feeds/feeds-command.ts
Bumped to version v5.2.1
[github/Chocobozzz/PeerTube.git] / shared / server-commands / feeds / feeds-command.ts
1 import { buildUUID } from '@shared/extra-utils'
2 import { HttpStatusCode } from '@shared/models'
3 import { AbstractCommand, OverrideCommandOptions } from '../shared'
4
5 type FeedType = 'videos' | 'video-comments' | 'subscriptions'
6
7 export class FeedCommand extends AbstractCommand {
8
9 getXML (options: OverrideCommandOptions & {
10 feed: FeedType
11 ignoreCache: boolean
12 format?: string
13 }) {
14 const { feed, format, ignoreCache } = options
15 const path = '/feeds/' + feed + '.xml'
16
17 const query: { [id: string]: string } = {}
18
19 if (ignoreCache) query.v = buildUUID()
20 if (format) query.format = format
21
22 return this.getRequestText({
23 ...options,
24
25 path,
26 query,
27 accept: 'application/xml',
28 implicitToken: false,
29 defaultExpectedStatus: HttpStatusCode.OK_200
30 })
31 }
32
33 getPodcastXML (options: OverrideCommandOptions & {
34 ignoreCache: boolean
35 channelId: number
36 }) {
37 const { ignoreCache, channelId } = options
38 const path = `/feeds/podcast/videos.xml`
39
40 const query: { [id: string]: string } = {}
41
42 if (ignoreCache) query.v = buildUUID()
43 if (channelId) query.videoChannelId = channelId + ''
44
45 return this.getRequestText({
46 ...options,
47
48 path,
49 query,
50 accept: 'application/xml',
51 implicitToken: false,
52 defaultExpectedStatus: HttpStatusCode.OK_200
53 })
54 }
55
56 getJSON (options: OverrideCommandOptions & {
57 feed: FeedType
58 ignoreCache: boolean
59 query?: { [ id: string ]: any }
60 }) {
61 const { feed, query = {}, ignoreCache } = options
62 const path = '/feeds/' + feed + '.json'
63
64 const cacheQuery = ignoreCache
65 ? { v: buildUUID() }
66 : {}
67
68 return this.getRequestText({
69 ...options,
70
71 path,
72 query: { ...query, ...cacheQuery },
73 accept: 'application/json',
74 implicitToken: false,
75 defaultExpectedStatus: HttpStatusCode.OK_200
76 })
77 }
78 }