UNPKG

bookgrabs

Version:

Interactive CLI tool for LibGen ebook searches and downloads with batch processing support

31 lines (28 loc) 1.09 kB
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)); }