Activity Pub improvements
This commit is contained in:
parent
05bc4dfa06
commit
9a8cbd8278
|
@ -270,7 +270,8 @@ const SERVER_ACTOR_NAME = 'peertube'
|
|||
const ACTIVITY_PUB = {
|
||||
POTENTIAL_ACCEPT_HEADERS: [
|
||||
'application/activity+json',
|
||||
'application/ld+json'
|
||||
'application/ld+json',
|
||||
'application/ld+json; profile="https://www.w3.org/ns/activitystreams"'
|
||||
],
|
||||
ACCEPT_HEADER: 'application/activity+json, application/ld+json',
|
||||
PUBLIC: 'https://www.w3.org/ns/activitystreams#Public',
|
||||
|
|
|
@ -66,17 +66,19 @@ async function updateRemoteVideo (actor: ActorModel, activity: ActivityUpdate) {
|
|||
|
||||
const videoData = await videoActivityObjectToDBAttributes(videoChannel, videoAttributesToUpdate, activity.to, activity.cc)
|
||||
videoInstance.set('name', videoData.name)
|
||||
videoInstance.set('uuid', videoData.uuid)
|
||||
videoInstance.set('url', videoData.url)
|
||||
videoInstance.set('category', videoData.category)
|
||||
videoInstance.set('licence', videoData.licence)
|
||||
videoInstance.set('language', videoData.language)
|
||||
videoInstance.set('description', videoData.description)
|
||||
videoInstance.set('nsfw', videoData.nsfw)
|
||||
videoInstance.set('commentsEnabled', videoData.commentsEnabled)
|
||||
videoInstance.set('privacy', videoData.privacy)
|
||||
videoInstance.set('description', videoData.description)
|
||||
videoInstance.set('duration', videoData.duration)
|
||||
videoInstance.set('createdAt', videoData.createdAt)
|
||||
videoInstance.set('updatedAt', videoData.updatedAt)
|
||||
videoInstance.set('views', videoData.views)
|
||||
videoInstance.set('privacy', videoData.privacy)
|
||||
|
||||
await videoInstance.save(sequelizeOptions)
|
||||
|
||||
|
|
|
@ -166,14 +166,14 @@ async function computeFollowerUris (toActorFollower: ActorModel[], actorsExcepti
|
|||
const toActorFollowerIds = toActorFollower.map(a => a.id)
|
||||
|
||||
const result = await ActorFollowModel.listAcceptedFollowerSharedInboxUrls(toActorFollowerIds, t)
|
||||
const sharedInboxesException = actorsException.map(f => f.sharedInboxUrl)
|
||||
const sharedInboxesException = actorsException.map(f => f.sharedInboxUrl || f.inboxUrl)
|
||||
return result.data.filter(sharedInbox => sharedInboxesException.indexOf(sharedInbox) === -1)
|
||||
}
|
||||
|
||||
async function computeUris (toActors: ActorModel[], actorsException: ActorModel[] = []) {
|
||||
const toActorSharedInboxesSet = new Set(toActors.map(a => a.sharedInboxUrl))
|
||||
const toActorSharedInboxesSet = new Set(toActors.map(a => a.sharedInboxUrl || a.inboxUrl))
|
||||
|
||||
const sharedInboxesException = actorsException.map(f => f.sharedInboxUrl)
|
||||
const sharedInboxesException = actorsException.map(f => f.sharedInboxUrl || f.inboxUrl)
|
||||
return Array.from(toActorSharedInboxesSet)
|
||||
.filter(sharedInbox => sharedInboxesException.indexOf(sharedInbox) === -1)
|
||||
}
|
||||
|
|
|
@ -35,6 +35,7 @@ async function checkSignature (req: Request, res: Response, next: NextFunction)
|
|||
function executeIfActivityPub (fun: RequestHandler | RequestHandler[]) {
|
||||
return (req: Request, res: Response, next: NextFunction) => {
|
||||
const accepted = req.accepts(ACCEPT_HEADERS)
|
||||
console.log(accepted)
|
||||
if (accepted === false || ACTIVITY_PUB.POTENTIAL_ACCEPT_HEADERS.indexOf(accepted) === -1) {
|
||||
return next()
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue