add initial complete webui, more ai commands for moderation, add api

This commit is contained in:
Aidan 2025-07-05 14:36:17 -04:00
parent 19e794e34c
commit 173d4e7a52
112 changed files with 8176 additions and 780 deletions

View file

@ -0,0 +1,55 @@
import axios from 'axios';
import fs from 'fs';
import path from 'path';
import os from 'os';
const downloadDir = path.resolve(__dirname, 'yt-dlp');
const urls = {
linux: 'https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp',
win32: 'https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp.exe',
darwin: 'https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_macos',
};
function getDownloadUrl() {
const platform = os.platform();
return urls[platform] || urls.linux;
};
async function downloadYtDlp() {
const url = getDownloadUrl();
const fileName = url.split('/').pop();
const filePath = path.join(downloadDir, fileName);
if (!fs.existsSync(downloadDir)) {
fs.mkdirSync(downloadDir, { recursive: true });
};
if (!fs.existsSync(filePath)) {
try {
const response = await axios({
url,
method: 'GET',
responseType: 'stream',
});
const writer = fs.createWriteStream(filePath);
response.data.pipe(writer);
writer.on('finish', () => {
if (os.platform() !== 'win32') {
fs.chmodSync(filePath, '-x');
}
});
writer.on('error', (err) => {
console.error('WARN: yt-dlp download failed:', err);
});
} catch (err) {
console.error('WARN: yt-dlp download failed:', err.message);
};
};
};
downloadYtDlp();