code refactoring

This commit is contained in:
2022-06-13 15:30:05 +02:00
parent 25dee4921b
commit c0982d7098
10 changed files with 81 additions and 71 deletions

View File

@@ -1,18 +1,30 @@
import { resolve } from "path";
import { resolve as pathResolve } from "path";
import { readdir } from "fs";
import { ISettings } from "../interfaces/ISettings";
import Logger from "../utils/BetterLogger";
let settings: ISettings;
const log = Logger.instance;
const archived = [
{
id: 1,
title: '',
path: resolve(''),
img: '',
},
]
export function listDownloaded(ctx: any, next: any) {
//readdir()
ctx.body = archived
next()
try {
settings = require('../../settings.json');
} catch (e) {
log.warn('dl', 'settings.json not found');
}
export function listDownloaded(ctx: any) {
return new Promise((resolve, reject) => {
readdir(pathResolve(settings.download_path || 'download'), (err, files) => {
if (err) {
reject({ err: true })
return
}
ctx.body = files.map(file => {
resolve({
filename: file,
path: pathResolve(file),
})
})
})
})
}

View File

@@ -4,14 +4,14 @@ import { Server } from 'socket.io';
import { ytdlpUpdater } from './utils/updater';
import { download, abortDownload, retrieveDownload, abortAllDownloads, getFormatsAndInfo } from './core/downloader';
import { getFreeDiskSpace } from './utils/procUtils';
import Logger from './utils/BetterLogger';
import { listDownloaded } from './core/downloadArchive';
import { createServer } from 'http';
import { streamer } from './core/streamer';
import * as Koa from 'koa';
import * as Router from 'koa-router';
import * as serve from 'koa-static';
import * as cors from '@koa/cors';
import { streamer } from './core/streamer';
import Logger from './utils/BetterLogger';
const app = new Koa();
const server = createServer(app.callback());
@@ -25,7 +25,6 @@ const io = new Server(server, {
});
// Koa routing
router.get('/settings', (ctx, next) => {
ctx.redirect('/')
next()
@@ -34,8 +33,16 @@ router.get('/downloaded', (ctx, next) => {
ctx.redirect('/')
next()
})
router.get('/getAllDownloaded', (ctx, next) => {
listDownloaded(ctx, next)
router.get('/archive', (ctx, next) => {
listDownloaded(ctx)
.then((res: any) => {
ctx.body = res
next()
})
.catch((err: any) => {
ctx.body = err;
next()
})
})
router.get('/stream/:filepath', (ctx, next) => {
streamer(ctx, next)
@@ -76,8 +83,8 @@ io.on('disconnect', (socket) => {
})
app.use(serve(join(__dirname, 'frontend')))
app.use(router.routes())
app.use(cors())
app.use(router.routes())
server.listen(process.env.PORT || 3022)

View File

@@ -1,7 +1,9 @@
import { exec, spawn } from 'child_process';
import fs = require('fs');
import Logger from './BetterLogger';
// import net = require('net');
import { logger } from './logger';
const log = Logger.instance;
/**
* Browse /proc in order to find the specific pid
@@ -12,7 +14,7 @@ export function existsInProc(pid: number): any {
try {
return fs.statSync(`/proc/${pid}`)
} catch (e) {
logger('proc', `pid ${pid} not found in procfs`)
log.warn('proc', `pid ${pid} not found in procfs`)
}
}
@@ -36,12 +38,11 @@ function retriveStdoutFromProcFd(pid) {
export async function killProcess(pid: number) {
const res = spawn('kill', [String(pid)])
res.on('exit', () => {
logger('proc', `Successfully killed yt-dlp process, pid: ${pid}`)
log.info('proc', `Successfully killed yt-dlp process, pid: ${pid}`)
})
}
export function getFreeDiskSpace(socket: any) {
let buffer: string = '';
let message: string = 'free-space';
exec("df -h / | tail -1 | awk '{print $4}'", (_, stdout) => {
socket.emit(message, stdout)