68 lines
2.9 KiB
TypeScript
68 lines
2.9 KiB
TypeScript
import { CONFIG } from './config.js';
|
|
import * as fs from 'fs';
|
|
import * as path from 'path';
|
|
|
|
// --- JDownloader ---
|
|
export async function sendToJDownloader(link: string, titleName: string, isSeries: boolean = false) {
|
|
if (!CONFIG.PATHS_JD_WATCH) {
|
|
console.error("Erreur JDownloader: PATHS_JD_WATCH non configuré.");
|
|
return;
|
|
}
|
|
if (!CONFIG.PATHS_JD_FILMS) {
|
|
console.error("Erreur JDownloader: PATHS_JD_FILMS non configuré.");
|
|
return;
|
|
}
|
|
if (!CONFIG.PATHS_JD_SERIES) {
|
|
console.error("Erreur JDownloader: PATHS_JD_SERIES non configuré.");
|
|
return;
|
|
}
|
|
|
|
const fileName = `link_${Date.now()}.crawljob`;
|
|
const filePath = path.join(CONFIG.PATHS_JD_WATCH, fileName);
|
|
const lineEnding = '\n';
|
|
|
|
const safeLink = link.trim() + "#movie.mkv";
|
|
|
|
const autoStartStr = CONFIG.JD_AUTOSTART ? 'TRUE' : 'FALSE';
|
|
const forcedStartStr = CONFIG.JD_FORCED_START ? 'TRUE' : 'FALSE';
|
|
let fileContent = `text=${safeLink}${lineEnding}`;
|
|
fileContent += `enabled=TRUE${lineEnding}`;
|
|
fileContent += `autoStart=${autoStartStr}${lineEnding}`;
|
|
fileContent += `forcedStart=${forcedStartStr}${lineEnding}`;
|
|
fileContent += `deepAnalyse=TRUE${lineEnding}`;
|
|
fileContent += `autoConfirm=TRUE${lineEnding}`;
|
|
fileContent += `overwritePackagizerEnabled=TRUE${lineEnding}`;
|
|
|
|
if (titleName) {
|
|
const safeTitle = titleName.replace(/[\r\n<>:"/\\|?*]+/g, '').replace(/\.$/, '').trim();
|
|
fileContent += `packageName=${safeTitle}${lineEnding}`;
|
|
|
|
if (isSeries) {
|
|
console.log(`Série (${titleName}), configuration chemin JD...`);
|
|
const rawSeriesFolder = CONFIG.JD_CREATE_SUBFOLDER ? `${CONFIG.PATHS_JD_SERIES}${safeTitle}` : `${CONFIG.PATHS_JD_SERIES}`;
|
|
const seriesDownloadFolder = rawSeriesFolder.replace(/\\/g, '\\\\');
|
|
fileContent += `downloadFolder=${seriesDownloadFolder}${lineEnding}`;
|
|
console.log(` -> DownloadFolder: ${seriesDownloadFolder}`);
|
|
} else {
|
|
const rawFilmFolder = CONFIG.JD_CREATE_SUBFOLDER ? `${CONFIG.PATHS_JD_FILMS}${safeTitle}` : `${CONFIG.PATHS_JD_FILMS}`;
|
|
const filmDownloadFolder = rawFilmFolder.replace(/\\/g, '\\\\');
|
|
fileContent += `downloadFolder=${filmDownloadFolder}${lineEnding}`;
|
|
console.log(` -> DownloadFolder: ${filmDownloadFolder}`);
|
|
}
|
|
console.log(` -> PackageName: ${safeTitle}`);
|
|
}
|
|
|
|
try {
|
|
await fs.promises.writeFile(filePath, fileContent);
|
|
await fs.promises.chmod(filePath, 0o666);
|
|
try {
|
|
await fs.promises.chown(filePath, 1000, 1000);
|
|
} catch (e) {
|
|
console.log("Note: Impossible de changer le propriétaire (chown).");
|
|
}
|
|
console.log(`✅ Fichier .crawljob (${fileName}) créé.`);
|
|
} catch (error: any) {
|
|
console.error(`❌ Erreur JDownloader (${fileName}):`, error.message);
|
|
}
|
|
}
|