Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
W
WebRadioPi
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Thorfin89
WebRadioPi
Commits
7b7f772e
Commit
7b7f772e
authored
Feb 08, 2023
by
Thorfin89
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Nouvelle organisation fichiers dossiers
parent
1419c387
Hide whitespace changes
Inline
Side-by-side
Showing
45 changed files
with
13 additions
and
111 deletions
+13
-111
webradiopi.cfg
config/webradiopi.cfg
+1
-0
solutions.md
docs/solutions.md
+3
-2
CelticMusicRadio.png
logos/CelticMusicRadio.png
+0
-0
ExpatRadioScotland.png
logos/ExpatRadioScotland.png
+0
-0
Fip.png
logos/Fip.png
+0
-0
France_Culture.png
logos/France_Culture.png
+0
-0
Highlander.png
logos/Highlander.png
+0
-0
IrishPubRadio.png
logos/IrishPubRadio.png
+0
-0
Kultrock.png
logos/Kultrock.png
+0
-0
LinnJazz.png
logos/LinnJazz.png
+0
-0
OuiFM.png
logos/OuiFM.png
+0
-0
PureRadioScotland.png
logos/PureRadioScotland.png
+0
-0
Rockn_Blues.png
logos/Rockn_Blues.png
+0
-0
Siamsa.png
logos/Siamsa.png
+0
-0
Skafari.png
logos/Skafari.png
+0
-0
SmoothScotland.png
logos/SmoothScotland.png
+0
-0
blues_athens.png
logos/blues_athens.png
+0
-0
boom-ottawa.png
logos/boom-ottawa.png
+0
-0
bretagneblog.png
logos/bretagneblog.png
+0
-0
brume.png
logos/brume.png
+0
-0
celtik-folk-punk.png
logos/celtik-folk-punk.png
+0
-0
classic21.png
logos/classic21.png
+0
-0
dempechemode.png
logos/dempechemode.png
+0
-0
europe-1.png
logos/europe-1.png
+0
-0
fb-armorique.png
logos/fb-armorique.png
+0
-0
fb-auxerre.png
logos/fb-auxerre.png
+0
-0
fb-isere.png
logos/fb-isere.png
+0
-0
france-info.png
logos/france-info.png
+0
-0
france-inter.png
logos/france-inter.png
+0
-0
france-musique.png
logos/france-musique.png
+0
-0
jazz-radio.png
logos/jazz-radio.png
+0
-0
live-ireland.png
logos/live-ireland.png
+0
-0
nostalgie.png
logos/nostalgie.png
+0
-0
radio.png
logos/radio.png
+0
-0
rtl.png
logos/rtl.png
+0
-0
tsf-jazz.png
logos/tsf-jazz.png
+0
-0
virginrock70.png
logos/virginrock70.png
+0
-0
wallpaper.png
logos/wallpaper.png
+0
-0
main.py
main.py
+2
-2
mediainfo.py
mediainfo.py
+0
-30
info_now_playing.py
poub/info_now_playing.py
+0
-26
info_radio_test.py
poub/info_radio_test.py
+0
-43
pupitre.py
pupitre.py
+7
-7
radios.csv
radios/radios.csv
+0
-0
webradiopi.cfg
webradiopi.cfg
+0
-1
No files found.
config/webradiopi.cfg
0 → 100644
View file @
7b7f772e
54
\ No newline at end of file
docs/solutions.md
View file @
7b7f772e
...
...
@@ -10,7 +10,7 @@ https://www.youtube.com/watch?v=sgUSSa7N9ec
import
csv
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
=
[
dict
(
ligne
)
for
ligne
in
radios_list
]
# transforme en liste de dictionnaires
# print(radios_dico)
...
...
@@ -53,7 +53,7 @@ logos = [["", "", "", "", ""],
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
=
[
dict
(
ligne
)
for
ligne
in
radios_list
]
# transforme en liste de dictionnaires
compteur
=
0
...
...
@@ -71,6 +71,7 @@ def radios_display(): # récupération de la liste des radios (+infos)
for
c
in
range
(
4
):
print
(
logos
[
c
])
radios_display
()
```
...
...
image
s/CelticMusicRadio.png
→
logo
s/CelticMusicRadio.png
View file @
7b7f772e
File moved
image
s/ExpatRadioScotland.png
→
logo
s/ExpatRadioScotland.png
View file @
7b7f772e
File moved
image
s/Fip.png
→
logo
s/Fip.png
View file @
7b7f772e
File moved
image
s/France_Culture.png
→
logo
s/France_Culture.png
View file @
7b7f772e
File moved
image
s/Highlander.png
→
logo
s/Highlander.png
View file @
7b7f772e
File moved
image
s/IrishPubRadio.png
→
logo
s/IrishPubRadio.png
View file @
7b7f772e
File moved
image
s/Kultrock.png
→
logo
s/Kultrock.png
View file @
7b7f772e
File moved
image
s/LinnJazz.png
→
logo
s/LinnJazz.png
View file @
7b7f772e
File moved
image
s/OuiFM.png
→
logo
s/OuiFM.png
View file @
7b7f772e
File moved
image
s/PureRadioScotland.png
→
logo
s/PureRadioScotland.png
View file @
7b7f772e
File moved
image
s/Rockn_Blues.png
→
logo
s/Rockn_Blues.png
View file @
7b7f772e
File moved
image
s/Siamsa.png
→
logo
s/Siamsa.png
View file @
7b7f772e
File moved
image
s/Skafari.png
→
logo
s/Skafari.png
View file @
7b7f772e
File moved
image
s/SmoothScotland.png
→
logo
s/SmoothScotland.png
View file @
7b7f772e
File moved
image
s/blues_athens.png
→
logo
s/blues_athens.png
View file @
7b7f772e
File moved
image
s/boom-ottawa.png
→
logo
s/boom-ottawa.png
View file @
7b7f772e
File moved
image
s/bretagneblog.png
→
logo
s/bretagneblog.png
View file @
7b7f772e
File moved
image
s/brume.png
→
logo
s/brume.png
View file @
7b7f772e
File moved
image
s/celtik-folk-punk.png
→
logo
s/celtik-folk-punk.png
View file @
7b7f772e
File moved
image
s/classic21.png
→
logo
s/classic21.png
View file @
7b7f772e
File moved
image
s/dempechemode.png
→
logo
s/dempechemode.png
View file @
7b7f772e
File moved
image
s/europe-1.png
→
logo
s/europe-1.png
View file @
7b7f772e
File moved
image
s/fb-armorique.png
→
logo
s/fb-armorique.png
View file @
7b7f772e
File moved
image
s/fb-auxerre.png
→
logo
s/fb-auxerre.png
View file @
7b7f772e
File moved
image
s/fb-isere.png
→
logo
s/fb-isere.png
View file @
7b7f772e
File moved
image
s/france-info.png
→
logo
s/france-info.png
View file @
7b7f772e
File moved
image
s/france-inter.png
→
logo
s/france-inter.png
View file @
7b7f772e
File moved
image
s/france-musique.png
→
logo
s/france-musique.png
View file @
7b7f772e
File moved
image
s/jazz-radio.png
→
logo
s/jazz-radio.png
View file @
7b7f772e
File moved
image
s/live-ireland.png
→
logo
s/live-ireland.png
View file @
7b7f772e
File moved
image
s/nostalgie.png
→
logo
s/nostalgie.png
View file @
7b7f772e
File moved
image
s/radio.png
→
logo
s/radio.png
View file @
7b7f772e
File moved
image
s/rtl.png
→
logo
s/rtl.png
View file @
7b7f772e
File moved
image
s/tsf-jazz.png
→
logo
s/tsf-jazz.png
View file @
7b7f772e
File moved
image
s/virginrock70.png
→
logo
s/virginrock70.png
View file @
7b7f772e
File moved
image
s/wallpaper.png
→
logo
s/wallpaper.png
View file @
7b7f772e
File moved
main.py
View file @
7b7f772e
...
...
@@ -42,7 +42,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
(
"webradiopi.cfg"
,
"w"
)
sauvegarde
=
open
(
"
config/
webradiopi.cfg"
,
"w"
)
sauvegarde
.
write
(
vol_potar
)
sauvegarde
.
close
()
...
...
@@ -51,7 +51,7 @@ class Radio(Pupitre):
def
unmute
(
self
):
# rétablissement du son
# on charge configuration sauvegardée
config_file
=
open
(
"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
)
...
...
mediainfo.py
deleted
100644 → 0
View file @
1419c387
# 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
poub/info_now_playing.py
deleted
100644 → 0
View file @
1419c387
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
poub/info_radio_test.py
deleted
100644 → 0
View file @
1419c387
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
pupitre.py
View file @
7b7f772e
...
...
@@ -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
(
"
./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'
radios_list
=
csv
.
DictReader
(
radios_file
)
...
...
@@ -39,7 +39,7 @@ class Pupitre:
self
.
root
.
attributes
(
'-fullscreen'
,
False
)
# < à basculer sur False pour les tests sur PC
self
.
root
.
config
(
bg
=
bg_color
)
#
image
s des boutons
#
logo
s des boutons
self
.
icon_back
=
tk
.
PhotoImage
(
file
=
"./icons/back.png"
)
self
.
icon_play
=
tk
.
PhotoImage
(
file
=
"./icons/play.png"
)
self
.
icon_pause
=
tk
.
PhotoImage
(
file
=
"./icons/pause.png"
)
...
...
@@ -124,7 +124,7 @@ class Pupitre:
# potentiomètre de volume
# - on charge la configuration du volume sauvegardée
lecture
=
open
(
"webradiopi.cfg"
,
"r"
)
lecture
=
open
(
"
config/
webradiopi.cfg"
,
"r"
)
volume_init
=
lecture
.
read
()
lecture
.
close
()
# - affichage du potentiomètre de volume
...
...
@@ -155,10 +155,10 @@ class Pupitre:
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
img
=
Image
.
open
(
"./
image
s/"
+
radios_list
[
num_radio
][
'Logo'
])
img
=
Image
.
open
(
"./
logo
s/"
+
radios_list
[
num_radio
][
'Logo'
])
else
:
# s'il n'y a pas de logo pour la radio
img
=
Image
.
open
(
"
./image
s/radio.png"
)
img
=
Image
.
open
(
"
logo
s/radio.png"
)
# on redimensionne le logo
img
=
img
.
resize
((
logo_size
,
logo_size
),
Image
.
ANTIALIAS
)
...
...
@@ -188,9 +188,9 @@ class Pupitre:
# 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
img
=
Image
.
open
(
"./
image
s/"
+
radios_list
[
num_radio
][
'Logo'
])
img
=
Image
.
open
(
"./
logo
s/"
+
radios_list
[
num_radio
][
'Logo'
])
else
:
# s'il n'y a pas de logo associé à la radio
img
=
Image
.
open
(
"
./image
s/radio.png"
)
img
=
Image
.
open
(
"
logo
s/radio.png"
)
img
=
img
.
resize
((
logo_size
,
logo_size
),
Image
.
ANTIALIAS
)
# redimensionne le logo
self
.
logo_selected
=
ImageTk
.
PhotoImage
(
img
)
...
...
data
/radios.csv
→
radios
/radios.csv
View file @
7b7f772e
File moved
webradiopi.cfg
deleted
100644 → 0
View file @
1419c387
42
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment