87 lines
2.8 KiB
Python
Executable File
87 lines
2.8 KiB
Python
Executable File
#!/bin/python3
|
|
|
|
from tkinter import *
|
|
from tkinter.font import Font
|
|
from PIL import Image
|
|
import requests
|
|
import urllib
|
|
import os
|
|
|
|
|
|
class RadioParadise(object):
|
|
def __init__(self):
|
|
self.load_api()
|
|
|
|
def load_api(self):
|
|
respons=requests.get("https://api.radioparadise.com/api/now_playing")
|
|
rp_dict=respons.json()
|
|
self.title=rp_dict["title"]
|
|
self.artist=rp_dict["artist"]
|
|
self.album=rp_dict["album"]
|
|
self.year=rp_dict["year"]
|
|
self.time=rp_dict["time"]
|
|
self.jpg_path=rp_dict["cover"]
|
|
return rp_dict
|
|
|
|
def get_fmt_list(self):
|
|
result=(f'Titel: {self.title}\nArtiest: {self.artist}\nAlbum: {self.album}\nJaar: {self.year}\nTijd: {self.time}')
|
|
return result
|
|
|
|
def store_albumcover(self):
|
|
rp_raw_image=requests.get(self.jpg_path).content
|
|
rp_file=open("album_art.jpg", "wb")
|
|
rp_file.write(rp_raw_image)
|
|
rp_file.close()
|
|
rp_convert_img=Image.open("album_art.jpg")
|
|
rp_convert_img.save("album_art.gif")
|
|
rp_convert_img.close()
|
|
|
|
|
|
class RPViewer(Tk):
|
|
def __init__(self, radioparadise, *args, **kwargs):
|
|
super().__init__(*args, **kwargs)
|
|
self.rp=radioparadise
|
|
self.title("Radio Paradise Viewer")
|
|
self.geometry("500x740")
|
|
self.resizable(False,False)
|
|
self.label=Label(self, font="Arial, 14", text="Radio Paradise now playing:")
|
|
self.label.pack()
|
|
self.button_quit=Button(self, text="Quit", command=self.quit)
|
|
self.button_refresh=Button(self, text="Refresh", command=lambda: [self.rp.load_api(),self.refresh_textbox()])
|
|
self.button_quit.pack(side=BOTTOM)
|
|
self.button_refresh.pack(side=TOP)
|
|
self.font=Font(family="Arial", size=14)
|
|
self.textbox=Text(self, height=6, width=50, font=self.font)
|
|
self.textbox.insert("1.0", self.rp.get_fmt_list())
|
|
self.textbox.config(state=DISABLED)
|
|
self.textbox.pack()
|
|
self.rp.store_albumcover()
|
|
self.img = PhotoImage(file="album_art.gif", format='gif')
|
|
self.image_lbl = Label(self, image=self.img)
|
|
self.image_lbl.pack()
|
|
|
|
def quit(self):
|
|
exit()
|
|
|
|
def refresh_textbox(self):
|
|
self.textbox.config(state=NORMAL)
|
|
self.textbox.delete("1.0", "end")
|
|
self.textbox.insert("1.0", self.rp.get_fmt_list())
|
|
self.textbox.config(state=DISABLED)
|
|
self.rp.store_albumcover()
|
|
self.img = PhotoImage(file="album_art.gif", format='gif')
|
|
self.image_lbl.configure(image=self.img)
|
|
self.image_lbl.image=self.img
|
|
|
|
|
|
def main():
|
|
rp_play=RadioParadise()
|
|
app=RPViewer(rp_play)
|
|
app.mainloop()
|
|
|
|
if __name__=="__main__":
|
|
main()
|
|
os.remove("album_art.gif")
|
|
os.remove("album_art.jpg")
|
|
os._exit(0)
|