Šarūnas Nejus
37237d5675
Refactor autotag to use Source abstraction
...
Introduce Source class to encapsulate metadata extraction logic,
replacing scattered `get_most_common_tags` calls throughout codebase.
- Add Source class in importer.tasks with artist, name, and metadata
- Simplify `distance()` to accept Source.data instead of items list
- Update display functions to use Source objects
- Cache Source creation with @cached_property on ImportTask
This centralizes metadata handling and reduces coupling between
autotag and library modules.
2026-07-15 17:56:05 +01:00
..
2026-06-29 11:20:15 +02:00
2026-06-29 11:20:15 +02:00
2026-06-29 11:20:15 +02:00
2026-06-29 11:20:15 +02:00
2026-06-29 11:20:15 +02:00
2026-06-27 10:11:11 -04:00
2026-06-29 11:20:15 +02:00
2026-03-06 10:57:08 +00:00
2026-06-29 11:20:15 +02:00
2026-06-29 11:20:15 +02:00
2026-06-29 11:20:15 +02:00
2026-06-29 11:20:15 +02:00
2026-06-29 11:20:15 +02:00
2026-06-29 11:20:15 +02:00
2026-06-29 11:20:15 +02:00
2026-06-29 11:20:15 +02:00
2026-06-29 11:20:15 +02:00
2026-07-15 17:56:05 +01:00
2026-06-29 11:20:15 +02:00
2026-06-29 11:20:15 +02:00
2026-06-29 11:20:15 +02:00
2026-06-29 11:20:15 +02:00
2026-06-29 11:20:15 +02:00
2026-06-29 11:20:15 +02:00
2026-06-29 11:20:15 +02:00
2026-07-13 12:29:55 -04:00
2026-06-29 11:20:15 +02:00
2026-06-09 00:14:06 +01:00
2026-06-29 11:20:15 +02:00
2026-07-13 18:38:53 +01:00
2026-06-29 11:20:15 +02:00
2026-06-29 11:20:15 +02:00
2026-06-29 11:20:15 +02:00
2026-06-29 11:20:15 +02:00
2026-07-08 21:53:00 -05:00
2026-06-29 11:20:15 +02:00
2026-06-29 11:20:15 +02:00
2026-07-15 17:56:05 +01:00
2026-05-20 16:53:06 +02:00
2026-07-03 10:26:17 -07:00
2026-05-20 16:53:06 +02:00
2026-06-29 11:20:15 +02:00
2026-06-29 11:20:15 +02:00
2026-06-29 11:20:15 +02:00
2026-06-29 11:20:15 +02:00
2026-06-29 11:20:15 +02:00
2026-06-29 11:20:15 +02:00
2026-06-29 11:20:15 +02:00
2026-06-09 00:14:06 +01:00
2026-06-29 11:20:15 +02:00
2026-07-13 01:14:41 +01:00
2026-06-29 11:20:15 +02:00
2026-07-15 17:56:05 +01:00
2026-06-29 11:20:15 +02:00
2026-06-29 11:20:15 +02:00
2026-06-29 11:20:15 +02:00
2026-06-29 11:20:15 +02:00
2026-06-29 11:20:15 +02:00
2026-06-29 11:20:15 +02:00
2026-06-29 11:20:15 +02:00
2026-05-20 16:53:06 +02:00
2026-06-29 11:20:15 +02:00
2026-06-29 11:20:15 +02:00
2026-06-09 00:14:06 +01:00
2026-05-27 20:03:54 +01:00
2026-06-29 11:20:15 +02:00
2026-06-02 00:02:10 +08:00
2026-06-29 11:20:15 +02:00
2026-06-29 11:20:15 +02:00
2026-06-29 11:20:15 +02:00
2026-06-29 11:20:15 +02:00
2026-06-29 11:20:15 +02:00
2026-06-29 11:20:15 +02:00
2026-06-29 11:20:15 +02:00
2026-06-29 11:20:15 +02:00
2026-06-29 11:20:15 +02:00
2026-06-29 11:20:15 +02:00
2026-06-29 11:20:15 +02:00
2026-06-29 11:20:15 +02:00
2026-06-29 11:20:15 +02:00
2026-06-29 11:20:15 +02:00
2026-06-29 11:20:15 +02:00