123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- #!/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())
|