import os, sys, re, urllib, string
reg = re.compile(r"[0-9]{1,3};")
def fix(s):
codes = reg.findall(s)
for i in codes:
s = s.replace(i,'%c'%(int(i.replace('','').replace(';',''))))
return(s)
def Search(search):
search = search.strip().translate(string.maketrans('',''),'~!@#$%^&*()_+`-={}|[]\:";\'<>?,./').replace(' ','+')
in_src = re.compile('0" href="(.*?)\?.*?">(.*?)<')
source = urllib.urlopen('http://www.tv.com/search.php?type=11&stype=program&qs=' + search + '&tag=filter;tv_shows').read()
Titles = []
Links = []
info = in_src.findall(source)
for a in info:
Titles.append(a[1])
Links.append(a[0] + '?full_summary=1&tag=showspace_links;full_summary')
return Titles, Links
class Info:
def __init__(self, url, Info=False):
if Info == True:
fromInfo = urllib.urlopen(url).read()
self.fromInfo = fix(fromInfo)
def Title(fromInfo):
in_title = re.compile('>(.*?) ')
return in_title.findall(fromInfo)
def Cover(fromInfo):
in_cover = re.compile('="(.*?)" alt="(.*?)" /> ')
for a in in_cover.findall(fromInfo): return a[0]
def Airs(fromInfo):
in_airs = re.compile('t: .*?>(.*?)<')
return in_airs.findall(fromInfo)
def Status(fromInfo):
in_status = re.compile('us:\n.*\n(.*)')
for a in in_status.findall(fromInfo): return [str(a).strip()]
def Premiered(fromInfo):
in_prem = re.compile('ered:\n.*\n(.*)')
for a in in_prem.findall(fromInfo): return [str(a).strip()]
def LastAired(fromInfo):
in_last = re.compile(' Aired:.*\n.*\n(.*)')
for a in in_last.findall(fromInfo): return [str(a).strip()]
def Genres(fromInfo):
in_genre = re.compile('".*?nre">(.*?)<')
return in_genre.findall(fromInfo)
def Rating(fromInfo):
in_rating = re.compile('8">(.*?)(.*?)\n.*?(.*?)"(.*?)"(.*?)<')
rDetails = []
for a in in_rDetails.findall(fromInfo):
join = '%s:\n%s' % (a[0].strip(), a[1].strip())
rDetails.append(join)
return rDetails
def rRatings(fromInfo):
in_review = re.compile('re">(.*?)(.*?)', re.DOTALL)
#in_details = re.compile('>*\n(.*?)
.*\n
')
Details = []
for a in in_details.findall(fromInfo):
Details.append(str(a).strip().replace('','').replace('','').replace('','(').replace('',')').replace('
','').replace('((','(').replace('))',')'))
return Details
Titles, Links = Search('family')
selection = 6
#print Titles[selection]
#print Links[selection]
tv = Info(Links[selection], Info=True)
#print Title(tv.fromInfo)
#print Cover(tv.fromInfo)
#print Airs(tv.fromInfo)
#print Status(tv.fromInfo)
#print Premiered(tv.fromInfo)
#print LastAired(tv.fromInfo)
#print Genres(tv.fromInfo)
#print Rating(tv.fromInfo)
print rDetails(tv.fromInfo)
print rRatings(tv.fromInfo)
try:
LTitle, LDetails = LastEpisode(tv.fromInfo)
print LTitle
print LDetails
except:
print "Last Episode Not Available"
#print Details(tv.fromInfo)