mirror of
https://github.com/Chocobozzz/PeerTube.git
synced 2025-10-05 10:49:28 +02:00
Playlist server API
This commit is contained in:
parent
b427febb4d
commit
418d092afa
63 changed files with 2758 additions and 226 deletions
|
@ -5,13 +5,16 @@ import { addVideoComments } from '../../activitypub/video-comments'
|
|||
import { crawlCollectionPage } from '../../activitypub/crawl'
|
||||
import { VideoModel } from '../../../models/video/video'
|
||||
import { addVideoShares, createRates } from '../../activitypub'
|
||||
import { createAccountPlaylists } from '../../activitypub/playlist'
|
||||
import { AccountModel } from '../../../models/account/account'
|
||||
|
||||
type FetchType = 'activity' | 'video-likes' | 'video-dislikes' | 'video-shares' | 'video-comments'
|
||||
type FetchType = 'activity' | 'video-likes' | 'video-dislikes' | 'video-shares' | 'video-comments' | 'account-playlists'
|
||||
|
||||
export type ActivitypubHttpFetcherPayload = {
|
||||
uri: string
|
||||
type: FetchType
|
||||
videoId?: number
|
||||
accountId?: number
|
||||
}
|
||||
|
||||
async function processActivityPubHttpFetcher (job: Bull.Job) {
|
||||
|
@ -22,12 +25,16 @@ async function processActivityPubHttpFetcher (job: Bull.Job) {
|
|||
let video: VideoModel
|
||||
if (payload.videoId) video = await VideoModel.loadAndPopulateAccountAndServerAndTags(payload.videoId)
|
||||
|
||||
let account: AccountModel
|
||||
if (payload.accountId) account = await AccountModel.load(payload.accountId)
|
||||
|
||||
const fetcherType: { [ id in FetchType ]: (items: any[]) => Promise<any> } = {
|
||||
'activity': items => processActivities(items, { outboxUrl: payload.uri }),
|
||||
'video-likes': items => createRates(items, video, 'like'),
|
||||
'video-dislikes': items => createRates(items, video, 'dislike'),
|
||||
'video-shares': items => addVideoShares(items, video),
|
||||
'video-comments': items => addVideoComments(items, video)
|
||||
'video-comments': items => addVideoComments(items, video),
|
||||
'account-playlists': items => createAccountPlaylists(items, account)
|
||||
}
|
||||
|
||||
return crawlCollectionPage(payload.uri, fetcherType[payload.type])
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue