Commit 7b7f772e authored by Thorfin89's avatar Thorfin89

Nouvelle organisation fichiers dossiers

parent 1419c387
54
\ No newline at end of file
...@@ -10,7 +10,7 @@ https://www.youtube.com/watch?v=sgUSSa7N9ec ...@@ -10,7 +10,7 @@ https://www.youtube.com/watch?v=sgUSSa7N9ec
import csv import csv
def radios_display(self): # récupération de la liste des radios (+infos) def radios_display(self): # récupération de la liste des radios (+infos)
with open("./data/radios.csv", 'r', encoding='utf8') as radios_file: with open("./config/radios.csv", 'r', encoding='utf8') as radios_file:
radios_list = csv.DictReader(radios_file) radios_list = csv.DictReader(radios_file)
radios_list = [dict(ligne) for ligne in radios_list] # transforme en liste de dictionnaires radios_list = [dict(ligne) for ligne in radios_list] # transforme en liste de dictionnaires
# print(radios_dico) # print(radios_dico)
...@@ -53,7 +53,7 @@ logos = [["", "", "", "", ""], ...@@ -53,7 +53,7 @@ logos = [["", "", "", "", ""],
def radios_display(): # récupération de la liste des radios (+infos) def radios_display(): # récupération de la liste des radios (+infos)
with open("../data/radios.csv", 'r', encoding='utf8') as radios_file: with open("../radios/radios.csv", 'r', encoding='utf8') as radios_file:
radios_list = csv.DictReader(radios_file) radios_list = csv.DictReader(radios_file)
radios_list = [dict(ligne) for ligne in radios_list] # transforme en liste de dictionnaires radios_list = [dict(ligne) for ligne in radios_list] # transforme en liste de dictionnaires
compteur = 0 compteur = 0
...@@ -71,6 +71,7 @@ def radios_display(): # récupération de la liste des radios (+infos) ...@@ -71,6 +71,7 @@ def radios_display(): # récupération de la liste des radios (+infos)
for c in range(4): for c in range(4):
print(logos[c]) print(logos[c])
radios_display() radios_display()
``` ```
......
...@@ -42,7 +42,7 @@ class Radio(Pupitre): ...@@ -42,7 +42,7 @@ class Radio(Pupitre):
self.player.audio_set_volume(vol_audio) self.player.audio_set_volume(vol_audio)
# le niveau du volume est enregistré dans webradiopi.cfg # le niveau du volume est enregistré dans webradiopi.cfg
# pour le reprendre au prochain lancement de l'application # pour le reprendre au prochain lancement de l'application
sauvegarde = open("webradiopi.cfg", "w") sauvegarde = open("config/webradiopi.cfg", "w")
sauvegarde.write(vol_potar) sauvegarde.write(vol_potar)
sauvegarde.close() sauvegarde.close()
...@@ -51,7 +51,7 @@ class Radio(Pupitre): ...@@ -51,7 +51,7 @@ class Radio(Pupitre):
def unmute(self): # rétablissement du son def unmute(self): # rétablissement du son
# on charge configuration sauvegardée # on charge configuration sauvegardée
config_file = open("webradiopi.cfg", "r") config_file = open("config/webradiopi.cfg", "r")
volume_init = int(config_file.read()) volume_init = int(config_file.read())
config_file.close() config_file.close()
self.player.audio_set_volume(volume_init) self.player.audio_set_volume(volume_init)
......
# Projet : WebRadioPi
# Fichier : pupitre.py
# Auteur : Daniel SAZERAT (thorfin89@free.fr)
import vlc
from time import sleep
from vlc import EventType, Media, MediaPlayer, MediaParseFlag, Meta
# classes ---------------------------------
class Mediainfo:
def __init__(self, flux):
self.flux = flux
print(flux)
self.play()
self.info()
sleep(50)
def play(self):
self.media_player = vlc.MediaPlayer()
radio = vlc.Media(self.flux)
self.media_player.set_media(radio)
self.media_player.play()
def info(self):
info = self.media_player.event_manager()
print(info)
radio1 = Mediainfo("http://live.leanstream.co/CJOTFM-MP3")
\ No newline at end of file
from time import sleep
from vlc import Media, MediaPlayer, Meta
player = MediaPlayer()
media = Media("http://live.leanstream.co/CJOTFM-MP3") # on définit le flux
player.set_media(media) # on charge le flux
player.play() # on lance l'écoute de la radio
memo_info = "" # pour mémoriser le titre
while True: # boucle principale
flux_info = media.get_meta(Meta.NowPlaying) # on récupère l'info sur le titre actuel
if flux_info and flux_info != memo_info: # si le titre donné et est différent de celui mémorisé
info_display = flux_info[4:len(flux_info) - 3] # on 'nettoie' le titre (caractères au début et à la fin)
if info_display[0:3] == " - ":
print("** "+info_display[3:]+" **")
else:
print(info_display)
memo_info = flux_info # on mémorise le titre
sleep(2) # on relance le test toutes 2 secondes
from time import sleep
from vlc import EventType, Media, MediaPlayer, MediaParseFlag, Meta
player = MediaPlayer()
radio_flux = Media("http://live.leanstream.co/CJOTFM-MP3") # on définit le flux
player.set_media(radio_flux) # on charge le flux
player.play() # on lance l'écoute de la radio
info_flux = player.event_manager() # on récupère l'information du flux
# définition des types d'infos à afficher
infos_selected = { # Meta.Album: None,
# Meta.AlbumArtist: None,
# Meta.Artist: None,
# Meta.Title: None,
# Meta.Genre: None,
# Meta.URL: None,
Meta.NowPlaying: None
}
while True: # boucle principale
# using MediaParseFlag.local is not any different
# radio_flux.parse_with_options(MediaParseFlag.network, 2) # 2 sec timeout
# analyse des infos avec saut systématique si info nulle ou inchangée
for type_d_info in infos_selected.keys(): # pour chaque type d'info
info = radio_flux.get_meta(type_d_info) # on récupère l'info
if info != infos_selected[type_d_info]: # si l'info est différente de 'None'
print(info[3:len(info)-2]) # affiche de l'info 'nettoyée'
# mémorisation de l'info
infos_selected[type_d_info] = info
'''
on charge l'info dans la clé correspondante de
infos_selected[type_d_info]
l'info ne sera pas différente au prochain passage
=> la fonction print n'est plus traitée
jusqu'à ce que l'info change (changement de morceau)
'''
sleep(2) # on relance le test toutes 2 secondes
...@@ -14,7 +14,7 @@ radio_on = False # mémorise le fait d'écouter une radio ou pas ...@@ -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 bg_color, bg_color_light = "#206080", "#2F6F8F" # couleur de fond
# Chargement du fichier CSV contenant les informations : Nom, Pays, Type, Url, Logo # Chargement du fichier CSV contenant les informations : Nom, Pays, Type, Url, Logo
with open("./data/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' # '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) radios_list = csv.DictReader(radios_file)
...@@ -39,7 +39,7 @@ class Pupitre: ...@@ -39,7 +39,7 @@ class Pupitre:
self.root.attributes('-fullscreen', False) # < à basculer sur False pour les tests sur PC self.root.attributes('-fullscreen', False) # < à basculer sur False pour les tests sur PC
self.root.config(bg=bg_color) self.root.config(bg=bg_color)
# images des boutons # logos des boutons
self.icon_back = tk.PhotoImage(file="./icons/back.png") self.icon_back = tk.PhotoImage(file="./icons/back.png")
self.icon_play = tk.PhotoImage(file="./icons/play.png") self.icon_play = tk.PhotoImage(file="./icons/play.png")
self.icon_pause = tk.PhotoImage(file="./icons/pause.png") self.icon_pause = tk.PhotoImage(file="./icons/pause.png")
...@@ -124,7 +124,7 @@ class Pupitre: ...@@ -124,7 +124,7 @@ class Pupitre:
# potentiomètre de volume # potentiomètre de volume
# - on charge la configuration du volume sauvegardée # - on charge la configuration du volume sauvegardée
lecture = open("webradiopi.cfg", "r") lecture = open("config/webradiopi.cfg", "r")
volume_init = lecture.read() volume_init = lecture.read()
lecture.close() lecture.close()
# - affichage du potentiomètre de volume # - affichage du potentiomètre de volume
...@@ -155,10 +155,10 @@ class Pupitre: ...@@ -155,10 +155,10 @@ class Pupitre:
if num_radio < self.nb_radios: # si on a bien une radio if num_radio < self.nb_radios: # si on a bien une radio
if radios_list[num_radio]['Logo'] != "": # si un logo est associé à ce flux if radios_list[num_radio]['Logo'] != "": # si un logo est associé à ce flux
img = Image.open("./images/" + radios_list[num_radio]['Logo']) img = Image.open("./logos/" + radios_list[num_radio]['Logo'])
else: # s'il n'y a pas de logo pour la radio else: # s'il n'y a pas de logo pour la radio
img = Image.open("./images/radio.png") img = Image.open("logos/radio.png")
# on redimensionne le logo # on redimensionne le logo
img = img.resize((logo_size, logo_size), Image.ANTIALIAS) img = img.resize((logo_size, logo_size), Image.ANTIALIAS)
...@@ -188,9 +188,9 @@ class Pupitre: ...@@ -188,9 +188,9 @@ class Pupitre:
# affichage du logo de la radio sélectionnée dans la zone de droite # affichage du logo de la radio sélectionnée dans la zone de droite
if radios_list[num_radio]['Logo']: # si un logo est associé à la radio if radios_list[num_radio]['Logo']: # si un logo est associé à la radio
img = Image.open("./images/" + radios_list[num_radio]['Logo']) img = Image.open("./logos/" + radios_list[num_radio]['Logo'])
else: # s'il n'y a pas de logo associé à la radio else: # s'il n'y a pas de logo associé à la radio
img = Image.open("./images/radio.png") img = Image.open("logos/radio.png")
img = img.resize((logo_size, logo_size), Image.ANTIALIAS) # redimensionne le logo img = img.resize((logo_size, logo_size), Image.ANTIALIAS) # redimensionne le logo
self.logo_selected = ImageTk.PhotoImage(img) self.logo_selected = ImageTk.PhotoImage(img)
......
42
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment