From 9259b617f9c2aa24c46d6778ce19b89fb141ba61 Mon Sep 17 00:00:00 2001 From: fergalmoran Date: Mon, 18 Jun 2012 16:31:54 +0100 Subject: [PATCH] Added the actual scripts --- index.py | 16 ++++++++++++++++ pyicequery.py | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 index.py create mode 100644 pyicequery.py diff --git a/index.py b/index.py new file mode 100644 index 0000000..1eff082 --- /dev/null +++ b/index.py @@ -0,0 +1,16 @@ +from bottle import route, run +from pprint import pprint +import pyicequery, json + +@route('/icequery/:serveraddress/:serverport/:mountpoint') +def index(serveraddress, serverport, mountpoint): + ret = pyicequery.get_server_details(serveraddress, serverport, mountpoint) + pprint (ret) + return json.dumps(ret) + +@route('/icequery/:serveraddress/:serverport/:mountpoint/:item') +def index(serveraddress, serverport, mountpoint): + return 'Hello %s!' % serveraddress + +run(host='109.104.118.84', port=8080) + diff --git a/pyicequery.py b/pyicequery.py new file mode 100644 index 0000000..5ac6fa3 --- /dev/null +++ b/pyicequery.py @@ -0,0 +1,33 @@ +import urllib2 +from bs4 import BeautifulSoup + +def get_server_details(server, port, mount): + server = "http://%s:%s/status.xsl?mount=/%s" % (server, port, mount) + print "Getting info for %s" % (server) + try: + response = urllib2.urlopen(server) + html = response.read() + if html: + soup = BeautifulSoup(html) + + info = {} + info['stream_title'] = soup.find(text="Stream Title:").findNext('td').contents[0] + info['stream_description'] = soup.find(text="Stream Description:").findNext('td').contents[0] + info['content_type'] = soup.find(text="Content Type:").findNext('td').contents[0] + info['mount_started'] = soup.find(text="Mount started:").findNext('td').contents[0] + info['quality'] = soup.find(text="Quality:").findNext('td').contents[0] + info['current_listeners'] = soup.find(text="Current Listeners:").findNext('td').contents[0] + info['peak_listeners'] = soup.find(text="Peak Listeners:").findNext('td').contents[0] + info['stream_genre'] = soup.find(text="Stream Genre:").findNext('td').contents[0] + info['stream_url'] = soup.find(text="Stream URL:").findNext('td').findNext('a').contents[0] + info['current_song'] = soup.find(text="Current Song:").findNext('td').contents[0] + + return info + else: + print "Invalid content found" + return None + + except urllib2.URLError: + print "Unable to read url, please check your parameters" + return None +get_server_details("localhost", "8000", "live")