diff options
Diffstat (limited to 'module/plugins/hoster/LetitbitNet.py')
| -rw-r--r-- | module/plugins/hoster/LetitbitNet.py | 52 | 
1 files changed, 17 insertions, 35 deletions
| diff --git a/module/plugins/hoster/LetitbitNet.py b/module/plugins/hoster/LetitbitNet.py index dd65d7e7a..01d796330 100644 --- a/module/plugins/hoster/LetitbitNet.py +++ b/module/plugins/hoster/LetitbitNet.py @@ -17,45 +17,22 @@  """  import re -from module.plugins.Hoster import Hoster -from module.network.RequestFactory import getURL +from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo -def getInfo(urls): -    result = [] - -    for url in urls: - -        html = getURL(url, decode=True) -        if re.search(LetitbitNet.FILE_OFFLINE_PATTERN, html): -            # File offline -            result.append((url, 0, 1, url)) -        else: -            # Get file info -            found = re.search(r'<input[^>]* name="name" value="([^"]+)" />', html) -            if found is not None: -                name = found.group(1) -                found = re.search(r'<input[^>]* name="sssize" value="([^"]+)" />', html) -                if found is not None: -                    size = float(found.group(1))/1024 -                    result.append((name, size, 2, url)) -    yield result - - -class LetitbitNet(Hoster): +class LetitbitNet(SimpleHoster):      __name__ = "LetitbitNet"      __type__ = "hoster"      __pattern__ = r"http://(?:\w*\.)*letitbit.net/download/.*" -    __version__ = "0.1" +    __version__ = "0.12"      __description__ = """letitbit.net"""      __author_name__ = ("zoidberg")      __author_mail__ = ("zoidberg@mujmail.cz") -    IFREE_FORM_PATTERN = r'<form id="ifree_form" action="([^"]+)" method="post">(.*?)</form>' -    DVIFREE_FORM_PATTERN = r'<form action="([^"]+)" method="post" id="dvifree">(.*?)</form>' +    FORM_PATTERN = r'<form%s action="([^"]+)" method="post"%s>(.*?)</form>'      FORM_INPUT_PATTERN = r'<input[^>]* name="([^"]+)" value="([^"]+)" />'      JS_SCRIPT_PATTERN = r'<title>[^<]*</title>\s*<script language="JavaScript">(.*?)</script>'      JS_VARS_PATTERN = r"(\S+) = '?([^';]+)'?;" - +    FILE_INFO_PATTERN = r'<h1[^>]*>File: <a[^>]*><span>(?P<N>[^<]+)</span></a> [<span>(?P<S>[0-9.]+)\s*(?P<U>[kKMG])i?[Bb]</span>]</h1>'      FILE_OFFLINE_PATTERN = r'<div id="download_content" class="hide-block">[^<]*<br>File not found<br /></div>'      def setup(self): @@ -67,21 +44,24 @@ class LetitbitNet(Hoster):          if re.search(self.FILE_OFFLINE_PATTERN, self.html): self.offline()          try: -            action, form = re.search(self.IFREE_FORM_PATTERN, self.html, re.DOTALL).groups() +            action, form = re.search(self.FORM_PATTERN % (' id="ifree_form"', ''), self.html, re.DOTALL).groups()              inputs = dict(re.findall(self.FORM_INPUT_PATTERN, form))              pyfile.name = inputs['name']              pyfile.size = float(inputs['sssize'])/1024          except Exception, e:              self.logError(e) -            self.fail("Parse error on page 1") +            self.parseError("page 1 / ifree_form") + +        #self.logDebug(inputs) +        inputs['desc'] = "" +        self.html = self.load("http://letitbit.net" + action, post = inputs) -        self.html = self.load("http://letitbit.net"+action, post = inputs)          try: -            action, form = re.search(self.DVIFREE_FORM_PATTERN, self.html, re.DOTALL).groups() +            action, form = re.search(self.FORM_PATTERN % ('', ' id="d3_form"'), self.html, re.DOTALL).groups()              inputs = dict(re.findall(self.FORM_INPUT_PATTERN, form))          except Exception, e:              self.logError(e) -            self.fail("Parse error on page 2") +            self.parseError("page 2 / d3_form")          self.html = self.load(action, post = inputs)          try: @@ -92,7 +72,9 @@ class LetitbitNet(Hoster):              self.wait()          except Exception, e:              self.logError(e) -            self.fail("Parse error on page 3") +            self.parseError("page 3 / js")          download_url = self.load(ajax_check_url, post = inputs) -        self.download(download_url)
\ No newline at end of file +        self.download(download_url) + +getInfo = create_getInfo(LetitbitNet)
\ No newline at end of file | 
