from config import plugins from .funkwhale_startup import PLUGIN from . import scrobbler # https://listenbrainz.org/lastfm-proxy DEFAULT_SCROBBLER_URL = "http://post.audioscrobbler.com" @plugins.register_hook(plugins.LISTENING_CREATED, PLUGIN) def forward_to_scrobblers(listening, conf, **kwargs): if not conf: raise plugins.Skip() username = conf.get("username") password = conf.get("password") url = conf.get("url", DEFAULT_SCROBBLER_URL) or DEFAULT_SCROBBLER_URL if username and password: PLUGIN["logger"].info("Forwarding scrobbler to %s", url) session = plugins.get_session() session_key, now_playing_url, scrobble_url = scrobbler.handshake_v1( session=session, url=url, username=username, password=password ) scrobbler.submit_now_playing_v1( session=session, track=listening.track, session_key=session_key, now_playing_url=now_playing_url, ) scrobbler.submit_scrobble_v1( session=session, track=listening.track, scrobble_time=listening.creation_date, session_key=session_key, scrobble_url=scrobble_url, ) else: PLUGIN["logger"].debug("No scrobbler configuration for user, skipping")