- backend/lib/config.js — CONFIG from env (adds DOWNLOAD_BACKEND, SQUID_QUALITY) - backend/lib/jobs.js — jobs Map, updateJob(), log() - backend/lib/metadata.js — iTunes, artwork, lyrics, sanitize helpers - backend/lib/ytdlp.js — yt-dlp download cascade + shared embedMetadata() - backend/lib/squid.js — ALTCHA PoW solver, Qobuz search/download via squid.wtf - backend/lib/downloader.js — backend selector: ytdlp | squid | auto (squid-first + fallback) - novasonic-server.js thinned to Express routes only, imports from lib/ - docker-compose: mount full backend/ dir, install deps outside read-only volume - .env.example: document DOWNLOAD_BACKEND and SQUID_QUALITY Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
15 lines
378 B
JavaScript
15 lines
378 B
JavaScript
const jobs = new Map();
|
|
|
|
function updateJob(id, update) {
|
|
const job = jobs.get(id);
|
|
if (job) jobs.set(id, { ...job, ...update, updatedAt: Date.now() });
|
|
}
|
|
|
|
function log(jobId, msg) {
|
|
const j = jobs.get(jobId);
|
|
if (j) jobs.set(jobId, { ...j, log: [...(j.log || []), msg], message: msg });
|
|
console.log(`[${jobId}] ${msg}`);
|
|
}
|
|
|
|
module.exports = { jobs, updateJob, log };
|