Advertisement
Guest User

radionotify.py

a guest
Nov 28th, 2012
190
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.76 KB | None | 0 0
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3.  
  4. # radionotify.py
  5. # --------------
  6. #
  7. # V20121128_001
  8. #
  9. # Aktuálisan hallható műsor lekérése
  10. # a rádió weboldaláról és megjelenítése
  11. # értesítésként
  12.  
  13. # Könyvtárak
  14. import pycurl # HTTP-kommunikáció
  15. import time # Idő
  16. import re # Reguláris kifejezések
  17. import cStringIO # Sztring-buffer
  18. import pynotify # Figyelmeztetések
  19. import os # Rendszer függvények (aktuális könyvtár)
  20. import sys # Parancssori argumentumok
  21. import urllib # URL-kódolt szövegekhez
  22. import json # JSON
  23.  
  24. # Inicializálás
  25. buf = cStringIO.StringIO()
  26. timestamp = time.strftime("%s")
  27. pynotify.init("RadioNotfy")
  28. c = pycurl.Curl()
  29. notice = ''
  30. workdir = os.path.dirname(os.path.realpath(__file__))
  31.  
  32. # Kommunikáció
  33. def communicate(url,method,data):
  34.     if (method == 'GET'):
  35.         c.setopt(c.URL, url+data)
  36.     if (method == 'POST'):
  37.         c.setopt(c.URL, url)
  38.         c.setopt(c.POSTFIELDS, data)
  39.     c.setopt(c.WRITEFUNCTION, buf.write)
  40.     c.perform()
  41.  
  42. if (len(sys.argv) == 2):
  43.     if (sys.argv[1] == 'aktivradio'):
  44.         communicate('http://www.aktivradio.hu/onair2.php?','GET','r=0.'+timestamp)
  45.         data = json.loads(buf.getvalue())
  46.         aktivradiolist = data['curr']['artist']+' - '+data['curr']['title']
  47.         notice = pynotify.Notification('Aktiv Rádió - Szolnok', aktivradiolist.decode('utf8'),workdir+'/aktivradio.png')
  48.    
  49.     if (sys.argv[1] == 'classfm'):
  50.         communicate('http://classfm.hu/front_inc/ezek_mennek.php?thispoll=poll','GET','')
  51.         classfmtitles = re.findall('<strong class="title"><a href="song.php\?nrot=\d+">(.*?)</a></strong>', buf.getvalue(), re.S)
  52.         classfmnames = re.findall('<span class="name">(.*?) \(most megy\)</span>', buf.getvalue(), re.S)
  53.         notice = pynotify.Notification('ClassFM', classfmnames[0].decode('latin2')+' - '+classfmtitles[0].decode('latin2'),workdir+'/classfm.png')
  54.    
  55.     if (sys.argv[1] == 'radio88'):
  56.         communicate('http://www.radio88.hu/flashdata.php?','GET',timestamp)
  57.         radio88list = re.findall('\&datastr=(.*?);', buf.getvalue())
  58.         notice = pynotify.Notification('Rádió88', radio88list[0].replace(':','').replace('<br>',' - ').decode('latin2'),workdir+'/radio88.png')
  59.    
  60.     if (sys.argv[1] == 'gongradio-kecskemet' or sys.argv[1] == 'gongradio-terseg'):
  61.         communicate('http://gongradio.hu/','POST','xajax=aktualis_dal_refresh&xajaxr='+timestamp)
  62.         gonglist = re.findall('<b>(.*?)</b>', buf.getvalue())
  63.         if (sys.argv[1] == 'gongradio-kecskemet'):
  64.             notice = pynotify.Notification('Gong Rádió - Kecskemét', gonglist[0].decode('latin2'),workdir+'/gongradio.png')
  65.         if (sys.argv[1] == 'gongradio-terseg'):
  66.             notice = pynotify.Notification('Gong Rádió - Térség', gonglist[1].decode('latin2'),workdir+'/gongradio.png')
  67.    
  68.     if (sys.argv[1] == 'mr2'):
  69.         communicate('http://stream001.radio.hu/xml/mr2.php','GET','cachebuster='+timestamp)
  70.         mr2list = urllib.unquote(buf.getvalue().replace('+',' ').replace('mcim=',''))
  71.         notice = pynotify.Notification('MR2', mr2list.decode('latin2'),workdir+'/mr2.png')
  72.    
  73.     if (sys.argv[1] == 'mr3'):
  74.         communicate('http://stream001.radio.hu/xml/bartokmost.txt','GET','')
  75.         mr3list = buf.getvalue().replace('mcim=','')
  76.         notice = pynotify.Notification('MR3', mr3list.decode('latin2'),workdir+'/mr3.png')
  77.    
  78.     if (notice != ''):
  79.         notice.show()
  80. else:
  81.     print ('\033[1mHasználat:\033[0m radionotify.py \033[94m<rádióadó>\033[0m')
  82.     print ('  ahol a \033[94m<rádióadó>\033[0m:')
  83.     print ('    \033[94maktivradio\033[0m - Aktiv Rádió, Szolnok')
  84.     print ('    \033[94mradio88\033[0m - Rádió 88, Szeged')
  85.     print ('    \033[94mgongradio-kecskemet\033[0m - Gong Rádió, Kecskemét')
  86.     print ('    \033[94mgongradio-terseg\033[0m - Gong Rádió, térségi adás')
  87.     print ('    \033[94mmr2\033[0m - MR2 Petőfi Rádió')
  88.     print ('    \033[94mmr3\033[0m - MR3 Bartók Rádió')
  89.  
  90. buf.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement