mirror of
https://github.com/Chocobozzz/PeerTube.git
synced 2025-10-03 01:39:37 +02:00

* Implement processing storyboards by runners * Fixed storyboard generation by runners * use common code patterns * fix import * improve debug logging for storyboard generation * config option for storyboard processing with remote-runners * refactor repetitive pattern * refactor storyboard related code to share common utlities * Fix test * Fix storyboard generation config logic * Improve logging * Added tests for storyboard generation with runners * Refactor PR --------- Co-authored-by: ilfarpro <ilfarpro@ya.ru> Co-authored-by: Chocobozzz <me@florianbigard.com>
47 lines
1.7 KiB
TypeScript
47 lines
1.7 KiB
TypeScript
/* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */
|
|
|
|
import { expect } from 'chai'
|
|
import { pathExists } from 'fs-extra/esm'
|
|
import { readdir } from 'fs/promises'
|
|
import { homedir } from 'os'
|
|
import { join } from 'path'
|
|
import { PeerTubeServer } from '@peertube/peertube-server-commands'
|
|
import { PeerTubeRunnerProcess } from './peertube-runner-process.js'
|
|
|
|
export async function checkTmpIsEmpty (server: PeerTubeServer) {
|
|
await checkDirectoryIsEmpty(server, 'tmp', [ 'plugins-global.css', 'hls', 'resumable-uploads' ])
|
|
|
|
if (await pathExists(server.getDirectoryPath('tmp/hls'))) {
|
|
await checkDirectoryIsEmpty(server, 'tmp/hls')
|
|
}
|
|
}
|
|
|
|
export async function checkPersistentTmpIsEmpty (server: PeerTubeServer) {
|
|
await checkDirectoryIsEmpty(server, 'tmp-persistent')
|
|
}
|
|
|
|
export async function checkDirectoryIsEmpty (server: PeerTubeServer, directory: string, exceptions: string[] = []) {
|
|
const directoryPath = server.getDirectoryPath(directory)
|
|
|
|
const directoryExists = await pathExists(directoryPath)
|
|
expect(directoryExists).to.be.true
|
|
|
|
const files = await readdir(directoryPath)
|
|
const filtered = files.filter(f => exceptions.includes(f) === false)
|
|
|
|
expect(filtered).to.have.lengthOf(0)
|
|
}
|
|
|
|
export async function checkPeerTubeRunnerCacheIsEmpty (
|
|
runner: PeerTubeRunnerProcess,
|
|
subDir: 'transcoding' | 'transcription' | 'storyboard'
|
|
) {
|
|
const directoryPath = join(homedir(), '.cache', 'peertube-runner-nodejs', runner.getId(), subDir)
|
|
|
|
const directoryExists = await pathExists(directoryPath)
|
|
expect(directoryExists).to.be.true
|
|
|
|
const files = await readdir(directoryPath)
|
|
|
|
expect(files, `Sub-directory ${subDir} content: ${files.join(', ')}`).to.have.lengthOf(0)
|
|
}
|