Enabled custom sorting of metadata providers, GH-23

This commit is contained in:
Krateng 2020-07-28 20:12:50 +02:00
parent 1eae55e3bb
commit dd3c83920b
6 changed files with 19 additions and 9 deletions

View File

@ -5,7 +5,7 @@ author = {
"email":"maloja@krateng.dev",
"github": "krateng"
}
version = 2,6,1
version = 2,6,2
versionstr = ".".join(str(n) for n in version)
links = {
"pypi":"malojaserver",
@ -30,9 +30,7 @@ resources = [
"static/*/*",
"data_files/*/*",
"data_files/*/*/*",
"proccontrol/*",
"proccontrol/*/*",
"thirdparty/*"
"**/*.py"
]
commands = {

View File

@ -9,10 +9,9 @@ HOST = "::" # You most likely want either :: for IPv6 or 0.0.0.0 for IPv4 here
[Third Party Services]
# whether to use metadata providers
METADATA_LASTFM = true
METADATA_SPOTIFY = true
METADATA_MUSICBRAINZ = true
# order in which to use the metadata providers
# keep in mind that musicbrainz is rate-limited and should probably not be used first
METADATA_PROVIDERS = [lastfm,spotify,musicbrainz]
# whether to proxy scrobble to other services
SCROBBLE_LASTFM = false

View File

@ -22,6 +22,8 @@ services = {
"metadata":[]
}
metadata_service_ids = {}
def proxy_scrobble_all(artists,title,timestamp):
for service in services["proxyscrobble"]:
@ -77,7 +79,7 @@ class GenericInterface:
services["import"].append(s)
log(cls.name + " registered as scrobble import source")
if s.active_metadata():
services["metadata"].append(s)
metadata_service_ids[s.identifier] = s
log(cls.name + " registered as metadata provider")
def authorize(self):
@ -201,3 +203,11 @@ __all__ = [
"musicbrainz"
]
from . import *
services["metadata"] = [
metadata_service_ids[pr]
for pr in get_settings("METADATA_PROVIDERS")
if metadata_service_ids[pr].active_metadata()
]

View File

@ -4,6 +4,7 @@ import urllib.parse, urllib.request
class LastFM(MetadataInterface, ProxyScrobbleInterface):
name = "LastFM"
identifier = "lastfm"
settings = {
"apikey":"LASTFM_API_KEY",

View File

@ -8,6 +8,7 @@ from ..__pkginfo__ import versionstr, author, links
class MusicBrainz(MetadataInterface):
name = "MusicBrainz"
identifier = "musicbrainz"
# musicbrainz is rate-limited
lock = threading.Lock()

View File

@ -5,6 +5,7 @@ import json
class Spotify(MetadataInterface):
name = "Spotify"
identifier = "spotify"
settings = {
"apiid":"SPOTIFY_API_ID",