0
0
mirror of https://github.com/libretro/Lakka-LibreELEC.git synced 2025-02-12 12:48:10 +00:00
2024-11-14 22:22:38 +01:00

57 lines
1.3 KiB
Python

import json
import os
import socket
import sys
import time
HOST = "127.0.0.1"
SOCK_AF = socket.AF_INET
SOCK_TYPE = socket.SOCK_DGRAM
def _get(key):
return os.environ.get(key, "")
def _get_first(key):
return os.environ.get(key, "").partition("\n")[0]
def _get_time(key):
return int(os.environ.get(key, "0")) / 1000
def _on_event():
event = _get("PLAYER_EVENT")
dict = {}
if event in ["paused", "playing", "position_correction", "seeked"]:
dict["position"] = _get_time("POSITION_MS")
dict["then"] = time.time()
elif event == "track_changed":
dict["art"] = _get_first("COVERS")
dict["duration"] = round(_get_time("DURATION_MS"))
dict["title"] = _get("NAME")
item_type = _get("ITEM_TYPE")
match item_type:
case "Track":
dict["album"] = _get("ALBUM")
dict["artist"] = _get_first("ARTISTS")
case "Episode":
dict["album"] = _get("SHOW_NAME")
elif event == "stopped":
pass
else:
return
port = int(sys.argv[1])
send_event(port, event, dict)
def send_event(port, event="", dict={}):
data = json.dumps([event, dict]).encode()
with socket.socket(SOCK_AF, SOCK_TYPE) as sock:
sock.sendto(data, (HOST, port))
if __name__ == "__main__":
_on_event()