mopidy-subidy/mopidy_subidy/frontend.py
2024-10-08 13:29:26 -07:00

29 lines
1.2 KiB
Python

import pykka
import mopidy_subidy
from mopidy import core
from mopidy_subidy import subsonic_api, uri
class SubidyFrontend(pykka.ThreadingActor, core.CoreListener):
def __init__(self, config, core):
super().__init__()
subidy_config = config["subidy"]
self.subsonic_api = subsonic_api.SubsonicApi(
url=subidy_config["url"],
username=subidy_config["username"],
password=subidy_config["password"],
app_name=mopidy_subidy.SubidyExtension.dist_name,
legacy_auth=subidy_config["legacy_auth"],
api_version=subidy_config["api_version"],
)
self.scrobble = subidy_config["scrobble"]
def track_playback_started(self, tl_track):
if self.scrobble == True and uri.is_uri(tl_track.track.uri):
return self.subsonic_api.send_scrobble(tl_track.track.uri, False)
def track_playback_ended(self, tl_track, time_position):
if self.scrobble == True and uri.is_uri(tl_track.track.uri):
time_position = time_position // 1000
if time_position < tl_track.track.length // 2:
return self.subsonic_api.send_scrobble(tl_track.track.uri, True)