UNPKG

clipboard-history-manager

Version:

An easy-to-use clipboard history manager that automatically tracks and saves clipboard content. Includes tools to view, clear, and manage your clipboard history effectively.

91 lines (79 loc) 2.38 kB
#!/usr/bin/env node import fs from 'fs'; let clipboardy; (async () => { clipboardy = await import('clipboardy'); loadHistory(); startClipboardMonitor(); })(); const HISTORY_FILE = 'clipboard_history.json'; let clipboardHistory = []; const loadHistory = () => { if (fs.existsSync(HISTORY_FILE)) { const fileData = fs.readFileSync(HISTORY_FILE, 'utf-8'); clipboardHistory = JSON.parse(fileData); } }; const saveHistory = () => { fs.writeFileSync(HISTORY_FILE, JSON.stringify(clipboardHistory, null, 2), 'utf-8'); }; const addToHistory = async () => { if (!clipboardy) return console.error('Clipboardy is not loaded.'); const currentClipboard = await clipboardy.default.read(); if ( currentClipboard && (!clipboardHistory.length || clipboardHistory[clipboardHistory.length - 1] !== currentClipboard) ) { clipboardHistory.push(currentClipboard); console.log('Clipboard saved to history!'); saveHistory(); } }; const showHistory = () => { if (clipboardHistory.length === 0) { console.log('\nClipboard history is empty.'); } else { console.log('\nClipboard History:'); clipboardHistory.forEach((item, index) => { console.log(`#${index + 1}: ${item}`); console.log("\n**************************"); }); } }; const clearHistory = () => { clipboardHistory = []; saveHistory(); console.log('Clipboard history cleared!'); }; const startClipboardMonitor = () => { setInterval(async () => { await addToHistory(); // Automatically save clipboard content to history }, 1000); }; const showMenu = () => { console.log('\nClipboard History Manager'); console.log('1. View clipboard history'); console.log('2. Clear clipboard history'); console.log('3. Exit'); console.log('Enter your choice: '); const stdin = process.openStdin(); stdin.once('data', async (data) => { const choice = data.toString().trim(); switch (choice) { case '1': showHistory(); break; case '2': clearHistory(); break; case '3': console.log('You have exited the Clipboard History Manager.'); process.exit(0); break; default: console.log('Invalid choice. Please try again.'); } showMenu(); }); }; showMenu();