mopidy-subidy/mopidy_subidy/frontend.py

30 lines
1.2 KiB
Python
Raw Normal View History

2024-10-03 00:50:47 -07:00
import pykka
import mopidy_subidy
from mopidy import core
2024-10-08 13:29:26 -07:00
from mopidy_subidy import subsonic_api, uri
2024-10-03 00:50:47 -07:00
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):
2024-10-08 13:29:26 -07:00
if self.scrobble == True and uri.is_uri(tl_track.track.uri):
2024-10-03 00:50:47 -07:00
return self.subsonic_api.send_scrobble(tl_track.track.uri, False)
def track_playback_ended(self, tl_track, time_position):
2024-10-08 13:29:26 -07:00
if self.scrobble == True and uri.is_uri(tl_track.track.uri):
2024-10-03 00:50:47 -07:00
time_position = time_position // 1000
if time_position < tl_track.track.length // 2:
return self.subsonic_api.send_scrobble(tl_track.track.uri, True)