From dd24571c5015e3fea1877671b464104557463f6f Mon Sep 17 00:00:00 2001
From: Walter Purcaro <vuolter@gmail.com>
Date: Tue, 7 Oct 2014 13:52:47 +0200
Subject: [SimpleCrypter][SimpleHoster] Better exception handling

---
 module/plugins/internal/SimpleCrypter.py | 20 ++++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)

(limited to 'module/plugins/internal/SimpleCrypter.py')

diff --git a/module/plugins/internal/SimpleCrypter.py b/module/plugins/internal/SimpleCrypter.py
index d69995402..43e8b46cb 100644
--- a/module/plugins/internal/SimpleCrypter.py
+++ b/module/plugins/internal/SimpleCrypter.py
@@ -18,11 +18,12 @@ class SimpleCrypter(Crypter):
     __author_name__ = ("stickell", "zoidberg", "Walter Purcaro")
     __author_mail__ = ("l.stickell@yahoo.it", "zoidberg@mujmail.cz", "vuolter@gmail.com")
 
+
     """
     Following patterns should be defined by each crypter:
 
       LINK_PATTERN: group(1) must be a download link or a regex to catch more links
-        example: LINK_PATTERN = r'<div class="link"><a href="(http://speedload.org/\w+)'
+        example: LINK_PATTERN = r'<div class="link"><a href="(.+?)"'
 
       TITLE_PATTERN: (optional) group(1) should be the folder name or the webpage title
         example: TITLE_PATTERN = r'<title>Files of: ([^<]+) folder</title>'
@@ -48,7 +49,6 @@ class SimpleCrypter(Crypter):
           return the html of the page number page_n
     """
 
-
     TITLE_REPLACEMENTS = [("&#?\w+;", fixup)]
     URL_REPLACEMENTS = []
 
@@ -111,24 +111,28 @@ class SimpleCrypter(Crypter):
 
     def getPackageNameAndFolder(self):
         if hasattr(self, 'TITLE_PATTERN'):
-            m = re.search(self.TITLE_PATTERN, self.html)
-            if m:
+            try:
+                m = re.search(self.TITLE_PATTERN, self.html)
                 name = replace_patterns(m.group(1).strip(), self.TITLE_REPLACEMENTS)
                 folder = html_unescape(name)
+            except:
+                pass
+            else:
                 self.logDebug("Found name [%s] and folder [%s] in package info" % (name, folder))
                 return name, folder
 
         name = self.pyfile.package().name
         folder = self.pyfile.package().folder
         self.logDebug("Package info not found, defaulting to pyfile name [%s] and folder [%s]" % (name, folder))
+
         return name, folder
 
 
     def handleMultiPages(self):
-        pages = re.search(self.PAGES_PATTERN, self.html)
-        if pages:
-            pages = int(pages.group(1))
-        else:
+        try:
+            m = re.search(self.PAGES_PATTERN, self.html)
+            pages = int(m.group(1))
+        except:
             pages = 1
 
         for p in xrange(2, pages + 1):
-- 
cgit v1.2.3