29 lines
1.1 KiB
Python
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)
|