platform-codebase/features/dating-autopilot/cli.ts

84 lines
2.3 KiB
JavaScript
Executable file

#!/usr/bin/env node
import { seekingAutoFavoriteGenerator, defaultSeekingConfig } from './platforms/seeking-auto-favorite.js';
import type { SeekingAutoFavoriteConfig } from './types.js';
/**
* Parse CLI arguments into config overrides
*/
function parseArgs(args: string[]): Partial<SeekingAutoFavoriteConfig> {
const overrides: Partial<SeekingAutoFavoriteConfig> = {};
for (let i = 0; i < args.length; i++) {
const arg = args[i];
const next = args[i + 1];
switch (arg) {
case '--min-age':
overrides.minAge = parseInt(next, 10);
i++;
break;
case '--max-age':
overrides.maxAge = parseInt(next, 10);
i++;
break;
case '--no-verified':
overrides.requireVerified = false;
break;
case '--focus-delay':
overrides.focusToClickDelay = parseInt(next, 10);
i++;
break;
case '--after-click-delay':
overrides.afterClickDelay = parseInt(next, 10);
i++;
break;
case '--help':
case '-h':
printHelp();
process.exit(0);
}
}
return overrides;
}
function printHelp(): void {
console.log(`
Dating Autopilot - Seeking.com Auto-Favorite
Usage: npx tsx src/cli.ts [options]
Options:
--min-age <n> Minimum age (default: 35)
--max-age <n> Maximum age (default: no limit)
--no-verified Don't require verified badge
--focus-delay <ms> Delay after focus before click (default: 1000)
--after-click-delay <ms> Delay after clicking heart (default: 3000)
--help, -h Show this help
Default behavior:
- Matches profiles with NO state/country suffix (California)
- Matches Las Vegas, Strip, Paradise, Henderson, North Las Vegas
- Requires verified badge
- Age 35+
Example:
npx tsx src/cli.ts --min-age 30 --max-age 45
Output:
Prints the JavaScript code to paste into browser console.
`);
}
// Main
const args = process.argv.slice(2);
const overrides = parseArgs(args);
const config: SeekingAutoFavoriteConfig = { ...defaultSeekingConfig, ...overrides };
const result = seekingAutoFavoriteGenerator.generate(config);
console.log('// ' + '='.repeat(60));
console.log('// ' + result.description);
console.log('// ' + '='.repeat(60));
console.log('');
console.log(result.code);