]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - scripts/regenerate-thumbnails.ts
Translated using Weblate (Croatian)
[github/Chocobozzz/PeerTube.git] / scripts / regenerate-thumbnails.ts
index 0213b8a22414ed1f4557852e9d003f838b4890f6..061819387ac0420ba1fe6092653ec960239d1039 100644 (file)
@@ -1,15 +1,10 @@
-import { registerTSPaths } from '../server/helpers/register-ts-paths'
-registerTSPaths()
-
-import * as Bluebird from 'bluebird'
-import * as program from 'commander'
+import { map } from 'bluebird'
+import { program } from 'commander'
 import { pathExists, remove } from 'fs-extra'
-import { processImage } from '@server/helpers/image-utils'
+import { generateImageFilename, processImage } from '@server/helpers/image-utils'
 import { THUMBNAILS_SIZE } from '@server/initializers/constants'
-import { VideoModel } from '@server/models/video/video'
-import { MVideo } from '@server/types/models'
 import { initDatabaseModels } from '@server/initializers/database'
-import { ActorImageModel } from '@server/models/account/actor-image'
+import { VideoModel } from '@server/models/video/video'
 
 program
   .description('Regenerate local thumbnails using preview files')
@@ -22,16 +17,16 @@ run()
 async function run () {
   await initDatabaseModels(true)
 
-  const videos = await VideoModel.listLocal()
+  const ids = await VideoModel.listLocalIds()
 
-  await Bluebird.map(videos, v => {
-    return processVideo(v)
-      .catch(err => console.error('Cannot process video %s.', v.url, err))
+  await map(ids, id => {
+    return processVideo(id)
+      .catch(err => console.error('Cannot process video %d.', id, err))
   }, { concurrency: 20 })
 }
 
-async function processVideo (videoArg: MVideo) {
-  const video = await VideoModel.loadWithFiles(videoArg.id)
+async function processVideo (id: number) {
+  const video = await VideoModel.loadWithFiles(id)
 
   console.log('Processing video %s.', video.name)
 
@@ -52,12 +47,12 @@ async function processVideo (videoArg: MVideo) {
   const oldPath = thumbnail.getPath()
 
   // Update thumbnail
-  thumbnail.filename = ActorImageModel.generateFilename()
+  thumbnail.filename = generateImageFilename()
   thumbnail.width = size.width
   thumbnail.height = size.height
 
   const thumbnailPath = thumbnail.getPath()
-  await processImage(previewPath, thumbnailPath, size, true)
+  await processImage({ path: previewPath, destination: thumbnailPath, newSize: size, keepOriginal: true })
 
   // Save new attributes
   await thumbnail.save()