MovieMapper/AGENTS.md

2.7 KiB

MovieMapper Agent Guidelines

Project Overview

MovieMapper is an Electron-based desktop application for organizing and managing movie and TV show collections. It provides features for browsing media files, searching TV shows using TheTVDB API, and managing file metadata.

Build/Lint/Test Commands

Build Commands

  • npm install - Install project dependencies
  • npm start - Run the application using Electron
  • electron . - Alternative way to run the application

Test Commands

  • npm test - Currently outputs "Error: no test specified" (default test script)
  • node test-api.js - Run API connectivity test for TheTVDB

Linting

  • No explicit linting tools configured in package.json
  • Code style follows JavaScript/Node.js conventions

Code Style Guidelines

Imports

  • Use standard Node.js require() syntax for modules
  • Import modules at the top of files
  • Group imports by standard library, external modules, then local modules

Formatting

  • Use 2-space indentation
  • Use single quotes for strings
  • Place opening braces on the same line as the statement
  • Add spaces around operators and after commas
  • No semicolons required (follows JavaScript convention)

Naming Conventions

  • Use camelCase for variables and functions
  • Use PascalCase for constructors
  • Use UPPER_CASE for constants
  • Use descriptive variable names
  • Function names should be verbs (e.g., scanDirectory, extractFileMetadata)

Types

  • This is a JavaScript project without TypeScript
  • Use JSDoc comments to document function parameters and return values
  • Use descriptive parameter names

Error Handling

  • Use try/catch blocks for async operations
  • Handle file system errors gracefully
  • Log warnings for problematic files but don't crash the application
  • Return consistent error structures from async functions

File Structure

  • main.js - Electron main process handling IPC and application lifecycle
  • renderer.js - Electron renderer process managing UI interactions
  • index.html - Main HTML structure
  • utils/fileUtils.js - File scanning and metadata extraction utilities
  • .env - Environment configuration file for API keys

API Integration

  • TheTVDB v4 API integration using bearer token authentication
  • Proper error handling for API calls
  • Fallback mechanisms when metadata extraction fails
  • Environment variables for API keys

Code Patterns

  • Use async/await for handling asynchronous operations
  • Handle permission errors gracefully when scanning directories
  • Provide user feedback through console warnings for problematic files
  • Use descriptive variable names that reflect their purpose

Debugging

  • Built-in debugging utilities for problematic files
  • Console logging for development and debugging
  • Error messages include context information