this.schedulerInterval = setInterval(() => this.minScheduledDate = new Date(), 1000 * 60) // Update every minute
})
- const updateForm = (values: any) => {
+ const updateFormForPlugins = (values: any) => {
this.form.patchValue(values)
this.cd.detectChanges()
}
- this.hooks.runAction('action:video-edit.init', 'video-edit', { type: this.type, updateForm })
+ this.hooks.runAction('action:video-edit.init', 'video-edit', { type: this.type, updateForm: updateFormForPlugins })
this.form.valueChanges.subscribe(() => {
this.hooks.runAction('action:video-edit.form.updated', 'video-edit', { type: this.type, formValues: this.form.value })
logger.info('Creating job to update actor %s.', byActor.url)
const url = getUpdateActivityPubUrl(byActor.url, byActor.updatedAt.toISOString())
- const accountOrChannelObject = (accountOrChannel as any).toActivityPubObject() // FIXME: typescript bug?
+ const accountOrChannelObject = await (accountOrChannel as any).toActivityPubObject() // FIXME: typescript bug?
const audience = getAudience(byActor)
const updateActivity = buildUpdateActivity(url, byActor, accountOrChannelObject, audience)
toActivityPubObject (this: MVideoAP): Promise<VideoObject> {
return Hooks.wrapObject(
videoModelToActivityPubObject(this),
- 'filter:activity-pub.video.jsonld.build.result',
+ 'filter:activity-pub.video.json-ld.build.result',
{ video: this }
)
}
// ---------------------------------------------------------------------------
+ registerHook({
+ target: 'filter:activity-pub.activity.context.build.result',
+ handler: context => context.concat([ 'https://example.com/new-context' ])
+ })
+
+ registerHook({
+ target: 'filter:activity-pub.video.json-ld.build.result',
+ handler: (jsonld, { video }) => ({ ...jsonld, videoName: video.name })
+ })
+
+ // ---------------------------------------------------------------------------
+
registerHook({
target: 'filter:api.video-threads.list.params',
handler: obj => addToCount(obj)
cleanupTests,
createMultipleServers,
doubleFollow,
+ makeActivityPubGetRequest,
makeGetRequest,
makeRawRequest,
PeerTubeServer,
})
})
+ describe('Activity Pub', function () {
+
+ it('Should run filter:activity-pub.activity.context.build.result', async function () {
+ const { body } = await makeActivityPubGetRequest(servers[0].url, '/w/' + videoUUID)
+ expect(body.type).to.equal('Video')
+
+ expect(body['@context'].some(c => c === 'https://example.com/new-context')).to.be.true
+ })
+
+ it('Should run filter:activity-pub.video.json-ld.build.result', async function () {
+ const { body } = await makeActivityPubGetRequest(servers[0].url, '/w/' + videoUUID)
+ expect(body.name).to.equal('default video 0')
+ expect(body.videoName).to.equal('default video 0')
+ })
+ })
+
after(async function () {
await cleanupTests(servers)
})
// Filter the result of video JSON LD builder
// You may also need to use filter:activity-pub.activity.context.build.result to also update JSON LD context
- 'filter:activity-pub.video.jsonld.build.result': true
+ 'filter:activity-pub.video.json-ld.build.result': true
}
export type ServerFilterHookName = keyof typeof serverFilterHookObject