import re, urllib2 from resolv.shared import ResolverError, TechnicalError, unescape, Task class MediafireTask(Task): result_type = "file" name = "MediaFire" author = "Sven Slootweg" author_url = "http://cryto.net/~joepie91" def run(self): url_match = re.match("(https?):\/\/(www\.)?mediafire\.com\/view\/\?([a-z0-9]+)", self.url) if url_match is not None: self.url = "%s://%smediafire.com/?%s" % url_match.groups(1) url_match = re.match("(https?):\/\/(www\.)?mediafire\.com\/\?([a-z0-9]+)", self.url) if url_match is None: self.state = "invalid" raise ResolverError("The specified URL is not a valid MediaFire URL.") try: contents = self.fetch_page(self.url) except urllib2.URLError, e: self.state = "failed" raise TechnicalError("Could not retrieve the specified URL.") if '
([^<]+)<\/title>', contents).group(1)) except: self.state = "failed" raise TechnicalError("Could not find the download title.") file_dict = { 'url' : file_url, 'method' : "GET", 'priority' : 1, 'format' : "unknown" } self.results = { 'title': file_title, 'files': [file_dict] } self.state = "finished" return self