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)