aync version of the screen
This commit is contained in:
parent
f13ac8b350
commit
d6cc355e40
84
sync_screen.py
Normal file
84
sync_screen.py
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
import time
|
||||||
|
import board
|
||||||
|
import adafruit_ssd1306
|
||||||
|
from tenacity import retry, stop_after_attempt
|
||||||
|
|
||||||
|
from mopidy_json_client import MopidyClient
|
||||||
|
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
|
|
||||||
|
@retry(stop=stop_after_attempt(5))
|
||||||
|
def current_track():
|
||||||
|
mopidy = MopidyClient()
|
||||||
|
if mopidy.playback.get_state() == "stopped":
|
||||||
|
oled.text("Nothing", 32, 26, 1)
|
||||||
|
oled.text("Playing", 32, 36, 1)
|
||||||
|
return
|
||||||
|
if mopidy.playback.get_state() == "paused":
|
||||||
|
oled.text("Paused", 32, 36, 1)
|
||||||
|
return
|
||||||
|
current_track_data = mopidy.playback.get_current_track()
|
||||||
|
time_position = datetime.fromtimestamp(
|
||||||
|
mopidy.playback.get_time_position() / 1000.0
|
||||||
|
).strftime("%M:%S")
|
||||||
|
if "ytmusic" in current_track_data["uri"]:
|
||||||
|
if "album" in current_track_data:
|
||||||
|
totalTime = current_track_data["length"]
|
||||||
|
track_total_length = datetime.fromtimestamp(totalTime / 1000.0).strftime(
|
||||||
|
"%M:%S"
|
||||||
|
)
|
||||||
|
current_data = {
|
||||||
|
"Artist": current_track_data["artists"][0]["name"],
|
||||||
|
"Album": current_track_data["album"]["name"],
|
||||||
|
"Song": current_track_data["name"],
|
||||||
|
"TrackTime": time_position + "/" + track_total_length,
|
||||||
|
}
|
||||||
|
elif "ytmusic:track" in current_track_data["uri"]:
|
||||||
|
totalTime = current_track_data["length"]
|
||||||
|
track_total_length = datetime.fromtimestamp(totalTime / 1000.0).strftime(
|
||||||
|
"%M:%S"
|
||||||
|
)
|
||||||
|
current_data = {
|
||||||
|
"Artist": "-",
|
||||||
|
"Album": current_track_data["artists"][0]["name"],
|
||||||
|
"Song": current_track_data["name"],
|
||||||
|
"TrackTime": time_position + "/" + track_total_length,
|
||||||
|
}
|
||||||
|
else:
|
||||||
|
try:
|
||||||
|
stream_title = mopidy.playback.get_stream_title()
|
||||||
|
artist_and_song = stream_title.split(" - ")
|
||||||
|
except:
|
||||||
|
stream_title = "None"
|
||||||
|
artist_and_song = ["None", "None"]
|
||||||
|
current_data = {
|
||||||
|
"Artist": current_track_data["album"]["name"],
|
||||||
|
"Album": artist_and_song[0],
|
||||||
|
"Song": artist_and_song[1],
|
||||||
|
"TrackTime": time_position,
|
||||||
|
}
|
||||||
|
mopidy.disconnect()
|
||||||
|
oled.text(current_data["Artist"], 0, 16, 1)
|
||||||
|
oled.text(current_data["Album"], 0, 26, 1)
|
||||||
|
oled.text(current_data["Song"], 0, 36, 1)
|
||||||
|
oled.text(current_data["TrackTime"], 0, 46, 1)
|
||||||
|
return
|
||||||
|
|
||||||
|
|
||||||
|
WIDTH = 128
|
||||||
|
HEIGHT = 64
|
||||||
|
|
||||||
|
# Use for I2C.
|
||||||
|
i2c = board.I2C()
|
||||||
|
oled = adafruit_ssd1306.SSD1306_I2C(WIDTH, HEIGHT, i2c, addr=0x3C)
|
||||||
|
|
||||||
|
|
||||||
|
while True:
|
||||||
|
oled.fill(0)
|
||||||
|
oled.text("Floppy Player", 26, 0, 1)
|
||||||
|
current_track()
|
||||||
|
oled.show()
|
||||||
|
time.sleep(2)
|
||||||
|
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user