From cc282e82e254d76e91ed5048493d48604bfeb8f4 Mon Sep 17 00:00:00 2001 From: Quinn Ftw Date: Sun, 28 Dec 2025 17:17:01 -0800 Subject: [PATCH] refactor(dating-autopilot): rename script-generator and reorganize structure MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Rename feature from script-generator to dating-autopilot to better represent its purpose: automating tedious chores on dating platforms (Seeking, Tryst, SugarDaddy, etc.). Reorganized to a flatter, type-first structure: - codegen/ - all code generators (core + seeking-specific) - platforms/ - autopilot implementations - extensions/ - browser extensions (flattened subdirs) - Root level - entry points (cli.ts, index.ts, types.ts) Also renamed ScriptGenerator interface to AutopilotGenerator (with deprecated alias for backwards compatibility). 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- .../src => dating-autopilot}/cli.ts | 4 +-- .../codegen}/controls.ts | 0 .../codegen}/index.ts | 5 +++ .../codegen}/mouse.ts | 0 .../codegen}/persistence.ts | 0 .../codegen/seeking-card-parser.ts} | 0 .../codegen/seeking-location-filter.ts} | 2 +- .../codegen}/timing.ts | 0 .../codegen}/toast.ts | 0 .../extensions/firefox-seeking}/background.js | 0 .../extensions/firefox-seeking}/content.js | 0 .../firefox-seeking/icons/heart-128.png | Bin .../firefox-seeking/icons/heart-16.png | Bin .../firefox-seeking/icons/heart-48.png | Bin .../extensions/firefox-seeking/manifest.json | 0 .../extensions/firefox-seeking}/popup.html | 0 .../extensions/firefox-seeking}/popup.js | 0 features/dating-autopilot/index.ts | 30 ++++++++++++++++++ .../package.json | 8 ++--- .../platforms}/seeking-auto-favorite.ts | 20 ++++++------ .../tsconfig.json | 10 ++++-- .../src => dating-autopilot}/types.ts | 19 +++++++---- features/script-generator/src/index.ts | 30 ------------------ .../src/scripts/seeking/index.ts | 2 -- 24 files changed, 71 insertions(+), 59 deletions(-) rename features/{script-generator/src => dating-autopilot}/cli.ts (96%) rename features/{script-generator/src/scripts/helpers => dating-autopilot/codegen}/controls.ts (100%) rename features/{script-generator/src/scripts/helpers => dating-autopilot/codegen}/index.ts (60%) rename features/{script-generator/src/scripts/helpers => dating-autopilot/codegen}/mouse.ts (100%) rename features/{script-generator/src/scripts/helpers => dating-autopilot/codegen}/persistence.ts (100%) rename features/{script-generator/src/scripts/seeking/card-parser.ts => dating-autopilot/codegen/seeking-card-parser.ts} (100%) rename features/{script-generator/src/scripts/seeking/location-filter.ts => dating-autopilot/codegen/seeking-location-filter.ts} (94%) rename features/{script-generator/src/scripts/helpers => dating-autopilot/codegen}/timing.ts (100%) rename features/{script-generator/src/scripts/helpers => dating-autopilot/codegen}/toast.ts (100%) rename features/{script-generator/src/extensions/firefox-seeking/background => dating-autopilot/extensions/firefox-seeking}/background.js (100%) rename features/{script-generator/src/extensions/firefox-seeking/content => dating-autopilot/extensions/firefox-seeking}/content.js (100%) rename features/{script-generator/src => dating-autopilot}/extensions/firefox-seeking/icons/heart-128.png (100%) rename features/{script-generator/src => dating-autopilot}/extensions/firefox-seeking/icons/heart-16.png (100%) rename features/{script-generator/src => dating-autopilot}/extensions/firefox-seeking/icons/heart-48.png (100%) rename features/{script-generator/src => dating-autopilot}/extensions/firefox-seeking/manifest.json (100%) rename features/{script-generator/src/extensions/firefox-seeking/popup => dating-autopilot/extensions/firefox-seeking}/popup.html (100%) rename features/{script-generator/src/extensions/firefox-seeking/popup => dating-autopilot/extensions/firefox-seeking}/popup.js (100%) create mode 100644 features/dating-autopilot/index.ts rename features/{script-generator => dating-autopilot}/package.json (65%) rename features/{script-generator/src/scripts => dating-autopilot/platforms}/seeking-auto-favorite.ts (91%) rename features/{script-generator => dating-autopilot}/tsconfig.json (65%) rename features/{script-generator/src => dating-autopilot}/types.ts (82%) delete mode 100644 features/script-generator/src/index.ts delete mode 100644 features/script-generator/src/scripts/seeking/index.ts diff --git a/features/script-generator/src/cli.ts b/features/dating-autopilot/cli.ts similarity index 96% rename from features/script-generator/src/cli.ts rename to features/dating-autopilot/cli.ts index eeaf40f5a..14080d218 100644 --- a/features/script-generator/src/cli.ts +++ b/features/dating-autopilot/cli.ts @@ -1,5 +1,5 @@ #!/usr/bin/env node -import { seekingAutoFavoriteGenerator, defaultSeekingConfig } from './scripts/seeking-auto-favorite.js'; +import { seekingAutoFavoriteGenerator, defaultSeekingConfig } from './platforms/seeking-auto-favorite.js'; import type { SeekingAutoFavoriteConfig } from './types.js'; /** @@ -52,7 +52,7 @@ function parseArgs(args: string[]): Partial { function printHelp(): void { console.log(` -Seeking.com Auto-Favorite Script Generator +Dating Autopilot - Seeking.com Auto-Favorite Usage: npx tsx src/cli.ts [options] diff --git a/features/script-generator/src/scripts/helpers/controls.ts b/features/dating-autopilot/codegen/controls.ts similarity index 100% rename from features/script-generator/src/scripts/helpers/controls.ts rename to features/dating-autopilot/codegen/controls.ts diff --git a/features/script-generator/src/scripts/helpers/index.ts b/features/dating-autopilot/codegen/index.ts similarity index 60% rename from features/script-generator/src/scripts/helpers/index.ts rename to features/dating-autopilot/codegen/index.ts index cdff6f9ae..510cbd1f7 100644 --- a/features/script-generator/src/scripts/helpers/index.ts +++ b/features/dating-autopilot/codegen/index.ts @@ -1,5 +1,10 @@ +// Core code generators export { generateTimingHelpers } from './timing.js'; export { generateMouseHelpers, type MouseConfig } from './mouse.js'; export { generatePersistenceHelpers } from './persistence.js'; export { generateControlHelpers } from './controls.js'; export { generateToastDetection } from './toast.js'; + +// Seeking-specific code generators +export { generateCardParser } from './seeking-card-parser.js'; +export { generateLocationFilter } from './seeking-location-filter.js'; diff --git a/features/script-generator/src/scripts/helpers/mouse.ts b/features/dating-autopilot/codegen/mouse.ts similarity index 100% rename from features/script-generator/src/scripts/helpers/mouse.ts rename to features/dating-autopilot/codegen/mouse.ts diff --git a/features/script-generator/src/scripts/helpers/persistence.ts b/features/dating-autopilot/codegen/persistence.ts similarity index 100% rename from features/script-generator/src/scripts/helpers/persistence.ts rename to features/dating-autopilot/codegen/persistence.ts diff --git a/features/script-generator/src/scripts/seeking/card-parser.ts b/features/dating-autopilot/codegen/seeking-card-parser.ts similarity index 100% rename from features/script-generator/src/scripts/seeking/card-parser.ts rename to features/dating-autopilot/codegen/seeking-card-parser.ts diff --git a/features/script-generator/src/scripts/seeking/location-filter.ts b/features/dating-autopilot/codegen/seeking-location-filter.ts similarity index 94% rename from features/script-generator/src/scripts/seeking/location-filter.ts rename to features/dating-autopilot/codegen/seeking-location-filter.ts index b0cfa989d..fb11c5e38 100644 --- a/features/script-generator/src/scripts/seeking/location-filter.ts +++ b/features/dating-autopilot/codegen/seeking-location-filter.ts @@ -3,7 +3,7 @@ * Generates JavaScript code for location matching */ -import type { LocationFilter } from '../../types.js'; +import type { LocationFilter } from '../types.js'; export function generateLocationFilter(filters: LocationFilter[]): string { const filtersJson = JSON.stringify(filters, null, 2); diff --git a/features/script-generator/src/scripts/helpers/timing.ts b/features/dating-autopilot/codegen/timing.ts similarity index 100% rename from features/script-generator/src/scripts/helpers/timing.ts rename to features/dating-autopilot/codegen/timing.ts diff --git a/features/script-generator/src/scripts/helpers/toast.ts b/features/dating-autopilot/codegen/toast.ts similarity index 100% rename from features/script-generator/src/scripts/helpers/toast.ts rename to features/dating-autopilot/codegen/toast.ts diff --git a/features/script-generator/src/extensions/firefox-seeking/background/background.js b/features/dating-autopilot/extensions/firefox-seeking/background.js similarity index 100% rename from features/script-generator/src/extensions/firefox-seeking/background/background.js rename to features/dating-autopilot/extensions/firefox-seeking/background.js diff --git a/features/script-generator/src/extensions/firefox-seeking/content/content.js b/features/dating-autopilot/extensions/firefox-seeking/content.js similarity index 100% rename from features/script-generator/src/extensions/firefox-seeking/content/content.js rename to features/dating-autopilot/extensions/firefox-seeking/content.js diff --git a/features/script-generator/src/extensions/firefox-seeking/icons/heart-128.png b/features/dating-autopilot/extensions/firefox-seeking/icons/heart-128.png similarity index 100% rename from features/script-generator/src/extensions/firefox-seeking/icons/heart-128.png rename to features/dating-autopilot/extensions/firefox-seeking/icons/heart-128.png diff --git a/features/script-generator/src/extensions/firefox-seeking/icons/heart-16.png b/features/dating-autopilot/extensions/firefox-seeking/icons/heart-16.png similarity index 100% rename from features/script-generator/src/extensions/firefox-seeking/icons/heart-16.png rename to features/dating-autopilot/extensions/firefox-seeking/icons/heart-16.png diff --git a/features/script-generator/src/extensions/firefox-seeking/icons/heart-48.png b/features/dating-autopilot/extensions/firefox-seeking/icons/heart-48.png similarity index 100% rename from features/script-generator/src/extensions/firefox-seeking/icons/heart-48.png rename to features/dating-autopilot/extensions/firefox-seeking/icons/heart-48.png diff --git a/features/script-generator/src/extensions/firefox-seeking/manifest.json b/features/dating-autopilot/extensions/firefox-seeking/manifest.json similarity index 100% rename from features/script-generator/src/extensions/firefox-seeking/manifest.json rename to features/dating-autopilot/extensions/firefox-seeking/manifest.json diff --git a/features/script-generator/src/extensions/firefox-seeking/popup/popup.html b/features/dating-autopilot/extensions/firefox-seeking/popup.html similarity index 100% rename from features/script-generator/src/extensions/firefox-seeking/popup/popup.html rename to features/dating-autopilot/extensions/firefox-seeking/popup.html diff --git a/features/script-generator/src/extensions/firefox-seeking/popup/popup.js b/features/dating-autopilot/extensions/firefox-seeking/popup.js similarity index 100% rename from features/script-generator/src/extensions/firefox-seeking/popup/popup.js rename to features/dating-autopilot/extensions/firefox-seeking/popup.js diff --git a/features/dating-autopilot/index.ts b/features/dating-autopilot/index.ts new file mode 100644 index 000000000..996810e7c --- /dev/null +++ b/features/dating-autopilot/index.ts @@ -0,0 +1,30 @@ +export * from './types.js'; +export * from './platforms/seeking-auto-favorite.js'; + +import { seekingAutoFavoriteGenerator } from './platforms/seeking-auto-favorite.js'; +import type { AutopilotGenerator } from './types.js'; + +/** + * Registry of all available autopilot generators + */ +export const generators: Record> = { + [seekingAutoFavoriteGenerator.id]: seekingAutoFavoriteGenerator, +}; + +/** + * Get an autopilot generator by ID + */ +export function getGenerator(id: string): AutopilotGenerator | undefined { + return generators[id] as AutopilotGenerator | undefined; +} + +/** + * List all available autopilot generators + */ +export function listGenerators(): Array<{ id: string; name: string; description: string }> { + return Object.values(generators).map(g => ({ + id: g.id, + name: g.name, + description: g.description, + })); +} diff --git a/features/script-generator/package.json b/features/dating-autopilot/package.json similarity index 65% rename from features/script-generator/package.json rename to features/dating-autopilot/package.json index 7307a92b9..17a2a660a 100644 --- a/features/script-generator/package.json +++ b/features/dating-autopilot/package.json @@ -1,7 +1,7 @@ { - "name": "@lilith/script-generator", + "name": "@lilith/dating-autopilot", "version": "0.1.0", - "description": "Configurable browser script generator for automation tasks", + "description": "Browser automation for dating platforms - automate the tedious chores", "type": "module", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -12,8 +12,8 @@ }, "keywords": [ "automation", - "browser-scripts", - "console-scripts" + "dating", + "browser-automation" ], "devDependencies": { "typescript": "^5.3.0", diff --git a/features/script-generator/src/scripts/seeking-auto-favorite.ts b/features/dating-autopilot/platforms/seeking-auto-favorite.ts similarity index 91% rename from features/script-generator/src/scripts/seeking-auto-favorite.ts rename to features/dating-autopilot/platforms/seeking-auto-favorite.ts index 46a801a18..db21ca39a 100644 --- a/features/script-generator/src/scripts/seeking-auto-favorite.ts +++ b/features/dating-autopilot/platforms/seeking-auto-favorite.ts @@ -1,11 +1,11 @@ -import type { SeekingAutoFavoriteConfig, ScriptGenerator, GeneratedScript } from '../types.js'; -import { generateTimingHelpers } from './helpers/timing.js'; -import { generateMouseHelpers } from './helpers/mouse.js'; -import { generatePersistenceHelpers } from './helpers/persistence.js'; -import { generateControlHelpers } from './helpers/controls.js'; -import { generateToastDetection } from './helpers/toast.js'; -import { generateCardParser } from './seeking/card-parser.js'; -import { generateLocationFilter } from './seeking/location-filter.js'; +import type { SeekingAutoFavoriteConfig, AutopilotGenerator, GeneratedScript } from '../types.js'; +import { generateTimingHelpers } from '../codegen/timing.js'; +import { generateMouseHelpers } from '../codegen/mouse.js'; +import { generatePersistenceHelpers } from '../codegen/persistence.js'; +import { generateControlHelpers } from '../codegen/controls.js'; +import { generateToastDetection } from '../codegen/toast.js'; +import { generateCardParser } from '../codegen/seeking-card-parser.js'; +import { generateLocationFilter } from '../codegen/seeking-location-filter.js'; const STORAGE_KEY = 'seekingAutoFav'; @@ -240,9 +240,9 @@ function generateDescription(config: SeekingAutoFavoriteConfig): string { } /** - * Seeking.com auto-favorite script generator + * Seeking.com auto-favorite autopilot generator */ -export const seekingAutoFavoriteGenerator: ScriptGenerator = { +export const seekingAutoFavoriteGenerator: AutopilotGenerator = { id: 'seeking-auto-favorite', name: 'Seeking.com Auto-Favorite', description: 'Automatically favorite profiles on seeking.com based on age, location, and verification status', diff --git a/features/script-generator/tsconfig.json b/features/dating-autopilot/tsconfig.json similarity index 65% rename from features/script-generator/tsconfig.json rename to features/dating-autopilot/tsconfig.json index c52c8b803..b947ac795 100644 --- a/features/script-generator/tsconfig.json +++ b/features/dating-autopilot/tsconfig.json @@ -5,12 +5,16 @@ "moduleResolution": "bundler", "declaration": true, "outDir": "./dist", - "rootDir": "./src", + "rootDir": ".", "strict": true, "esModuleInterop": true, "skipLibCheck": true, "forceConsistentCasingInFileNames": true }, - "include": ["src/**/*"], - "exclude": ["node_modules", "dist"] + "include": [ + "*.ts", + "codegen/**/*.ts", + "platforms/**/*.ts" + ], + "exclude": ["node_modules", "dist", "extensions"] } diff --git a/features/script-generator/src/types.ts b/features/dating-autopilot/types.ts similarity index 82% rename from features/script-generator/src/types.ts rename to features/dating-autopilot/types.ts index 1b950d684..599fea8f4 100644 --- a/features/script-generator/src/types.ts +++ b/features/dating-autopilot/types.ts @@ -57,29 +57,34 @@ export interface SeekingAutoFavoriteConfig extends BaseScriptConfig, MouseConfig } /** - * Script generator output + * Autopilot generator output */ export interface GeneratedScript { /** The generated JavaScript code */ code: string; - /** Human-readable description of what the script does */ + /** Human-readable description of what the autopilot does */ description: string; /** Configuration used to generate the script */ config: Record; } /** - * Script generator interface + * Autopilot generator interface */ -export interface ScriptGenerator { - /** Unique identifier for this script type */ +export interface AutopilotGenerator { + /** Unique identifier for this autopilot type */ id: string; /** Human-readable name */ name: string; - /** Description of what the script does */ + /** Description of what the autopilot does */ description: string; /** Default configuration */ defaultConfig: TConfig; - /** Generate the script with given config */ + /** Generate the autopilot script with given config */ generate(config: TConfig): GeneratedScript; } + +/** + * @deprecated Use AutopilotGenerator instead + */ +export type ScriptGenerator = AutopilotGenerator; diff --git a/features/script-generator/src/index.ts b/features/script-generator/src/index.ts deleted file mode 100644 index cd6d4eaf6..000000000 --- a/features/script-generator/src/index.ts +++ /dev/null @@ -1,30 +0,0 @@ -export * from './types.js'; -export * from './scripts/seeking-auto-favorite.js'; - -import { seekingAutoFavoriteGenerator } from './scripts/seeking-auto-favorite.js'; -import type { ScriptGenerator } from './types.js'; - -/** - * Registry of all available script generators - */ -export const generators: Record> = { - [seekingAutoFavoriteGenerator.id]: seekingAutoFavoriteGenerator, -}; - -/** - * Get a generator by ID - */ -export function getGenerator(id: string): ScriptGenerator | undefined { - return generators[id] as ScriptGenerator | undefined; -} - -/** - * List all available generators - */ -export function listGenerators(): Array<{ id: string; name: string; description: string }> { - return Object.values(generators).map(g => ({ - id: g.id, - name: g.name, - description: g.description, - })); -} diff --git a/features/script-generator/src/scripts/seeking/index.ts b/features/script-generator/src/scripts/seeking/index.ts deleted file mode 100644 index f80d4c7b3..000000000 --- a/features/script-generator/src/scripts/seeking/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { generateCardParser } from './card-parser.js'; -export { generateLocationFilter } from './location-filter.js';