dotfiles/.config/weechat/python/icestats_weechat.py
2025-05-28 18:33:04 +02:00

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", "", "")