Šarūnas Nejus
54b31d01e9
Use only plugins/disabled_plugins config in plugin loading
2025-08-09 15:11:58 +01:00
Sebastian Mohr
6c3f93df2c
Replaced find_executable with shutil.which for python 3.12
...
compatibility as distutils was deprecated.
2025-08-09 13:17:27 +02:00
Šarūnas Nejus
9e4559b8e9
Merge branch 'master' into discogs-404
2025-08-08 21:57:46 +01:00
Rebecca Turner
0430bd383a
discogs: don't crash if a release is deleted
2025-08-07 20:25:09 -07:00
Sebastian Mohr
dc6f07d705
Added typing_extensions to all python version. Removed sys.version checks
2025-08-04 11:19:14 +02:00
Martin Atukunda
4a7e474efc
Merge branch 'master' into feature/add-artist-to-item-entry-template
2025-07-18 00:25:42 +03:00
Šarūnas Nejus
3be4a89aee
refactor: convert _types from class attributes to cached properties
...
Convert static _types dictionaries to dynamic cached class properties to
enable proper plugin type inheritance and avoid mutating shared state.
Key changes:
- Replace static _types dicts with @cached_classproperty decorators
- Update cached_classproperty to support proper caching with class names
- Remove manual _types mutation in plugin loading/unloading
- Add pluginload event and cache clearing for proper plugin integration
- Fix test to trigger type checking during item creation
This ensures plugin types are properly inherited through the class
hierarchy and eliminates issues with shared mutable state between
test runs.
2025-07-16 14:45:25 +01:00
Šarūnas Nejus
7509843517
Fix a generic type error and warnings in spotify
2025-07-16 14:15:27 +01:00
Šarūnas Nejus
a5bbe57490
Fix types in test_player
2025-07-16 14:06:34 +01:00
Šarūnas Nejus
816d06f160
Fix plugin types
2025-07-16 14:06:34 +01:00
Sebastian Mohr
f70e5ec758
split imports
2025-07-16 12:07:49 +02:00
Sebastian Mohr
47f8fbe629
Plugin should call super init.
2025-07-16 11:48:34 +02:00
Sebastian Mohr
0c6b383b06
Track info should not be imported from metadata_plugin.
2025-07-16 11:43:17 +02:00
Sebastian Mohr
1d33580b68
Renamed class method to _extract_id.
2025-07-15 15:03:14 +02:00
Sebastian Mohr
3ce33631a6
Renamed import in mbsync and missing plugins.
2025-07-15 15:03:14 +02:00
Sebastian Mohr
3eadf17e8f
Opt in beatport plugin. Also enhanced type hints and minor cleanup for
...
the beatport plugin.
2025-07-15 15:03:14 +02:00
Sebastian Mohr
a97633dbf6
Opt in dicogs plugin.
2025-07-15 15:03:14 +02:00
Sebastian Mohr
6f623ee7b0
Opt in deezer plugin.
2025-07-15 15:03:14 +02:00
Sebastian Mohr
a770cfb669
Opt in chroma plugin.
2025-07-15 15:03:14 +02:00
Sebastian Mohr
b62fb10da8
Opt in musicbrainz plugin.
2025-07-15 15:03:14 +02:00
Sebastian Mohr
fd800dce7c
Opt in spotify plugin and enhanced typing for the search responses.
2025-07-15 15:03:14 +02:00
Martin Atukunda
8126eaa0fa
Merge branch 'master' into feature/add-artist-to-item-entry-template
2025-07-15 13:58:25 +03:00
54562474
48d45b4df7
feat: mpdstats: add config option for played ratio threshold to determine if a
...
track was played or skipped.
2025-07-09 14:16:23 -06:00
Šarūnas Nejus
afe97cf31e
Do not assign args to query
2025-07-08 11:37:34 +01:00
Šarūnas Nejus
4260162d44
Remove all Python 2 references
2025-07-08 11:37:34 +01:00
Šarūnas Nejus
7cada1c9f8
Remove no-op decargs
2025-07-08 11:37:33 +01:00
Nicolas Mémeint
eb497eee1a
Only consider release collections in mbcollection plugin
2025-07-07 13:25:25 +02:00
Sebastian Mohr
50604b0510
Fixed linting issue after rebase.
2025-07-07 11:40:51 +02:00
Sebastian Mohr
04a3dd2169
Adjusted typehint for search api. Removed optional none from filter.
2025-07-07 11:37:02 +02:00
Sebastian Mohr
1f15598294
Moved constants back to top.
2025-07-07 11:37:02 +02:00
Sebastian Mohr
6ab0f8d3a7
Removed old docstring.
2025-07-07 11:37:02 +02:00
Sebastian Mohr
085b89b70b
Minor improvements to deezer plugin typing.
2025-07-07 11:37:02 +02:00
Sebastian Mohr
59ecfd9a49
Moved fetch_data and _get_track function.
2025-07-07 11:36:38 +02:00
Martin Atukunda
a64acf8aa2
Merge branch 'master' into feature/add-artist-to-item-entry-template
2025-07-07 09:35:15 +03:00
J0J0 Todos
cf557fb41b
playlist: Use pathlib.Path and add types for is_m3u_file()
...
Co-authored-by: Šarūnas Nejus <snejus@protonmail.com>
2025-07-07 08:05:47 +02:00
J0J0 Todos
dcd3a9f7f4
playlist: Support m3u8 ending in playlist plugin
2025-07-07 07:58:59 +02:00
Šarūnas Nejus
0de27cbfb3
Merge branch 'master' into feature/add-artist-to-item-entry-template
2025-07-06 16:43:37 +01:00
Šarūnas Nejus
1a045c9166
Copy paste query, types from library to dbcore
2025-07-06 16:03:46 +01:00
Martin Atukunda
54e76368d0
Avoid rendering extraneous separators
...
handling cases where the artist or album data might be missing to avoid
rendering extraneous separators. Suggested by Copilot.
2025-07-06 12:22:02 +03:00
Martin Atukunda
8ea7346575
Merge branch 'master' into feature/add-artist-to-item-entry-template
2025-07-06 12:14:48 +03:00
J0J0 Todos
47eee070ba
duplicates: remove or delete options mutually exclusive
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-07-05 07:22:33 +02:00
J0J0 Todos
537a71ff82
duplicates: Add --remove option to duplicates plugin
...
Removes from library but keeps files.
2025-07-05 07:17:59 +02:00
dhruvravii
dd6cb538ac
Fix: Spotify plugin unable to recognize Chinese and Japanese albums. ( #5705 )
...
Fixes an issue where each spotify query was converted to ascii before sending. Adds a
new config option to enable legacy behaviour.
A file called japanese_track_request.json was made to mimic the Spotify
API response since I don't have the credentials. Entries in that will
need to be modified with the actual entries.
Co-authored-by: Sebastian Mohr <sebastian@mohrenclan.de>
Co-authored-by: Sebastian Mohr <39738318+semohr@users.noreply.github.com>
Co-authored-by: J0J0 Todos <2733783+JOJ0@users.noreply.github.com>
2025-07-01 11:08:54 +02:00
Nicolas Mémeint
4893cee5e5
Fix the MusicBrainz search not taking into account the album/recording aliases
2025-06-15 21:33:20 +01:00
Sebastian Mohr
66864fcc27
Minor improvements to spotify plugin typing. ( #5815 )
...
## Description
Added some more typehints to the spotify plugin. Also added a method to
get the tokenfile and changed to logic for the handle_response to use
`requests.request`.
This is done mainly to prepare for
https://github.com/beetbox/beets/pull/5787 , see also
https://github.com/beetbox/beets/pull/5814
2025-06-11 15:19:46 +02:00
Šarūnas Nejus
adbd50b237
Move distance to a separate module
2025-05-31 19:17:43 +01:00
Šarūnas Nejus
509cbdcbe4
Move sanitize_pairs/choices from plugins to util module
2025-05-31 17:55:41 +01:00
Uncorrupt3318
dd2f203090
Feat: Add replace plugin ( #5644 )
...
Adds replace plugin. The plugin allows the user to replace the audio
file of a song, while keeping the tags and file name.
Some music servers keep track of favourite songs via paths and tags. Now
there won't be a need to 'refavourite'. Plus, this skips the
import/merge steps.
2025-05-27 00:17:52 +02:00
wisp3rwind
728076e97d
fetchart: assert some invariants to satisfy mypy
...
Eventually, it would be nice to avoid this by more expressive typings.
For now, avoid such larger refactoring.
2025-05-20 10:06:11 +02:00
wisp3rwind
10d1c51a1d
fetchart: consistently use lazy string formatting for debug logging
2025-05-20 09:23:34 +02:00