diff options
Diffstat (limited to 'server/lib')
-rw-r--r-- | server/lib/activitypub/videos.ts | 17 | ||||
-rw-r--r-- | server/lib/plugins/plugin-index.ts | 3 |
2 files changed, 16 insertions, 4 deletions
diff --git a/server/lib/activitypub/videos.ts b/server/lib/activitypub/videos.ts index 7d16bd390..6d20e0e65 100644 --- a/server/lib/activitypub/videos.ts +++ b/server/lib/activitypub/videos.ts | |||
@@ -272,11 +272,22 @@ async function getOrCreateVideoAndAccountAndChannel ( | |||
272 | 272 | ||
273 | const actor = await getOrCreateVideoChannelFromVideoObject(fetchedVideo) | 273 | const actor = await getOrCreateVideoChannelFromVideoObject(fetchedVideo) |
274 | const videoChannel = actor.VideoChannel | 274 | const videoChannel = actor.VideoChannel |
275 | const { autoBlacklisted, videoCreated } = await retryTransactionWrapper(createVideo, fetchedVideo, videoChannel, syncParam.thumbnail) | ||
276 | 275 | ||
277 | await syncVideoExternalAttributes(videoCreated, fetchedVideo, syncParam) | 276 | try { |
277 | const { autoBlacklisted, videoCreated } = await retryTransactionWrapper(createVideo, fetchedVideo, videoChannel, syncParam.thumbnail) | ||
278 | |||
279 | await syncVideoExternalAttributes(videoCreated, fetchedVideo, syncParam) | ||
278 | 280 | ||
279 | return { video: videoCreated, created: true, autoBlacklisted } | 281 | return { video: videoCreated, created: true, autoBlacklisted } |
282 | } catch (err) { | ||
283 | // Maybe a concurrent getOrCreateVideoAndAccountAndChannel call created this video | ||
284 | if (err.name === 'SequelizeUniqueConstraintError') { | ||
285 | const fallbackVideo = await fetchVideoByUrl(videoUrl, fetchType) | ||
286 | if (fallbackVideo) return { video: fallbackVideo, created: false } | ||
287 | } | ||
288 | |||
289 | throw err | ||
290 | } | ||
280 | } | 291 | } |
281 | 292 | ||
282 | async function updateVideoFromAP (options: { | 293 | async function updateVideoFromAP (options: { |
diff --git a/server/lib/plugins/plugin-index.ts b/server/lib/plugins/plugin-index.ts index 170f0c7e2..7bcb6ed4c 100644 --- a/server/lib/plugins/plugin-index.ts +++ b/server/lib/plugins/plugin-index.ts | |||
@@ -11,6 +11,7 @@ import { PluginModel } from '../../models/server/plugin' | |||
11 | import { PluginManager } from './plugin-manager' | 11 | import { PluginManager } from './plugin-manager' |
12 | import { logger } from '../../helpers/logger' | 12 | import { logger } from '../../helpers/logger' |
13 | import { PEERTUBE_VERSION } from '../../initializers/constants' | 13 | import { PEERTUBE_VERSION } from '../../initializers/constants' |
14 | import { sanitizeUrl } from '@server/helpers/core-utils' | ||
14 | 15 | ||
15 | async function listAvailablePluginsFromIndex (options: PeertubePluginIndexList) { | 16 | async function listAvailablePluginsFromIndex (options: PeertubePluginIndexList) { |
16 | const { start = 0, count = 20, search, sort = 'npmName', pluginType } = options | 17 | const { start = 0, count = 20, search, sort = 'npmName', pluginType } = options |
@@ -55,7 +56,7 @@ async function getLatestPluginsVersion (npmNames: string[]): Promise<PeertubePlu | |||
55 | currentPeerTubeEngine: PEERTUBE_VERSION | 56 | currentPeerTubeEngine: PEERTUBE_VERSION |
56 | } | 57 | } |
57 | 58 | ||
58 | const uri = CONFIG.PLUGINS.INDEX.URL + '/api/v1/plugins/latest-version' | 59 | const uri = sanitizeUrl(CONFIG.PLUGINS.INDEX.URL) + '/api/v1/plugins/latest-version' |
59 | 60 | ||
60 | const { body } = await doRequest<any>({ uri, body: bodyRequest, json: true, method: 'POST' }) | 61 | const { body } = await doRequest<any>({ uri, body: bodyRequest, json: true, method: 'POST' }) |
61 | 62 | ||