music_updater
¶
Refactored Music Updater core class.
This is a streamlined version that uses the new modular components.
MusicUpdater
¶
Orchestrates music library updates using modular components.
Initialize MusicUpdater with dependency injection.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
deps
|
DependencyContainer
|
Dependency container with all required services |
required |
Source code in src/app/music_updater.py
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 | |
set_dry_run_context
¶
Set the dry-run context for the updater.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
mode
|
str
|
The dry-run mode |
required |
test_artists
|
set[str]
|
Set of test artists for filtering |
required |
Source code in src/app/music_updater.py
run_clean_artist
async
¶
Clean track names for a specific artist.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
artist
|
str
|
Artist name to process |
required |
Source code in src/app/music_updater.py
run_revert_years
async
¶
Revert year updates for an artist (optionally per album).
Uses backup CSV if provided; otherwise uses the latest changes_report.csv.
Source code in src/app/music_updater.py
run_restore_release_years
async
¶
Restore year from Apple Music's release_year field.
Finds albums where 'year' differs dramatically from 'release_year' and updates year to match release_year.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
artist
|
str | None
|
Optional artist name filter. |
None
|
album
|
str | None
|
Optional album name filter (requires artist). |
None
|
threshold
|
int
|
Year difference threshold (default: 5 years). |
5
|
Source code in src/app/music_updater.py
run_update_years
async
¶
Update album years for all or specific artist.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
artist
|
str | None
|
Optional artist filter |
required |
force
|
bool
|
Force update even if year exists |
required |
fresh
|
bool
|
Fresh mode - invalidate cache before processing, implies force |
False
|
Source code in src/app/music_updater.py
run_update_genres
async
¶
Update genres for all or specific artist.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
artist
|
str | None
|
Optional artist filter. |
required |
force
|
bool
|
Force update even if genre exists. |
required |
Source code in src/app/music_updater.py
run_verify_pending
async
¶
Re-verify albums that are pending year verification.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
_force
|
bool
|
Force verification even if recently done (currently unused) |
False
|
Source code in src/app/music_updater.py
run_verify_database
async
¶
Verify track database against Music.app.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
force
|
bool
|
Force verification even if recently done |
False
|
Source code in src/app/music_updater.py
run_main_pipeline
async
¶
Run the main update pipeline: clean names, update genres, update years.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
force
|
bool
|
Force all operations (bypass incremental filtering) |
False
|
fresh
|
bool
|
Fresh mode - implies force, also invalidates caches |
False
|