Šarūnas Nejus
8f514eb6ab
Replace/fix Release.type with Release.primary-type
2026-01-31 18:05:18 +00:00
David Logie
8769f8f8f0
Gracefully handle 404s when importing from MusicBrainz.
...
A 404 error can be raised when fetching from MusicBrainz in the case of
re-importing an album that has since been deleted from MusicBrainz.
2026-01-22 12:20:04 +00:00
David Logie
3ea4bb7941
Fix bug in fetching preferred release event.
...
With the changes to how data is fetched from MusicBrainz, empty releases
are now `None` instead of an empty dict.
2026-01-13 13:16:09 +00:00
Šarūnas Nejus
59b02bc49b
Type MusicBrainzAPI properly
2026-01-06 09:54:02 +00:00
Šarūnas Nejus
36964e433e
Migrate listenbrainz plugin to use our MusicBrainzAPI implementation
2026-01-06 00:27:36 +00:00
Šarūnas Nejus
523fa6ceaf
Move MusicBrainzAPI to a shared util
2026-01-06 00:26:41 +00:00
Šarūnas Nejus
f9c3aae4ed
Musicbrainz: fix original release id access for a pseudo releae
2025-12-29 17:05:32 +00:00
Šarūnas Nejus
5785ce3a84
Ensure that inc are joined with a plus
...
See this line in https://musicbrainz.org/doc/MusicBrainz_API#Lookups
> To include more than one subquery in a single request, separate the arguments to inc= with a + (plus sign), like inc=recordings+labels.
2025-12-21 01:03:20 +00:00
Šarūnas Nejus
d1aa45a008
Add retries for connection errors
2025-12-21 01:03:20 +00:00
Šarūnas Nejus
72f7d6ebe3
Refactor HTTP request handling with RequestHandler base class
...
Introduce a new RequestHandler base class to introduce a shared session,
centralize HTTP request management and error handling across plugins.
Key changes:
- Add RequestHandler base class with a shared/cached session
- Convert TimeoutSession to use SingletonMeta for proper resource
management
- Create LyricsRequestHandler subclass with lyrics-specific error
handling
- Update MusicBrainzAPI to inherit from RequestHandler
2025-12-21 00:40:40 +00:00
Šarūnas Nejus
10ebd98ca5
musicbrainz: remove error handling
2025-12-20 01:35:52 +00:00
Šarūnas Nejus
ca0b3171cc
musicbrainz: access the custom server directly, if configured
2025-12-20 01:35:51 +00:00
Šarūnas Nejus
6b034da147
musicbrainz: browse directly
2025-12-20 01:35:51 +00:00
Šarūnas Nejus
abad03c1cb
musicbrainz: search directly
2025-12-20 01:35:51 +00:00
Šarūnas Nejus
d70e591738
musicbrainz: lookup recordings directly
2025-12-20 01:35:51 +00:00
Šarūnas Nejus
2a63e13617
musicbrainz: lookup release directly
2025-12-20 01:35:51 +00:00
Šarūnas Nejus
7fdb458524
Move pseudo release lookup under the plugin
2025-12-20 01:35:51 +00:00
Šarūnas Nejus
a866347345
Define MusicBrainzAPI class with rate limiting
2025-12-20 01:35:51 +00:00
Šarūnas Nejus
5a3ecf6842
Add deprecate_for_user function
2025-11-30 07:02:46 +00:00
Aidan Epstein
d7636fb0c3
Apply suggestions from code review
...
Co-authored-by: Šarūnas Nejus <snejus@protonmail.com>
2025-11-11 13:18:51 -08:00
Aidan Epstein
9e7d5debdc
Allow selecting either tags or genres in the includes, defaulting to genres
...
Genres is a filtered list based on what musicbrainz considers a genre,
tags are all the user-submitted tags. [1]
1. https://musicbrainz.org/doc/MusicBrainz_API#:~:text=Since%20genres%20are ,!).
Also apply suggestions from code review
Co-authored-by: Šarūnas Nejus <snejus@protonmail.com>
2025-11-11 20:01:37 +00:00
Šarūnas Nejus
d486885af3
pyupgrade Python 3.10
2025-11-08 12:09:52 +00:00
asardaes
c087851770
Prefer alias if import languages not defined
2025-11-01 13:52:14 +01:00
asardaes
ab5705f444
Reimplement mbpseudo plugin inheriting from MusicBrainzPlugin
2025-11-01 13:51:34 +01:00
asardaes
ac0b221802
Revert "Use pseudo-release's track titles for its recordings"
...
This reverts commit f3ddda3a422ffbe06722215abeec63436f1a1a43.
2025-11-01 13:51:34 +01:00
asardaes
017930dd99
Use pseudo-release's track titles for its recordings
2025-11-01 13:51:34 +01:00
Šarūnas Nejus
17bc11034f
Limit search query results using request parameters
2025-09-01 04:36:54 +01:00
Šarūnas Nejus
20497d3d9b
Dedupe search_limit config option init
2025-09-01 04:10:53 +01:00
Šarūnas Nejus
a674fd3095
musicbrainz: Rename searchlimit config option to search_limit
2025-08-31 18:48:46 +01:00
Šarūnas Nejus
d93ddf8dd4
Do not use explicit indices for logging args when not needed
2025-08-30 23:10:21 +01:00
Šarūnas Nejus
1c16b2b308
Replace string concatenation (' + ')
...
- Join hardcoded strings
- Replace concatenated variables with f-strings
2025-08-30 23:10:15 +01:00
Šarūnas Nejus
4a361bd501
Replace format calls with f-strings
2025-08-30 18:42:26 +01:00
Sebastian Mohr
1d33580b68
Renamed class method to _extract_id.
2025-07-15 15:03:14 +02:00
Sebastian Mohr
b62fb10da8
Opt in musicbrainz plugin.
2025-07-15 15:03:14 +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
Šarūnas Nejus
2ec65ed8ca
Deduplicate candidate methods using _search_api method
2025-05-18 20:09:52 +01:00
Šarūnas Nejus
0102f3ce7d
Take into account va_likely param and remove redundant checks
...
- Instead of checking for empty `artist` query, use `va_likely`
parameter to determine whether we should query for Various Artists or
not.
- `album` / `title` is always a truthy string - no need to handle empty
criteria case
- `tracks` list always has at least one track - no need to check for
`len(items)`
2025-05-18 20:09:52 +01:00
Šarūnas Nejus
6487893315
Synchronise docs with the actual supported extra_tags
2025-05-18 20:09:51 +01:00
Šarūnas Nejus
be74936134
Handle extra_tags the way they used to be handled
2025-05-18 20:09:50 +01:00
Šarūnas Nejus
b520981c9c
plugins: restructure id extraction
2025-05-17 14:57:34 +01:00
Šarūnas Nejus
f1dc75f743
Fix types in all edited files
2025-05-17 03:32:01 +01:00
Šarūnas Nejus
7ff73d9747
musicbrainz: set default config in the code
2025-05-17 03:31:59 +01:00
Šarūnas Nejus
a538a3a150
musicbrainz: move handling of extra tags to musicbrainz plugin
2025-05-17 03:31:58 +01:00
Šarūnas Nejus
d8067b219b
musicbrainz: use self.config and self._log
2025-05-17 03:31:57 +01:00
Šarūnas Nejus
fd62d6a0b8
Integrate functionality with BeetsPlugin shenanigans
2025-05-17 03:31:57 +01:00
Šarūnas Nejus
529aaac7dc
Move functionality under MusicBrainzPlugin
2025-05-16 23:08:38 +01:00
Šarūnas Nejus
06dde6e37e
Define MusicBrainzPlugin
2025-05-16 20:17:59 +01:00
Šarūnas Nejus
5dc6f45110
musicbrainz: reorder methods
...
This will make it easier to track changes in later commits.
2025-05-16 19:56:50 +01:00
Šarūnas Nejus
e6e610a3ef
Move musicbrainz to beetsplug directory
2025-05-16 19:56:50 +01:00