mopidy-subidy/mopidy_subidy/frontend.py
2024-10-03 00:50:47 -07:00

29 lines
1.1 KiB
Python

import pykka
import mopidy_subidy
from mopidy import core
from mopidy_subidy import subsonic_api
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:
return self.subsonic_api.send_scrobble(tl_track.track.uri, False)
def track_playback_ended(self, tl_track, time_position):
if self.scrobble == True:
time_position = time_position // 1000
if time_position < tl_track.track.length // 2:
return self.subsonic_api.send_scrobble(tl_track.track.uri, True)