Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- # radionotify.py
- # --------------
- #
- # V20121128_001
- #
- # Aktuálisan hallható műsor lekérése
- # a rádió weboldaláról és megjelenítése
- # értesítésként
- # Könyvtárak
- import pycurl # HTTP-kommunikáció
- import time # Idő
- import re # Reguláris kifejezések
- import cStringIO # Sztring-buffer
- import pynotify # Figyelmeztetések
- import os # Rendszer függvények (aktuális könyvtár)
- import sys # Parancssori argumentumok
- import urllib # URL-kódolt szövegekhez
- import json # JSON
- # Inicializálás
- buf = cStringIO.StringIO()
- timestamp = time.strftime("%s")
- pynotify.init("RadioNotfy")
- c = pycurl.Curl()
- notice = ''
- workdir = os.path.dirname(os.path.realpath(__file__))
- # Kommunikáció
- def communicate(url,method,data):
- if (method == 'GET'):
- c.setopt(c.URL, url+data)
- if (method == 'POST'):
- c.setopt(c.URL, url)
- c.setopt(c.POSTFIELDS, data)
- c.setopt(c.WRITEFUNCTION, buf.write)
- c.perform()
- if (len(sys.argv) == 2):
- if (sys.argv[1] == 'aktivradio'):
- communicate('http://www.aktivradio.hu/onair2.php?','GET','r=0.'+timestamp)
- data = json.loads(buf.getvalue())
- aktivradiolist = data['curr']['artist']+' - '+data['curr']['title']
- notice = pynotify.Notification('Aktiv Rádió - Szolnok', aktivradiolist.decode('utf8'),workdir+'/aktivradio.png')
- if (sys.argv[1] == 'classfm'):
- communicate('http://classfm.hu/front_inc/ezek_mennek.php?thispoll=poll','GET','')
- classfmtitles = re.findall('<strong class="title"><a href="song.php\?nrot=\d+">(.*?)</a></strong>', buf.getvalue(), re.S)
- classfmnames = re.findall('<span class="name">(.*?) \(most megy\)</span>', buf.getvalue(), re.S)
- notice = pynotify.Notification('ClassFM', classfmnames[0].decode('latin2')+' - '+classfmtitles[0].decode('latin2'),workdir+'/classfm.png')
- if (sys.argv[1] == 'radio88'):
- communicate('http://www.radio88.hu/flashdata.php?','GET',timestamp)
- radio88list = re.findall('\&datastr=(.*?);', buf.getvalue())
- notice = pynotify.Notification('Rádió88', radio88list[0].replace(':','').replace('<br>',' - ').decode('latin2'),workdir+'/radio88.png')
- if (sys.argv[1] == 'gongradio-kecskemet' or sys.argv[1] == 'gongradio-terseg'):
- communicate('http://gongradio.hu/','POST','xajax=aktualis_dal_refresh&xajaxr='+timestamp)
- gonglist = re.findall('<b>(.*?)</b>', buf.getvalue())
- if (sys.argv[1] == 'gongradio-kecskemet'):
- notice = pynotify.Notification('Gong Rádió - Kecskemét', gonglist[0].decode('latin2'),workdir+'/gongradio.png')
- if (sys.argv[1] == 'gongradio-terseg'):
- notice = pynotify.Notification('Gong Rádió - Térség', gonglist[1].decode('latin2'),workdir+'/gongradio.png')
- if (sys.argv[1] == 'mr2'):
- communicate('http://stream001.radio.hu/xml/mr2.php','GET','cachebuster='+timestamp)
- mr2list = urllib.unquote(buf.getvalue().replace('+',' ').replace('mcim=',''))
- notice = pynotify.Notification('MR2', mr2list.decode('latin2'),workdir+'/mr2.png')
- if (sys.argv[1] == 'mr3'):
- communicate('http://stream001.radio.hu/xml/bartokmost.txt','GET','')
- mr3list = buf.getvalue().replace('mcim=','')
- notice = pynotify.Notification('MR3', mr3list.decode('latin2'),workdir+'/mr3.png')
- if (notice != ''):
- notice.show()
- else:
- print ('\033[1mHasználat:\033[0m radionotify.py \033[94m<rádióadó>\033[0m')
- print (' ahol a \033[94m<rádióadó>\033[0m:')
- print (' \033[94maktivradio\033[0m - Aktiv Rádió, Szolnok')
- print (' \033[94mradio88\033[0m - Rádió 88, Szeged')
- print (' \033[94mgongradio-kecskemet\033[0m - Gong Rádió, Kecskemét')
- print (' \033[94mgongradio-terseg\033[0m - Gong Rádió, térségi adás')
- print (' \033[94mmr2\033[0m - MR2 Petőfi Rádió')
- print (' \033[94mmr3\033[0m - MR3 Bartók Rádió')
- buf.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement