- if (payload.type === 'youtube-dl') return processYoutubeDLImport(job, payload)
- if (payload.type === 'magnet-uri' || payload.type === 'torrent-file') return processTorrentImport(job, payload)
+ const videoImport = await getVideoImportOrDie(payload)
+ if (videoImport.state === VideoImportState.CANCELLED) {
+ logger.info('Do not process import since it has been cancelled', { payload })
+ return { resultType: 'success' }
+ }
+
+ videoImport.state = VideoImportState.PROCESSING
+ await videoImport.save()
+
+ try {
+ if (payload.type === 'youtube-dl') await processYoutubeDLImport(job, videoImport, payload)
+ if (payload.type === 'magnet-uri' || payload.type === 'torrent-file') await processTorrentImport(job, videoImport, payload)
+
+ return { resultType: 'success' }
+ } catch (err) {
+ if (!payload.preventException) throw err
+
+ logger.warn('Catch error in video import to send value to parent job.', { payload, err })
+ return { resultType: 'error' }
+ }