Chargement en cours README.md +2 −4 Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff Chargement en cours @@ -23,14 +23,12 @@ Je suis un programmateur autodidacte et amateur, de ce fait, le code est sans do Sous Linux, il faut installer le paquet 'python-vlc' et les paquets PIL. ```bash sudo pip3 install python-vlc sudo apt install python3-pip sudo apt install python3-vlc sudo apt install python3-pil sudo apt install python3-pil.imagetk ``` Il convient d'installer aussi VLC : https://www.videolan.org/vlc/index.fr.html #### Windows : Il faut installer **python-vlc** et **PIL-Tools** Chargement en cours config/webradiopi.cfg +1 −1 Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff 79 No newline at end of file 44 No newline at end of file main.py +2 −2 Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff Chargement en cours @@ -39,7 +39,7 @@ class Radio(Pupitre): self.player.audio_set_volume(vol_audio) # le niveau du volume est enregistré dans webradiopi.cfg # pour le reprendre au prochain lancement de l'application sauvegarde = open("config/webradiopi.cfg", "w") sauvegarde = open("./config/webradiopi.cfg", "w") sauvegarde.write(vol_potar) sauvegarde.close() Chargement en cours @@ -48,7 +48,7 @@ class Radio(Pupitre): def unmute(self): # rétablissement du son # on charge configuration sauvegardée config_file = open("config/webradiopi.cfg", "r") config_file = open("./config/webradiopi.cfg", "r") volume_init = int(config_file.read()) config_file.close() self.player.audio_set_volume(volume_init) Chargement en cours pupitre.py +9 −9 Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff Chargement en cours @@ -14,7 +14,7 @@ radio_on = False # mémorise le fait d'écouter une radio ou pas bg_color, bg_color_light = "#206080", "#2F6F8F" # couleur de fond # Chargement du fichier CSV contenant les informations : Nom, Pays, Type, Url, Logo with open("radios/radios.csv", 'r', encoding='utf-8-sig') as radios_file: with open("./radios/radios.csv", 'r', encoding='utf-8-sig') as radios_file: # 'utf-8-sig' au lieu de 'utf-8' pour éviter l'erreur sur le nom du 1er champ '\ufeffNom' radios_list = csv.DictReader(radios_file) Chargement en cours Chargement en cours @@ -68,8 +68,8 @@ class Pupitre: self.icon_previous_radio = tk.PhotoImage(file="./icons/back.png") self.icon_next_radio = tk.PhotoImage(file="./icons/forward.png") self.icon_previous_page = tk.PhotoImage(file="icons/previous_page.png") self.icon_next_page = tk.PhotoImage(file="icons/next_page.png") self.icon_previous_page = tk.PhotoImage(file="./icons/previous_page.png") self.icon_next_page = tk.PhotoImage(file="./icons/next_page.png") self.icon_sound = tk.PhotoImage(file="./icons/sound_up.png") self.icon_mute = tk.PhotoImage(file="./icons/mute.png") Chargement en cours Chargement en cours @@ -116,7 +116,7 @@ class Pupitre: def right_panel(self): # affiche du logo de la radio sélectionnée self.lbl_radio_logo = ttk.Label(self.menu, background=bg_color_light) # BUG self.lbl_radio_logo = ttk.Label(self.menu, background=bg_color_light) self.lbl_radio_logo.place(width=225, height=225, x=33, y=33) # affiche le nom de la radio Chargement en cours @@ -130,7 +130,7 @@ class Pupitre: self.lbl_radio_info.config(font=('Helvetica', 10), anchor="n", bg=bg_color, fg="white", wraplength=240) # potentiomètre de volume lecture = open("config/webradiopi.cfg", "r") # on charge la configuration du volume sauvegardée lecture = open("./config/webradiopi.cfg", "r") # on charge la configuration du volume sauvegardée volume_init = lecture.read() lecture.close() Chargement en cours @@ -148,11 +148,11 @@ class Pupitre: logo_size = 90 # taille des logos dans la mosaïque # boucles de remplissage de la mosaïque de logos # boucles de remplissage de la liste 'mosaïque' de logos for y_logo in range(4): # 4 lignes for x_logo in range(5): # 5 colonnes num_case = y_logo * 5 + x_logo # indexation des cases de la mosaique de 0 à 19 num_case = y_logo * 5 + x_logo # indexation des cases de la mosaïque de 0 à 19 num_radio = (20 * self.current_page) + num_case # indexation du numéro de radio if num_radio < self.nb_radios: # si on a bien une radio Chargement en cours @@ -161,7 +161,7 @@ class Pupitre: img = Image.open("./logos/" + radios_list[num_radio]['Logo']) else: # s'il n'y a pas de logo pour la radio img = Image.open("logos/radio.png") img = Image.open("./logos/radio.png") # on redimensionne le logo img = img.resize((logo_size, logo_size), Image.LANCZOS) Chargement en cours Chargement en cours @@ -193,7 +193,7 @@ class Pupitre: if radios_list[num_radio]['Logo']: # si un logo est associé à la radio img = Image.open("./logos/" + radios_list[num_radio]['Logo']) else: # s'il n'y a pas de logo associé à la radio img = Image.open("logos/radio.png") img = Image.open("./logos/radio.png") img = img.resize((logo_size, logo_size), Image.LANCZOS) # redimensionne le logo self.logo_selected = ImageTk.PhotoImage(img) Chargement en cours Chargement en cours
README.md +2 −4 Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff Chargement en cours @@ -23,14 +23,12 @@ Je suis un programmateur autodidacte et amateur, de ce fait, le code est sans do Sous Linux, il faut installer le paquet 'python-vlc' et les paquets PIL. ```bash sudo pip3 install python-vlc sudo apt install python3-pip sudo apt install python3-vlc sudo apt install python3-pil sudo apt install python3-pil.imagetk ``` Il convient d'installer aussi VLC : https://www.videolan.org/vlc/index.fr.html #### Windows : Il faut installer **python-vlc** et **PIL-Tools** Chargement en cours
config/webradiopi.cfg +1 −1 Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff 79 No newline at end of file 44 No newline at end of file
main.py +2 −2 Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff Chargement en cours @@ -39,7 +39,7 @@ class Radio(Pupitre): self.player.audio_set_volume(vol_audio) # le niveau du volume est enregistré dans webradiopi.cfg # pour le reprendre au prochain lancement de l'application sauvegarde = open("config/webradiopi.cfg", "w") sauvegarde = open("./config/webradiopi.cfg", "w") sauvegarde.write(vol_potar) sauvegarde.close() Chargement en cours @@ -48,7 +48,7 @@ class Radio(Pupitre): def unmute(self): # rétablissement du son # on charge configuration sauvegardée config_file = open("config/webradiopi.cfg", "r") config_file = open("./config/webradiopi.cfg", "r") volume_init = int(config_file.read()) config_file.close() self.player.audio_set_volume(volume_init) Chargement en cours
pupitre.py +9 −9 Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff Chargement en cours @@ -14,7 +14,7 @@ radio_on = False # mémorise le fait d'écouter une radio ou pas bg_color, bg_color_light = "#206080", "#2F6F8F" # couleur de fond # Chargement du fichier CSV contenant les informations : Nom, Pays, Type, Url, Logo with open("radios/radios.csv", 'r', encoding='utf-8-sig') as radios_file: with open("./radios/radios.csv", 'r', encoding='utf-8-sig') as radios_file: # 'utf-8-sig' au lieu de 'utf-8' pour éviter l'erreur sur le nom du 1er champ '\ufeffNom' radios_list = csv.DictReader(radios_file) Chargement en cours Chargement en cours @@ -68,8 +68,8 @@ class Pupitre: self.icon_previous_radio = tk.PhotoImage(file="./icons/back.png") self.icon_next_radio = tk.PhotoImage(file="./icons/forward.png") self.icon_previous_page = tk.PhotoImage(file="icons/previous_page.png") self.icon_next_page = tk.PhotoImage(file="icons/next_page.png") self.icon_previous_page = tk.PhotoImage(file="./icons/previous_page.png") self.icon_next_page = tk.PhotoImage(file="./icons/next_page.png") self.icon_sound = tk.PhotoImage(file="./icons/sound_up.png") self.icon_mute = tk.PhotoImage(file="./icons/mute.png") Chargement en cours Chargement en cours @@ -116,7 +116,7 @@ class Pupitre: def right_panel(self): # affiche du logo de la radio sélectionnée self.lbl_radio_logo = ttk.Label(self.menu, background=bg_color_light) # BUG self.lbl_radio_logo = ttk.Label(self.menu, background=bg_color_light) self.lbl_radio_logo.place(width=225, height=225, x=33, y=33) # affiche le nom de la radio Chargement en cours @@ -130,7 +130,7 @@ class Pupitre: self.lbl_radio_info.config(font=('Helvetica', 10), anchor="n", bg=bg_color, fg="white", wraplength=240) # potentiomètre de volume lecture = open("config/webradiopi.cfg", "r") # on charge la configuration du volume sauvegardée lecture = open("./config/webradiopi.cfg", "r") # on charge la configuration du volume sauvegardée volume_init = lecture.read() lecture.close() Chargement en cours @@ -148,11 +148,11 @@ class Pupitre: logo_size = 90 # taille des logos dans la mosaïque # boucles de remplissage de la mosaïque de logos # boucles de remplissage de la liste 'mosaïque' de logos for y_logo in range(4): # 4 lignes for x_logo in range(5): # 5 colonnes num_case = y_logo * 5 + x_logo # indexation des cases de la mosaique de 0 à 19 num_case = y_logo * 5 + x_logo # indexation des cases de la mosaïque de 0 à 19 num_radio = (20 * self.current_page) + num_case # indexation du numéro de radio if num_radio < self.nb_radios: # si on a bien une radio Chargement en cours @@ -161,7 +161,7 @@ class Pupitre: img = Image.open("./logos/" + radios_list[num_radio]['Logo']) else: # s'il n'y a pas de logo pour la radio img = Image.open("logos/radio.png") img = Image.open("./logos/radio.png") # on redimensionne le logo img = img.resize((logo_size, logo_size), Image.LANCZOS) Chargement en cours Chargement en cours @@ -193,7 +193,7 @@ class Pupitre: if radios_list[num_radio]['Logo']: # si un logo est associé à la radio img = Image.open("./logos/" + radios_list[num_radio]['Logo']) else: # s'il n'y a pas de logo associé à la radio img = Image.open("logos/radio.png") img = Image.open("./logos/radio.png") img = img.resize((logo_size, logo_size), Image.LANCZOS) # redimensionne le logo self.logo_selected = ImageTk.PhotoImage(img) Chargement en cours