commit 0848820588aa6edf906ccf8205cbfd67a9b2840d Author: Weber Yann Date: Sat May 28 12:54:49 2016 +0200 Initial commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d18402d --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +*.pyc +.*.swp diff --git a/fip_current.py b/fip_current.py new file mode 100755 index 0000000..c000c6b --- /dev/null +++ b/fip_current.py @@ -0,0 +1,63 @@ +#!/usr/bin/python3 + +import requests + +api_url = 'http://www.fipradio.fr/livemeta/7' + +def get_all(): + + r = requests.get(api_url) + if r.status_code != 200: + msg = "Got status code %d for %s" + msg %= (r.status_code, api_url) + raise RuntimeError(msg) + + return r.json() + +def get_current(): + datas = get_all() + position = datas['levels'][0]['position'] + item_id = datas['levels'][0]['items'][position] + item = datas['steps'][item_id] + + return item + +def format_current(): + item = get_current() + infos = """Title :\t\t{title} +Authors :\t{author} +Album :\t\t{album} +Visual :\t{image} +Youtube :\t{youtube} +""" + + return infos.format( title = item['title'].title(), + author = item['authors'].title(), + album = item['titreAlbum'].title(), + image = item['visual'], + youtube = item['lienYoutube']) + +def icecast_infos(): + item = get_current() + infos = """{title} - {author} ({album})""" + return infos.format( title = item['title'].title(), + author = item['authors'].title(), + album = item['titreAlbum'].title()) + +def icecast_url_update(host, mount, login = None, password = None): + infos = icecast_infos() + url = "http://{host}/admin/medata?mount={mount}&mode=updinfo&song={infos}" + url = url.format( host = host, + mount = mount, + infos = infos) + auth = None + if login is not None and password is not None: + auth = (login, password) + res = requests.get(url, auth) + + if r.status_code != 200: + msg = "Got status code %d for %s" + msg %= (r.status_code, url) + raise RuntimeError(msg) + +print(icecast_infos())