UNPKG

huble-mouse-tracker

Version:

Mouse and keyboard event tracker using Python

57 lines (50 loc) 1.93 kB
#!/usr/bin/env node // cli.js const fs = require('fs'); const MouseTracker = require('./index'); const path = require('path'); const logFilePath = path.join('/Users/app/trakr-electron', 'index.txt'); const fileStream = fs.createWriteStream(logFilePath, { flags: 'a' }); function logMessage(message) { console.log(message); fileStream.write(message + '\n'); } const tracker = new MouseTracker(); // Display menu options logMessage('Mouse Tracker CLI'); logMessage('1. Track mouse only'); logMessage('2. Track keyboard only'); logMessage('3. Track both'); logMessage('4. Exit'); process.stdin.setEncoding('utf8'); process.stdin.on('data', (data) => { const choice = data.trim(); switch(choice) { case '1': tracker.start({ mouseOnly: true, onMove: (x, y) => logMessage(`Mouse moved to (${x}, ${y})`), onClick: (x, y, button, pressed) => logMessage(`Mouse ${button} ${pressed ? 'pressed' : 'released'} at (${x}, ${y})`), onScroll: (x, y, dx, dy) => logMessage(`Scrolled ${dy > 0 ? 'up' : 'down'} at (${x}, ${y})`) }); break; case '2': tracker.start({ keyboardOnly: true, onKeyPress: (key) => logMessage(`Key pressed: ${key}`) }); break; case '3': tracker.start({ onMove: (x, y) => logMessage(`Mouse moved to (${x}, ${y})`), onClick: (x, y, button, pressed) => logMessage(`Mouse ${button} ${pressed ? 'pressed' : 'released'} at (${x}, ${y})`), onScroll: (x, y, dx, dy) => logMessage(`Scrolled ${dy > 0 ? 'up' : 'down'} at (${x}, ${y})`), onKeyPress: (key) => logMessage(`Key pressed: ${key}`) }); break; case '4': process.exit(0); default: logMessage('Invalid option'); } });