X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Flib%2Fvideo-channel.ts;h=ee0482c3612919b3715eb64aca12e59aa178ef0d;hb=466e3f20a537f1eff4b4fd03297df11ba371d049;hp=600316cda66019008e211cf4e8e41551901ae37c;hpb=08c1efbe32244c321de28b0f2a6aaa3f99f46b58;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/lib/video-channel.ts b/server/lib/video-channel.ts index 600316cda..ee0482c36 100644 --- a/server/lib/video-channel.ts +++ b/server/lib/video-channel.ts @@ -3,13 +3,13 @@ import * as uuidv4 from 'uuid/v4' import { VideoChannelCreate } from '../../shared/models' import { AccountModel } from '../models/account/account' import { VideoChannelModel } from '../models/video/video-channel' -import { buildActorInstance, getVideoChannelActivityPubUrl } from './activitypub' +import { buildActorInstance, federateVideoIfNeeded, getVideoChannelActivityPubUrl } from './activitypub' +import { VideoModel } from '../models/video/video' async function createVideoChannel (videoChannelInfo: VideoChannelCreate, account: AccountModel, t: Sequelize.Transaction) { const uuid = uuidv4() - const url = getVideoChannelActivityPubUrl(uuid) - // We use the name as uuid - const actorInstance = buildActorInstance('Group', url, uuid, uuid) + const url = getVideoChannelActivityPubUrl(videoChannelInfo.name) + const actorInstance = buildActorInstance('Group', url, videoChannelInfo.name, uuid) const actorInstanceCreated = await actorInstance.save({ transaction: t }) @@ -34,8 +34,19 @@ async function createVideoChannel (videoChannelInfo: VideoChannelCreate, account return videoChannelCreated } +async function federateAllVideosOfChannel (videoChannel: VideoChannelModel) { + const videoIds = await VideoModel.getAllIdsFromChannel(videoChannel) + + for (const videoId of videoIds) { + const video = await VideoModel.loadAndPopulateAccountAndServerAndTags(videoId) + + await federateVideoIfNeeded(video, false) + } +} + // --------------------------------------------------------------------------- export { - createVideoChannel + createVideoChannel, + federateAllVideosOfChannel }