Commit Graph

22 Commits

Author SHA1 Message Date
Danilo Reyes
cc9521f7a4 Implement album deletion feature after metadata migration
- Added a new command-line argument `--delete` to allow users to delete single albums after successful metadata migration.
- Integrated the `unmonitor_and_delete_album` function to handle the deletion process for albums that meet the migration criteria.
- Enhanced the `migrate_plex_metadata` function to support exclusion of smart playlists during migration.
- Updated logging to provide detailed feedback on the deletion process and migration results.
2025-11-14 02:04:11 -06:00
Danilo Reyes
af5a2bf825 Add audio verification and duplicate tracking features
- Integrated `plexapi` and `python-dotenv` as dependencies in `flake.nix` and `pyproject.toml` for enhanced functionality.
- Implemented new modules for audio verification and duplicate tracking, including `audio_verification.py`, `duplicate_finder.py`, and `track_verification.py`.
- Updated `main.py` to utilize the new modules for identifying and managing duplicate single tracks in Lidarr, with detailed logging and confidence scoring.
- Enhanced the `find_duplicate_singles` function to support audio verification results and metadata migration to Plex.
- Refactored existing code for improved structure and maintainability, ensuring better integration of new features.
2025-11-14 01:32:41 -06:00
Danilo Reyes
03e8eb6f4e Enhance audio verification features and improve code structure
- Added `ffmpeg` as a dependency in `flake.nix` and `package-cleanup.nix` for audio file property analysis.
- Updated `main.py` to include new functions for retrieving audio file properties using `ffprobe` and verifying audio matches with detailed confidence scoring.
- Refactored fingerprint comparison logic to improve accuracy and added logging for better traceability.
- Enhanced the `find_duplicate_singles` function to support audio verification results and confidence scores, providing clearer output for users.
2025-11-13 23:21:12 -06:00
Danilo Reyes
026c7fe0d8 Add lidarr-cleanup-singles package and integration
- Introduced a new package `lidarr-cleanup-singles` to identify and manage duplicate single tracks in Lidarr.
- Updated `flake.nix` to include the new package in outputs and modified app definitions to support it.
- Created a new script in `src-cleanup` for the main functionality, including audio fingerprint verification.
- Added necessary dependencies and configuration in `pyproject.toml` for the new package.
- Removed unused `flake-utils` and `systems` entries from `flake.lock` to streamline the configuration.
2025-11-13 21:46:03 -06:00
Danilo Reyes
0b86143646 Refactor lidarr-mb-gap NixOS module to use configurable home directory
- Introduced a `home` option for the lidarr-mb-gap service, allowing users to specify a custom home directory.
- Updated paths for `reportDir`, `envFile`, and `sshKeyFile` to be relative to the new `home` option, enhancing flexibility and maintainability.
- Adjusted systemd tmpfiles rules and user home directory settings to align with the new configuration structure.
2025-11-11 16:49:59 -06:00
Danilo Reyes
578b9d316a Add vpsPort option to lidarr-mb-gap NixOS module
- Introduced a new configuration option `vpsPort` to specify the SSH port for VPS connections, defaulting to 22.
- Updated the rsync command to utilize the new `vpsPort` option for improved flexibility in SSH configurations.
2025-11-11 16:46:28 -06:00
Danilo Reyes
73ae1787d1 Update flake.nix to include self in outputs for improved configuration management 2025-11-11 16:17:49 -06:00
Danilo Reyes
0403647a1c Refactor flake.nix and NixOS module for lidarr-mb-gap
- Updated `flake.nix` to simplify package and app definitions by using `inherit` for better readability.
- Removed the `EXAMPLE_CONFIG.nix` file to streamline the project structure, as it was no longer needed.
- Enhanced `nixos/lidarr-mb-gap.nix` to improve the import process for the source configuration, ensuring clarity and maintainability.
2025-11-11 16:14:29 -06:00
Danilo Reyes
b67e154777 lib fix?.... 2025-11-11 16:14:10 -06:00
Danilo Reyes
ed5984e32b fix 2025-11-11 15:49:45 -06:00
Danilo Reyes
f3f154d1b0 Refactor NixOS module and flake configuration for lidarr-mb-gap
- Updated `flake.nix` to streamline output definitions and improve readability.
- Refactored NixOS module configurations in `nixos/lidarr-mb-gap.nix` for better structure and clarity.
- Simplified the package import process in `nix/package.nix` by removing unnecessary parameters.
- Enhanced example configurations in `nixos/EXAMPLE_CONFIG.nix` to align with the new structure.
2025-11-11 15:46:42 -06:00
Danilo Reyes
35e6c7e330 Add example NixOS configuration for lidarr-mb-gap
- Introduced a new configuration file `EXAMPLE_CONFIG.nix` with three examples for setting up the lidarr-mb-gap service on NixOS.
- Included detailed instructions for using flake inputs, direct source paths, and a minimal configuration without VPS sync.
- Provided setup steps for creating environment files, setting permissions, and testing the service after configuration.
2025-11-11 11:34:49 -06:00
Danilo Reyes
a3b7bfa0df Add metadata to Nix package definition for lidarr-mb-gap
- Added `meta` section to `nix/package.nix` to define the main program and provide a description for the lidarr-mb-gap application, enhancing clarity and usability for users and developers.
2025-11-11 11:34:41 -06:00
Danilo Reyes
a6d2e7f7df Refactor Nix package definition and enhance README for lidarr-mb-gap
- Updated `flake.nix` to import the new Nix package definition from `nix/package.nix`, streamlining the build process for the lidarr-mb-gap application.
- Enhanced the README.md to include new features such as NixOS module support for automated deployment, detailed deployment instructions, and configuration options for SSH and output directories.
- Added sections for troubleshooting output file issues and clarified the structure of the project, including new files for deployment and web serving.
2025-11-11 11:11:47 -06:00
Danilo Reyes
e6f96107aa Add NixOS module and deployment guide for lidarr-mb-gap
- Introduced a new NixOS module for the lidarr-mb-gap service, allowing users to configure and manage the report generation process through NixOS.
- Added a comprehensive deployment guide in `nixos/DEPLOYMENT.md`, detailing setup instructions, configuration options, and troubleshooting tips for deploying the service on NixOS and serving reports via Caddy.
- Updated `flake.nix` to export the new NixOS module.
- Enhanced the report generation scripts to support customizable output paths for generated reports.
2025-11-11 11:04:01 -06:00
Danilo Reyes
d38fb12e17 Add README.md for lidarr-mb-gap project
- Created a comprehensive README.md file detailing the purpose, features, installation instructions, usage, and project structure for the lidarr-mb-gap tool.
- Included sections on requirements, configuration, and troubleshooting to assist users in setting up and using the application effectively.
- Provided examples of output and logging for better understanding of the tool's functionality.
2025-11-11 10:43:37 -06:00
Danilo Reyes
7f6b998787 Refactor flake.nix and enhance project structure
- Updated `flake.nix` to define a new Python application `lidarr-mb-gap` for identifying missing albums on MusicBrainz.
- Improved development shell environment by including a Python environment with necessary packages.
- Added new source files: `__init__.py`, `html_report.py`, and `main.py` to implement core functionality and HTML report generation.
- Introduced `pyproject.toml` for better package management and project metadata.
- Enhanced user instructions in the shell hook for running the application.
2025-11-11 10:42:34 -06:00
Danilo Reyes
20b07450d9 Update Harmony link format in SubmissionLinkGenerator
- Modified the URL structure in the generate_harmony_link method to include 'release' in the path for better clarity and accuracy in generating submission links from Deezer URLs.
2025-11-11 10:25:48 -06:00
Danilo Reyes
ba0cdcb27b Add HTML report generation for missing albums
- Introduced a new `html_report.py` file to generate an HTML report for albums to add and update.
- Implemented a `generate_html_report` function that creates a styled HTML document with clickable submission links.
- Integrated the new report generation function into `main.py` to streamline the process of reporting missing albums.
- Enhanced user experience with filtering options for album types and artists in the generated report.
2025-11-11 10:21:41 -06:00
Danilo Reyes
da03de4b3c Enhance development environment and improve main.py functionality
- Added `black` to the development environment in flake.nix for code formatting.
- Updated shell hook to include instructions for using `black`.
- Refactored `main.py` to improve code organization and readability, including reordering imports and simplifying list comprehensions.
- Enhanced album processing functions for better clarity and efficiency.
- Improved error handling and output formatting for better user experience.
2025-11-11 10:13:59 -06:00
Danilo Reyes
0dca7474a9 Refactor find_missing_albums method to return tuples and enhance album processing
- Updated the return type of find_missing_albums to return a tuple of lists: albums_to_add and albums_to_update.
- Improved response handling and debugging output for API responses.
- Enhanced album categorization based on status indicators (red for missing, orange for needing updates).
- Updated main function to process and display albums to add and update separately.
- Modified HTML report generation to reflect changes in album categorization.
2025-11-11 09:51:29 -06:00
Danilo Reyes
51df3f15db Add initial project files for MusicBrainz Missing Albums Finder
- Created .gitignore to exclude unnecessary files and directories.
- Added flake.nix for Nix package management and development environment setup.
- Introduced flake.lock to lock dependencies for reproducibility.
- Implemented main.py script to identify missing albums on MusicBrainz from Deezer releases for artists monitored in Lidarr, including functionality for generating submission links.
2025-11-11 09:35:54 -06:00