From c3441b0320f632e22318261bcd614d10187de22d Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Thu, 16 Mar 2023 10:36:33 +0100 Subject: Add video AP hooks --- server/tests/fixtures/peertube-plugin-test/main.js | 71 +++++++++++++--------- server/tests/plugins/action-hooks.ts | 24 ++++++++ 2 files changed, 65 insertions(+), 30 deletions(-) (limited to 'server/tests') diff --git a/server/tests/fixtures/peertube-plugin-test/main.js b/server/tests/fixtures/peertube-plugin-test/main.js index 60b8b3ccd..be0df6672 100644 --- a/server/tests/fixtures/peertube-plugin-test/main.js +++ b/server/tests/fixtures/peertube-plugin-test/main.js @@ -1,42 +1,53 @@ async function register ({ registerHook, registerSetting, settingsManager, storageManager, peertubeHelpers }) { - const actionHooks = [ - 'action:application.listening', - 'action:notifier.notification.created', + { + const actionHooks = [ + 'action:application.listening', + 'action:notifier.notification.created', - 'action:api.video.updated', - 'action:api.video.deleted', - 'action:api.video.uploaded', - 'action:api.video.viewed', + 'action:api.video.updated', + 'action:api.video.deleted', + 'action:api.video.uploaded', + 'action:api.video.viewed', - 'action:api.video-channel.created', - 'action:api.video-channel.updated', - 'action:api.video-channel.deleted', + 'action:api.video-channel.created', + 'action:api.video-channel.updated', + 'action:api.video-channel.deleted', - 'action:api.live-video.created', + 'action:api.live-video.created', - 'action:api.video-thread.created', - 'action:api.video-comment-reply.created', - 'action:api.video-comment.deleted', + 'action:api.video-thread.created', + 'action:api.video-comment-reply.created', + 'action:api.video-comment.deleted', - 'action:api.video-caption.created', - 'action:api.video-caption.deleted', + 'action:api.video-caption.created', + 'action:api.video-caption.deleted', - 'action:api.user.blocked', - 'action:api.user.unblocked', - 'action:api.user.registered', - 'action:api.user.created', - 'action:api.user.deleted', - 'action:api.user.updated', - 'action:api.user.oauth2-got-token', + 'action:api.user.blocked', + 'action:api.user.unblocked', + 'action:api.user.registered', + 'action:api.user.created', + 'action:api.user.deleted', + 'action:api.user.updated', + 'action:api.user.oauth2-got-token', - 'action:api.video-playlist-element.created' - ] + 'action:api.video-playlist-element.created' + ] - for (const h of actionHooks) { - registerHook({ - target: h, - handler: () => peertubeHelpers.logger.debug('Run hook %s.', h) - }) + for (const h of actionHooks) { + registerHook({ + target: h, + handler: () => peertubeHelpers.logger.debug('Run hook %s.', h) + }) + } + + for (const h of [ 'action:activity-pub.remote-video.created', 'action:activity-pub.remote-video.updated' ]) { + registerHook({ + target: h, + handler: ({ video, videoAPObject }) => { + peertubeHelpers.logger.debug('Run hook %s - AP %s - video %s.', h, video.name, videoAPObject.name ) + } + }) + } } registerHook({ diff --git a/server/tests/plugins/action-hooks.ts b/server/tests/plugins/action-hooks.ts index a266ae7f1..98228f79d 100644 --- a/server/tests/plugins/action-hooks.ts +++ b/server/tests/plugins/action-hooks.ts @@ -4,6 +4,7 @@ import { ServerHookName, VideoPlaylistPrivacy, VideoPrivacy } from '@shared/mode import { cleanupTests, createMultipleServers, + doubleFollow, killallServers, PeerTubeServer, PluginsCommand, @@ -36,6 +37,8 @@ describe('Test plugin action hooks', function () { enabled: true } }) + + await doubleFollow(servers[0], servers[1]) }) describe('Application hooks', function () { @@ -231,6 +234,27 @@ describe('Test plugin action hooks', function () { }) }) + describe('Activity Pub hooks', function () { + let videoUUID: string + + it('Should run action:activity-pub.remote-video.created', async function () { + this.timeout(30000) + + const { uuid } = await servers[1].videos.quickUpload({ name: 'remote video' }) + videoUUID = uuid + + await servers[0].servers.waitUntilLog('action:activity-pub.remote-video.created - AP remote video - video remote video') + }) + + it('Should run action:activity-pub.remote-video.updated', async function () { + this.timeout(30000) + + await servers[1].videos.update({ id: videoUUID, attributes: { name: 'remote video updated' } }) + + await servers[0].servers.waitUntilLog('action:activity-pub.remote-video.updated - AP remote video - video remote video') + }) + }) + after(async function () { await cleanupTests(servers) }) -- cgit v1.2.3