1
1
import time
2
2
import requests
3
3
import sys
4
+ import shutil
5
+ import os
6
+ from mutagen .id3 import ID3
7
+
4
8
5
9
stream_start = float (time .time ())
6
10
7
11
def get_stream_time ():
8
12
return float (time .time ()) - stream_start
9
13
10
14
def update_stream_title (new_title , mountpoint ):
11
- headers = {'authorization' : 'Basic YWRtaW46JGljZWFkbWluJA==' }
15
+ response = 0
16
+ headers = {'authorization' : 'Basic UR_KEY' }
12
17
url = "http://192.168.1.2:2139/admin/metadata.xsl?song={}&mount=%2F{}&mode=updinfo&charset=UTF-8" .format (new_title , mountpoint )
13
- r = requests .get (url , headers = headers )
18
+
19
+ while response != 200 :
20
+ time .sleep (0.5 )
21
+ r = requests .get (url , headers = headers )
22
+ response = r .status_code
14
23
15
24
return r
16
25
17
- def title_updater_start (songs , mountpoint ):
26
+ def set_song_cover (file , mountpoint ):
27
+ id3_data = ID3 (file )
28
+
29
+ if "APIC:Album cover" in id3_data :
30
+ cover = id3_data ["APIC:Album cover" ].data
31
+ with open ("/home/bonzo/radiosite/img/cover-{}.png" .format (mountpoint ), "wb" ) as coverfile :
32
+ coverfile .write (cover )
33
+ coverfile .close ()
34
+ else :
35
+ external_cover_file = file .split ("." )[0 ] + ".jpg"
36
+ destination_image = "/home/bonzo/radiosite/img/cover-{}.png" .format (mountpoint )
37
+ if os .path .exists (external_cover_file ):
38
+ shutil .copy (external_cover_file , destination_image )
39
+ else :
40
+ shutil .copy ("no-cover.png" , destination_image )
41
+
42
+
43
+
44
+ def title_updater_start (files , songs , mountpoint ):
18
45
indexx = 0
19
46
songs .sort (reverse = False , key = lambda x : int (x [0 ]))
20
47
@@ -36,6 +63,7 @@ def title_updater_start(songs, mountpoint):
36
63
if current_time_seconds <= next_song_start :
37
64
if not donotsend :
38
65
req = update_stream_title (entry [1 ], mountpoint )
66
+ set_song_cover (files [indexx - 1 ], mountpoint )
39
67
current_song = entry [1 ]
40
68
else :
41
69
break
0 commit comments