From 6559da2821cfa37717fb6f607f76a505d549cc74 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Thu, 11 Feb 2021 10:23:52 +0100 Subject: Allow plugins to load a video by id --- client/.browserslistrc | 14 ++++++++++---- server/lib/plugins/plugin-helpers-builder.ts | 4 ++++ server/tests/fixtures/peertube-plugin-test-four/main.js | 9 +++++++-- server/types/plugins/register-server-option.model.ts | 1 + 4 files changed, 22 insertions(+), 6 deletions(-) diff --git a/client/.browserslistrc b/client/.browserslistrc index 80848532e..0ccadaf32 100644 --- a/client/.browserslistrc +++ b/client/.browserslistrc @@ -2,11 +2,17 @@ # For additional information regarding the format and rule options, please see: # https://github.com/browserslist/browserslist#queries +# For the full list of supported browsers by the Angular framework, please see: +# https://angular.io/guide/browser-support + # You can see what browsers were selected by your queries by running: # npx browserslist -> 0.5% -last 2 versions +last 1 Chrome version +last 1 Firefox version +last 2 Edge major versions +last 2 Safari major versions +last 2 iOS major versions Firefox ESR -not dead -not IE 9-11 # For IE 9-11 support, remove 'not'. \ No newline at end of file +not IE 9-10 # Angular support for IE 9-10 has been deprecated and will be removed as of Angular v11. To opt-in, remove the 'not' prefix on this line. +not IE 11 # Angular supports IE 11 only as an opt-in. To opt-in, remove the 'not' prefix on this line. diff --git a/server/lib/plugins/plugin-helpers-builder.ts b/server/lib/plugins/plugin-helpers-builder.ts index 39773f693..dac6b3185 100644 --- a/server/lib/plugins/plugin-helpers-builder.ts +++ b/server/lib/plugins/plugin-helpers-builder.ts @@ -63,6 +63,10 @@ function buildVideosHelpers () { return VideoModel.loadByUrl(url) }, + loadByIdOrUUID: (id: number | string) => { + return VideoModel.load(id) + }, + removeVideo: (id: number) => { return sequelizeTypescript.transaction(async t => { const video = await VideoModel.loadAndPopulateAccountAndServerAndTags(id, t) diff --git a/server/tests/fixtures/peertube-plugin-test-four/main.js b/server/tests/fixtures/peertube-plugin-test-four/main.js index 067c3fe15..8df456c8a 100644 --- a/server/tests/fixtures/peertube-plugin-test-four/main.js +++ b/server/tests/fixtures/peertube-plugin-test-four/main.js @@ -24,8 +24,13 @@ async function register ({ registerHook({ target: 'action:api.video.viewed', handler: async ({ video }) => { - const videoFromDB = await peertubeHelpers.videos.loadByUrl(video.url) - logger.info('video from DB uuid is %s.', videoFromDB.uuid) + const videoFromDB1 = await peertubeHelpers.videos.loadByUrl(video.url) + const videoFromDB2 = await peertubeHelpers.videos.loadByIdOrUUID(video.id) + const videoFromDB3 = await peertubeHelpers.videos.loadByIdOrUUID(video.uuid) + + if (videoFromDB1.uuid !== videoFromDB2.uuid || videoFromDB2.uuid !== videoFromDB3.uuid) return + + logger.info('video from DB uuid is %s.', videoFromDB1.uuid) await peertubeHelpers.videos.removeVideo(video.id) diff --git a/server/types/plugins/register-server-option.model.ts b/server/types/plugins/register-server-option.model.ts index ccd5a060d..1ca17e4ab 100644 --- a/server/types/plugins/register-server-option.model.ts +++ b/server/types/plugins/register-server-option.model.ts @@ -30,6 +30,7 @@ export type PeerTubeHelpers = { videos: { loadByUrl: (url: string) => Promise + loadByIdOrUUID: (id: number | string) => Promise removeVideo: (videoId: number) => Promise } -- cgit v1.2.3