42 lines
1.4 KiB
Python
Executable File
42 lines
1.4 KiB
Python
Executable File
|
|
import weechat
|
|
import sys
|
|
import json
|
|
#import urllib.request
|
|
import urllib
|
|
import urlopen
|
|
#from urllib.request import urlopen
|
|
|
|
|
|
ICESTATS = {
|
|
'SCRIPT_NAME' : 'icestats',
|
|
'SCRIPT_COMMAND' : 'icestats',
|
|
'default_options' : {
|
|
},
|
|
}
|
|
|
|
def mpv_msg(world,world_eol,userdata):
|
|
url = 'http://icecast.nashgul.com.es/status-json.xsl'
|
|
response = urlopen(url)
|
|
string = response.read().decode('utf-8')
|
|
json_obj = json.loads(string)
|
|
my_obj = json_obj["icestats"]["source"]
|
|
stations = len(my_obj)
|
|
if my_obj == []:
|
|
print ('No Data!')
|
|
else:
|
|
for (x) in range(stations):
|
|
try:
|
|
np = my_obj[x]["server_name"] + ": " + my_obj[x]["artist"] + " " + my_obj[x]["title"] + " " + my_obj[x]["listenurl"]
|
|
message = '%s' % ICESTATS['message'] + np
|
|
weechat.command(weechat.current_buffer(), message)
|
|
return weechat.WEECHAT_RC_OK
|
|
except:
|
|
e = sys.exc_info()[0]
|
|
if my_obj[x]["server_name"] == "Birras icecast: freenode.#birras":
|
|
pass
|
|
else:
|
|
weechat.prnt('', '%s: some stations are missing matadata' % ICESTATS['SCRIPT_NAME'])
|
|
return weechat.WEECHAT_RC_ERROR
|
|
weechat.register(ICESTATS['SCRIPT_NAME'], "llua", "0.1", "The Beer-ware License", "Now Playing for icecast2", "", "")
|