# -*- coding: utf-8 -*- # File feedsig.py __author__="Sandro Della Giustina (gialloporpora)" __date__="22 Aug 2007" __license__="GPL" __version__="0.0.1" __URL__="http://www.gialloporpora.netsons.org" __credits__="http://urltea.com/1apr" # Come si usa ? # il file deve essere avviato da prompt dei comandi e deve avere un parametro obbligatorio che indica il nome del file utilizzato da TB per firmare le email # Esempio: python feedsig.py firma.txt # importa il modulo feedparser.py scaricabile da: http://feedparser.org che viene utilizzato per leggere il feed RSS import feedparser,urllib, sys # Di seguito i parametri che vanno configurati manualmente # feeds una lista dove devono essere inseriti i feed la cui prima entry verr usata nella firma # si possono inserire quanti feed si vuole, ma si ricordi che una firma non dovrebbe mai superare le quattro righe # static entry rappresenta una riga che verr sempre aggiunta, il valore di staticpos ne indica la posizione # 0 significa che verr inserita all'inizio, 1 che verr inserita alla fine feeds=["http://www.gialloporpora.netsons.org/Blog/atom.php", "http://digg.com/rss/gialloporpora/index2.xml"] static_entry="* FAQ* di /it-alt.comp.software.mozilla/: http://dwarfurl.com/f6c23" static_pos=1 def replace_HTML_character(s): s=s.replace("'","'") s=s.replace('"','"') s=s.replace('<','<') s=s.replace('>','>') s=s.replace('&','&') s=s.replace('&','&') s=s.replace(" "," ") s=s.replace("à","a") s=s.replace("è","") s=s.replace("ì","") s=s.replace("ò","") s=s.replace("ù","") s=s.replace("é","") return s def tiny(url): # Liberamente ispirato da: http://urltea.com/1apr # Funzione che usa le API di urltea o tinyurl per accorciare l'URL # volendo si puo usare anche Tinyurl: http://tinyurl.com/api-create.php?url= # Volendo si puo usare anche urltea: http://urltea.com/api/text/? APIshortener="http://urltea.com/api/text/?" try: encodedurl=APIshortener+urllib.urlencode({"url":url}) instream=urllib.urlopen(encodedurl) tinyurl=instream.read() instream.close() if len(tinyurl)==0: return url return tinyurl except IOError, e: raise "Could not connect." nome_file_firma=sys.argv[1] # crea l'oggetto file file_firma=open(nome_file_firma,"w") # usa il metodo parse definito nel modulo feedparser per leggere il feed firma="" if (static_pos==0): firma+=static_entry+"\n" errori=[] for fd in feeds: x=feedparser.parse(fd) # la prima entry del feed viene usata come firma if x.feed!={}: firma+="*"+replace_HTML_character(x.entries[0]["title"])+"*" # scrittura del file di firma, e' necessario utilizzare la giusta codifica caratteri, se si utilizza una codifica diversa da utf-8 nella composizione link=x.entries[0]["link"] link=tiny(link) firma+=" - " +link firma+="\n" else: firma+=tiny(fd)+"\n" errori.append(x.entries.index(i)) if (static_pos==1): firma+=static_entry # dei messaggi e' necessario modificare utf-8 con la codifica in uso file_firma.write(firma.encode("utf-8")) # chiude il file file_firma.close()