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