- Added scrobbling functionality, tracks will now be scrobbled if you have enabled the feature on your Navidrome instance
- Resolves #52 - Resolves #33
This commit is contained in:
@@ -1,3 +1,4 @@
|
|||||||
|
from datetime import datetime
|
||||||
from flask import Flask, render_template
|
from flask import Flask, render_template
|
||||||
import logging
|
import logging
|
||||||
from multiprocessing import Process
|
from multiprocessing import Process
|
||||||
@@ -845,6 +846,11 @@ class PlaybackFinishedHandler(AbstractRequestHandler):
|
|||||||
|
|
||||||
def handle(self, handler_input: HandlerInput) -> Response:
|
def handle(self, handler_input: HandlerInput) -> Response:
|
||||||
logger.debug('In PlaybackFinishedHandler')
|
logger.debug('In PlaybackFinishedHandler')
|
||||||
|
|
||||||
|
# Generate a timestamp in milliseconds for scrobbling
|
||||||
|
timestamp_ms = datetime.now().timestamp()
|
||||||
|
current_track = play_queue.get_current_track()
|
||||||
|
connection.scrobble(current_track.id, timestamp_ms)
|
||||||
play_queue.get_next_track()
|
play_queue.get_next_track()
|
||||||
|
|
||||||
return handler_input.response_builder.response
|
return handler_input.response_builder.response
|
||||||
|
|||||||
@@ -63,6 +63,19 @@ class SubsonicConnection:
|
|||||||
self.logger.error('Failed to connect to Navidrome')
|
self.logger.error('Failed to connect to Navidrome')
|
||||||
|
|
||||||
return self.conn.ping()
|
return self.conn.ping()
|
||||||
|
|
||||||
|
def scrobble(self, track_id: str, time: int) -> None:
|
||||||
|
"""Scrobble the given track
|
||||||
|
|
||||||
|
:param str track_id: The ID of the track to scrobble
|
||||||
|
:param int time: UNIX timestamp of track play time
|
||||||
|
:return: None
|
||||||
|
"""
|
||||||
|
self.logger.debug('In function scrobble()')
|
||||||
|
|
||||||
|
self.conn.scrobble(track_id, True, time)
|
||||||
|
|
||||||
|
return None
|
||||||
|
|
||||||
def search_playlist(self, term: str) -> Union[str, None]:
|
def search_playlist(self, term: str) -> Union[str, None]:
|
||||||
"""Search the media server for the given playlist
|
"""Search the media server for the given playlist
|
||||||
|
|||||||
Reference in New Issue
Block a user