Files
AM-Exporter/test.py
2024-02-29 20:50:11 +01:00

68 lines
2.0 KiB
Python

import subprocess
import time
import json
import requests
from pprint import pprint
def get_current_song():
return subprocess.check_output(['osascript', 'test.applescript']).decode('utf-8').strip()
def get_track_extras(song, artist, album):
query = f"{song} {artist} {album}"
params = {"media": "music", "entity": "song", "term": query}
r = requests.get("https://itunes.apple.com/search", params=params)
json_data = r.json()
# print('json_data: ', json_data)
if json_data["resultCount"] == 1:
result = json_data["results"][0]
elif json_data["resultCount"] > 1:
pass
else :
pass
artwork_url = result["artworkUrl100"] if result else None
itunes_url = result["trackViewUrl"] if result else None
artist_url = result["artistViewUrl"] if result else None
return (artwork_url, itunes_url, artist_url)
url = "http://127.0.0.1:5000"
headers = {'Content-Type': 'application/json'}
def post(currentsong):
data = json.dumps(currentsong)
r = requests.post(url+'/music/set', data=data, headers=headers)
r = requests.get(url+'/music/display')
print(r.text)
currentsong = json.loads(str(get_current_song()).replace("'''", '"'))
if currentsong['status'] == 'playing':
(artwork_url, itunes_url, artist_url) = get_track_extras(currentsong['name'], currentsong['artist'], currentsong['album'])
currentsong['artwork_url'] = artwork_url
currentsong['itunes_url'] = itunes_url
currentsong['artist_url'] = artist_url
post(currentsong)
elif currentsong['status'] == 'not playing':
print('not playing')
post({'status' : 'not playing'})
elif currentsong['status'] == 'not running':
print('not running')
post({'status' : 'not running'})
else:
pass
# def main():
# while True:
# current_song = get_current_song()
# if current_song:
# print("Currently listening to:", current_song)
# else:
# print("No music is playing.")
# time.sleep(5) # Check every 5 seconds
# if __name__ == "__main__":
# main()