bookgrabs
Version:
Interactive CLI tool for LibGen ebook searches and downloads with batch processing support
31 lines (28 loc) • 1.09 kB
JavaScript
import fs from 'fs';
// Load blacklist from file
export async function loadBlacklist() {
try {
const blacklistPath = '.blacklist';
const data = await fs.promises.readFile(blacklistPath, 'utf8');
return new Set(data.trim().split('\n').filter(line => line.trim()));
} catch (error) {
// File doesn't exist or can't be read, return empty set
return new Set();
}
}
// Add MD5 hash to blacklist with optional reason
export async function addToBlacklist(md5, reason = '') {
try {
const blacklistPath = '.blacklist';
const timestamp = new Date().toISOString();
const entry = reason ? `${md5} # ${reason} - ${timestamp}` : `${md5} # ${timestamp}`;
await fs.promises.appendFile(blacklistPath, entry + '\n');
console.log(`Added to blacklist: ${md5}${reason ? ` (${reason})` : ''}`);
} catch (error) {
console.warn('Error adding to blacklist:', error.message);
}
}
// Filter out blacklisted results from search results
export function filterBlacklistedResults(results, blacklist) {
return results.filter(result => !blacklist.has(result.md5));
}