+ data: formattedObjects
+ } as ResultList<V>
+}
+
+const getServerActor = memoizee(async function () {
+ const application = await ApplicationModel.load()
+ if (!application) throw Error('Could not load Application from database.')
+
+ const actor = application.Account.Actor
+ actor.Account = application.Account
+
+ return actor
+}, { promise: true })
+
+function generateVideoImportTmpPath (target: string | ParseTorrent) {
+ const id = typeof target === 'string' ? target : target.infoHash
+
+ const hash = sha256(id)
+ return join(CONFIG.STORAGE.TMP_DIR, hash + '-import.mp4')
+}
+
+function getSecureTorrentName (originalName: string) {
+ return sha256(originalName) + '.torrent'
+}
+
+async function getServerCommit () {
+ try {
+ const tag = await execPromise2(
+ '[ ! -d .git ] || git name-rev --name-only --tags --no-undefined HEAD 2>/dev/null || true',
+ { stdio: [ 0, 1, 2 ] }
+ )
+
+ if (tag) return tag.replace(/^v/, '')
+ } catch (err) {
+ logger.debug('Cannot get version from git tags.', { err })
+ }
+
+ try {
+ const version = await execPromise('[ ! -d .git ] || git rev-parse --short HEAD')
+
+ if (version) return version.toString().trim()
+ } catch (err) {
+ logger.debug('Cannot get version from git HEAD.', { err })