diff --git a/server/helpers/core-utils.ts b/server/helpers/core-utils.ts index 64818d036..9771351e1 100644 --- a/server/helpers/core-utils.ts +++ b/server/helpers/core-utils.ts @@ -3,7 +3,6 @@ Useful to avoid circular dependencies. */ -import * as createTorrent from 'create-torrent' import { createHash, HexBase64Latin1Encoding, pseudoRandomBytes } from 'crypto' import { isAbsolute, join } from 'path' import * as pem from 'pem' @@ -257,7 +256,6 @@ function promisify2WithVoid (func: (arg1: T, arg2: U, cb: (err: any) => vo const pseudoRandomBytesPromise = promisify1(pseudoRandomBytes) const createPrivateKey = promisify1(pem.createPrivateKey) const getPublicKey = promisify1(pem.getPublicKey) -const createTorrentPromise = promisify2(createTorrent) const execPromise2 = promisify2(exec) const execPromise = promisify1(exec) @@ -288,7 +286,6 @@ export { pseudoRandomBytesPromise, createPrivateKey, getPublicKey, - createTorrentPromise, execPromise2, execPromise } diff --git a/server/helpers/webtorrent.ts b/server/helpers/webtorrent.ts index 14dfe0d28..d2a22e8f0 100644 --- a/server/helpers/webtorrent.ts +++ b/server/helpers/webtorrent.ts @@ -4,6 +4,8 @@ import * as WebTorrent from 'webtorrent' import { createWriteStream, ensureDir, remove } from 'fs-extra' import { CONFIG } from '../initializers/config' import { dirname, join } from 'path' +import * as createTorrent from 'create-torrent' +import { promisify2 } from './core-utils' async function downloadWebTorrentVideo (target: { magnetUri: string, torrentName?: string }, timeout: number) { const id = target.magnetUri || target.torrentName @@ -57,9 +59,12 @@ async function downloadWebTorrentVideo (target: { magnetUri: string, torrentName }) } +const createTorrentPromise = promisify2(createTorrent) + // --------------------------------------------------------------------------- export { + createTorrentPromise, downloadWebTorrentVideo } diff --git a/server/models/video/video.ts b/server/models/video/video.ts index 92d07b5bc..ec3d5ddb0 100644 --- a/server/models/video/video.ts +++ b/server/models/video/video.ts @@ -40,7 +40,7 @@ import { UserRight, VideoPrivacy, VideoState } from '../../../shared' import { VideoTorrentObject } from '../../../shared/models/activitypub/objects' import { Video, VideoDetails, VideoFile } from '../../../shared/models/videos' import { VideoFilter } from '../../../shared/models/videos/video-query.type' -import { createTorrentPromise, peertubeTruncate } from '../../helpers/core-utils' +import { peertubeTruncate } from '../../helpers/core-utils' import { isActivityPubUrlValid } from '../../helpers/custom-validators/activitypub/misc' import { isArray, isBooleanValid } from '../../helpers/custom-validators/misc' import { @@ -117,6 +117,7 @@ import { VideoPlaylistElementModel } from './video-playlist-element' import { CONFIG } from '../../initializers/config' import { ThumbnailModel } from './thumbnail' import { ThumbnailType } from '../../../shared/models/videos/thumbnail.type' +import { createTorrentPromise } from '../../helpers/webtorrent' // FIXME: Define indexes here because there is an issue with TS and Sequelize.literal when called directly in the annotation const indexes: (ModelIndexesOptions & { where?: WhereOptions })[] = [ diff --git a/shared/models/plugins/peertube-plugin.model.ts b/shared/models/plugins/peertube-plugin.model.ts index e3c100027..2b0bb8cfa 100644 --- a/shared/models/plugins/peertube-plugin.model.ts +++ b/shared/models/plugins/peertube-plugin.model.ts @@ -1,6 +1,8 @@ +import { PluginType } from './plugin.type' + export interface PeerTubePlugin { name: string - type: number + type: PluginType latestVersion: string version: string enabled: boolean