From 13c23eb348f9115b2c6b47a579b99d8d1150522b Mon Sep 17 00:00:00 2001
From: Pedro Algarvio <pedro@algarvio.me>
Date: Sun, 5 Feb 2012 05:16:16 +0000
Subject: Fix OronComFolder regex folder matching.

---
 module/plugins/crypter/OronComFolder.py | 19 ++++++++++++++++---
 1 file changed, 16 insertions(+), 3 deletions(-)

(limited to 'module/plugins')

diff --git a/module/plugins/crypter/OronComFolder.py b/module/plugins/crypter/OronComFolder.py
index 91ac5435f..726371966 100755
--- a/module/plugins/crypter/OronComFolder.py
+++ b/module/plugins/crypter/OronComFolder.py
@@ -13,7 +13,7 @@ class OronComFolder(Crypter):
     __author_name__ = ("DHMH")
     __author_mail__ = ("webmaster@pcProfil.de")
 
-    FOLDER_PATTERN = r'<table width="100%" cellpadding="7" cellspacing="1" class="tbl2">(.*)</table>\n		</div>'
+    FOLDER_PATTERN = r'<table(?:.*)class="tbl"(?:.*)>(?:.*)<table(?:.*)class="tbl2"(?:.*)>(?P<body>.*)</table>(?:.*)</table>'
     LINK_PATTERN = r'<a href="([^"]+)" target="_blank">'
 
     def decryptURL(self, url):
@@ -21,8 +21,18 @@ class OronComFolder(Crypter):
 
         new_links = []
 
+        if 'No such folder exist' in html:
+            # Don't fail because if there's more than a folder for this package
+            # and only one of them fails, no urls at all will be added.
+            self.logWarning("Folder does not exist")
+            return new_links
+
         folder = re.search(self.FOLDER_PATTERN, html, re.DOTALL)
-        if folder is None: self.fail("Parse error (FOLDER)")
+        if folder is None:
+            # Don't fail because if there's more than a folder for this package
+            # and only one of them fails, no urls at all will be added.
+            self.logWarning("Parse error (FOLDER)")
+            return new_links
         
         new_links.extend(re.findall(self.LINK_PATTERN, folder.group(0)))
         
@@ -30,4 +40,7 @@ class OronComFolder(Crypter):
             self.logDebug("Found %d new links" % len(new_links))
             return new_links
         else:
-            self.fail('Could not extract any links')
+            # Don't fail because if there's more than a folder for this package
+            # and only one of them fails, no urls at all will be added.
+            self.logWarning('Could not extract any links')
+            return new_links
-- 
cgit v1.2.3