Improved sorting of metadata providers

This commit is contained in:
Krateng 2020-07-28 20:33:26 +02:00
parent dd3c83920b
commit 27f3ff6d08
2 changed files with 6 additions and 12 deletions

View File

@ -5,7 +5,7 @@ author = {
"email":"maloja@krateng.dev", "email":"maloja@krateng.dev",
"github": "krateng" "github": "krateng"
} }
version = 2,6,2 version = 2,6,3
versionstr = ".".join(str(n) for n in version) versionstr = ".".join(str(n) for n in version)
links = { links = {
"pypi":"malojaserver", "pypi":"malojaserver",

View File

@ -15,15 +15,12 @@ from doreah.logging import log
services = { services = {
"proxyscrobble":[], "proxyscrobble":[],
"import":[], "import":[],
"metadata":[] "metadata":[]
} }
metadata_service_ids = {}
def proxy_scrobble_all(artists,title,timestamp): def proxy_scrobble_all(artists,title,timestamp):
for service in services["proxyscrobble"]: for service in services["proxyscrobble"]:
@ -79,7 +76,7 @@ class GenericInterface:
services["import"].append(s) services["import"].append(s)
log(cls.name + " registered as scrobble import source") log(cls.name + " registered as scrobble import source")
if s.active_metadata(): if s.active_metadata():
metadata_service_ids[s.identifier] = s services["metadata"].append(s)
log(cls.name + " registered as metadata provider") log(cls.name + " registered as metadata provider")
def authorize(self): def authorize(self):
@ -135,7 +132,7 @@ class MetadataInterface(GenericInterface,abstract=True):
def active_metadata(self): def active_metadata(self):
return ( return (
all(self.settings[key] not in [None,"ASK"] for key in self.metadata["required_settings"]) and all(self.settings[key] not in [None,"ASK"] for key in self.metadata["required_settings"]) and
get_settings(self.metadata["activated_setting"]) self.identifier in get_settings("METADATA_PROVIDERS")
) )
def get_image_track(self,track): def get_image_track(self,track):
@ -205,9 +202,6 @@ __all__ = [
from . import * from . import *
services["metadata"].sort(
services["metadata"] = [ key=lambda provider : get_settings("METADATA_PROVIDERS").index(provider.identifier)
metadata_service_ids[pr] )
for pr in get_settings("METADATA_PROVIDERS")
if metadata_service_ids[pr].active_metadata()
]