Commit ed777a40 authored by Thorfin89's avatar Thorfin89

Nouvelle mise à jour de la documentation. Suppression de fichiers.

parent 90945331
import csv
logos = [["", "", "", "", ""],
["", "", "", "", ""],
["", "", "", "", ""],
["", "", "", "", ""]]
def radios_display(): # récupération de la liste des radios (+infos)
with open("../data/radios.csv", 'r', encoding='utf8') as radios_file:
radios_list = csv.DictReader(radios_file)
radios_list = [dict(ligne) for ligne in radios_list] # transforme en liste de dictionnaires
compteur = 0
for y in range(4):
for x in range(5):
try:
if radios_list[compteur]['Logo'] != "":
logos[y][x] = radios_list[compteur]['Logo']
else:
logos[y][x] = "radio.png"
except:
logos[y][x] = "blank.png"
compteur += 1
for c in range(4):
print(logos[c])
radios_display()
from time import sleep
from vlc import EventType, Media, MediaPlayer, MediaParseFlag, Meta
def _media_cb(event, *unused):
# XXX callback ... never called
print(event)
p = MediaPlayer()
# cmd1 = "sout=file/ts:%s" % outfile
#media = Media("http://live.leanstream.co/CJOTFM-MP3") # , cmd1)
media = Media("http://scdn.nrjaudio.fm/adwz2/fr/30601/mp3_128.mp3?origine=fluxradios")
# media.get_mrl()
p.set_media(media)
p.play()
e = p.event_manager()
e.event_attach(EventType.MediaMetaChanged, _media_cb, media)
e.event_attach(EventType.MediaParsedChanged, _media_cb, media)
# define the meta data to show
meta = {Meta.Album: None,
Meta.Genre: None,
Meta.NowPlaying: None}
while True: # loop forever
# XXX using MediaParseFlag.local is not any different
media.parse_with_options(MediaParseFlag.network, 2) # 2 sec timeout
# XXX media.get_parsed_status() always returns .skipped
for k in meta.keys():
v = media.get_meta(k)
if v != meta[k]:
# print("{} - {}".format(k, v))
print("{}".format(v))
meta[k] = v
sleep(2)
import tkinter as tk
def button_function(num):
print(f"Button {num} clicked")
root = tk.Tk()
# Create a 3x3 grid of buttons
for i in range(3):
for j in range(3):
button = tk.Button(root, text="Button " + str(i*3+j+1))
button.grid(row=i, column=j)
button.config(command=lambda i=i, j=j: button_function(i*3+j+1))
root.mainloop()
\ No newline at end of file
import tkinter as tk
def button_function(num):
print(f"Button {num} clicked")
root = tk.Tk()
# Create a 3x3 grid of buttons
for i in range(4):
for j in range(5):
button = tk.Button(root, text="Button " + str(i*5+j+1))
button.grid(row=i, column=j)
button.config(command=lambda i=i, j=j: button_function(i*3+j+1))
root.mainloop()
\ No newline at end of file
### SOLUTIONS :
## SOLUTIONS :
Je note ici toutes les solutions trouvées ici et là, pour répondre à mes problèmes.
### Importation des radios au format CSV :
https://www.youtube.com/watch?v=sgUSSa7N9ec
```python
import csv
......@@ -16,10 +20,61 @@ def radios_display(self): # récupération de la liste des radios (+infos)
print(radios_list[c]['No'], ":", radios_list[c]['Nom'])
```
### Créer une mosaique de boutons avec Tkinter (matrice de 5x4 ) :
```python
import tkinter as tk
def button_function(num):
print(f"Button {num} clicked")
root = tk.Tk()
# Create a 3x3 grid of buttons
for i in range(4):
for j in range(5):
button = tk.Button(root, text="Button " + str(i*5+j+1))
button.grid(row=i, column=j)
button.config(command=lambda i=i, j=j: button_function(i*3+j+1))
root.mainloop()
```
### Intégration de la matrice de boutons dans le projet :
```python
import csv
logos = [["", "", "", "", ""],
["", "", "", "", ""],
["", "", "", "", ""],
["", "", "", "", ""]]
def radios_display(): # récupération de la liste des radios (+infos)
with open("../data/radios.csv", 'r', encoding='utf8') as radios_file:
radios_list = csv.DictReader(radios_file)
radios_list = [dict(ligne) for ligne in radios_list] # transforme en liste de dictionnaires
compteur = 0
for y in range(4):
for x in range(5):
try:
if radios_list[compteur]['Logo'] != "":
logos[y][x] = radios_list[compteur]['Logo']
else:
logos[y][x] = "radio.png"
except:
logos[y][x] = "blank.png"
compteur += 1
for c in range(4):
print(logos[c])
radios_display()
```
### Comment appeler une fonction avec une variable en utilisant un bouton sous tkinter ?:
##### Solution trouvée via tchat GPT :-D
Avec Tkinter, vous pouvez utiliser la méthode `command` pour spécifier une fonction à exécuter lorsque le bouton est cliqué. Voici un exemple de comment appeler une fonction avec une variable en utilisant un bouton sous Tkinter:
......@@ -42,3 +97,48 @@ root.mainloop()
Dans cet exemple, `function_to_call` est la fonction qui sera appelée lorsque le bouton est cliqué, et `variable` est la variable qui sera passée en argument à cette fonction. La fonction lambda créée un wrapper qui exécute la fonction avec la variable passée comme argument
Il est également possible de passer des arguments à la fonction directement en utilisant `button = tk.Button(root, text="Click me!", command=lambda x=variable: function_to_call(x))`, cela permet de passer des arguments à la fonction commande.
### Affichage des informations sur la radio en cours d'écoute :
- https://github.com/oaubert/python-vlc/issues/72
```python
from time import sleep
from vlc import EventType, Media, MediaPlayer, MediaParseFlag, Meta
def _media_cb(event, *unused):
# XXX callback ... never called
print(event)
p = MediaPlayer()
# cmd1 = "sout=file/ts:%s" % outfile
#media = Media("http://live.leanstream.co/CJOTFM-MP3") # , cmd1)
media = Media("http://scdn.nrjaudio.fm/adwz2/fr/30601/mp3_128.mp3?origine=fluxradios")
# media.get_mrl()
p.set_media(media)
p.play()
e = p.event_manager()
e.event_attach(EventType.MediaMetaChanged, _media_cb, media)
e.event_attach(EventType.MediaParsedChanged, _media_cb, media)
# define the meta data to show
meta = {Meta.Album: None,
Meta.Genre: None,
Meta.NowPlaying: None}
while True: # loop forever
# XXX using MediaParseFlag.local is not any different
media.parse_with_options(MediaParseFlag.network, 2) # 2 sec timeout
# XXX media.get_parsed_status() always returns .skipped
for k in meta.keys():
v = media.get_meta(k)
if v != meta[k]:
# print("{} - {}".format(k, v))
print("{}".format(v))
meta[k] = v
sleep(2)
```
### SOURCES :
#### Liste de radios :
#### Liste de streams radios :
- http://fluxradios.blogspot.fr
- https://github.com/riencroonenborghs/streaming_radio/blob/master/assets/data/stations.json
#### Doc python-vlc :
- https://www.olivieraubert.net/vlc/python-ctypes/doc/vlc.MediaPlayer-class.html
......@@ -12,15 +12,7 @@
- https://www.youtube.com/watch?v=DMpq0Cot8YU
- https://www.youtube.com/watch?v=n1ucrkly2nc
#### Afficher les informations sur la radio
- https://github.com/oaubert/python-vlc/issues/72
#### Fichiers csv
- https://www.youtube.com/watch?v=sgUSSa7N9ec
#### Doc tkinter :
- http://tkinter.fdex.eu/index.html
- http://pascal.ortiz.free.fr/contents/tkinter/tkinter/
#### Streams radios :
- https://github.com/riencroonenborghs/streaming_radio/blob/master/assets/data/stations.json
\ 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