#!/usr/bin/python from os import rename, listdir from sys import argv, exit from urllib import urlopen import re class EpguidesParser: def __init__(self, url): print "making connection to %s..." % url site = urlopen(url) self.text = site.read() def parse(self): site = self.text title = site title = re.split('
")
site = site[1].split("")[0]
site = site.replace("\r", "")
site = site.split("\n")
del site[0]
season_regexp = re.compile("^Season [0-9]+")
url_regexp = re.compile('(.*?)')
space_regexp = re.compile("\s+")
incomplete_regexp = re.compile("^[0-9]+\-$")
episode_list = []
for line in site:
if len(line) != 0 and not season_regexp.match(line) and not "Special" in line:
line = url_regexp.split(line)
del line[2]
line[0] = space_regexp.split(line[0])
for element in line[0]:
if len(element) == 0:
del line[0][line[0].index(element)]
info = line[0]
info[0] = info[0].replace(".", "")
split = info[1].split("-")
if info[0] != "S-":
if len(split[1]) == 0:
del split[1]
info[1] = info[1].replace("-", "")
else:
del info[1]
info.insert(1, split[0])
info.insert(2, split[1])
if info[0] != "S-":
info[3] = "%s %s %s" % (info[4], info[5], info[6])
del info[5:7]
del info[4]
episode = info
episode.append(line[1])
episode_list.append(episode)
self.episode_list = episode_list
def episodesBySeason(self, season):
episodes = []
for episode in self.episode_list:
if episode[1] == season:
episodes.append(episode)
return episodes
if __name__ == "__main__":
print "%s - rename files according to their epguides.com description" % argv[0]
try:
argv[1]
except IndexError:
print "usage example: %s 1 http://www.epguides.com/4400/" % argv[0]
exit()
try:
ep = EpguidesParser(argv[2])
except IOError:
print "could not make connection to %s" % argv[2]
exit()
try:
ep.parse()
except:
print "could not parse"
exit()
print
eplist = ep.episodesBySeason(argv[1])
filelist = listdir("./")
filelist2 = []
for file in filelist:
if file[-3:] == "avi":
filelist2.append(file)
LOL WHAT
print
print "%s files renamed." % (str(len(filelist2)))