All pastes #149221 Raw Edit

Someone

public python v1 · immutable
#149221 ·published 2006-08-25 16:32 UTC
rendered paste body
#!/usr/bin/pythonfrom os import rename, listdirfrom sys import argv, exitfrom urllib import urlopenimport reclass 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('<h1><a href=".*?">(.*?)</a></h1>', site)		self.title = title[1]		site = site.split("<pre>")		site = site[1].split("</pre>")[0]		site = site.replace("\r", "")		site = site.split("\n")		del site[0]		season_regexp = re.compile("^Season [0-9]+")		url_regexp = re.compile('<a target="_blank" href=".*?">(.*?)</a>')		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 episodesif __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)	for file in filelist2:		info = eplist[filelist2.index(file)]		newname = "%s S%sE%s - %s.avi" % (ep.title, info[1].zfill(2), info[2].zfill(2), info[4])		print "%s => %s" % (file, newname)		rename(file, newname)	print	print "%s files renamed." % (str(len(filelist2)))