refactor: split downloader into modules
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const { HISTORY_FILE, HISTORY_LIMIT } = require('./config');
|
||||
|
||||
function loadHistory() {
|
||||
try {
|
||||
if (fs.existsSync(HISTORY_FILE)) return JSON.parse(fs.readFileSync(HISTORY_FILE, 'utf-8'));
|
||||
} catch {}
|
||||
return [];
|
||||
}
|
||||
|
||||
function saveHistory(history) {
|
||||
fs.mkdirSync(path.dirname(HISTORY_FILE), { recursive: true });
|
||||
fs.writeFileSync(HISTORY_FILE, JSON.stringify(history, null, 2), 'utf-8');
|
||||
}
|
||||
|
||||
function addHistory(entry) {
|
||||
const history = loadHistory();
|
||||
history.unshift({ ...entry, timestamp: new Date().toISOString() });
|
||||
if (history.length > HISTORY_LIMIT) history.length = HISTORY_LIMIT;
|
||||
saveHistory(history);
|
||||
}
|
||||
|
||||
function formatTime(isoStr) {
|
||||
const date = new Date(isoStr);
|
||||
const pad = value => String(value).padStart(2, '0');
|
||||
return `${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())} ${pad(date.getHours())}:${pad(date.getMinutes())}`;
|
||||
}
|
||||
|
||||
module.exports = { loadHistory, saveHistory, addHistory, formatTime };
|
||||
Reference in New Issue
Block a user