summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Walter Purcaro <vuolter@gmail.com> 2014-04-11 11:33:15 +0200
committerGravatar Stefano <l.stickell@yahoo.it> 2014-04-21 17:15:19 +0200
commite2e1d11c88930702009d55e613962acd0888b3db (patch)
treefbe11b39ee649c404a306f78aea4e6f828eb9f3f
parentHoster: TusfilesNet: Updated (diff)
downloadpyload-e2e1d11c88930702009d55e613962acd0888b3db.tar.xz
Crypter: TurbobitNetFolder: Improved _getLinks recursion
Merges vuolter/pyload@0497f62 (cherry picked from commit 1a51954bb099159169831eec7918042d178b1b0f)
-rw-r--r--pyload/plugins/crypter/TurbobitNetFolder.py60
1 files changed, 28 insertions, 32 deletions
diff --git a/pyload/plugins/crypter/TurbobitNetFolder.py b/pyload/plugins/crypter/TurbobitNetFolder.py
index bec5a4480..52a661f16 100644
--- a/pyload/plugins/crypter/TurbobitNetFolder.py
+++ b/pyload/plugins/crypter/TurbobitNetFolder.py
@@ -1,36 +1,31 @@
# -*- coding: utf-8 -*-
-############################################################################
-# This program is free software: you can redistribute it and/or modify #
-# it under the terms of the GNU Affero General Public License as #
-# published by the Free Software Foundation, either version 3 of the #
-# License, or (at your option) any later version. #
-# #
-# This program is distributed in the hope that it will be useful, #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
-# GNU Affero General Public License for more details. #
-# #
-# You should have received a copy of the GNU Affero General Public License #
-# along with this program. If not, see <http://www.gnu.org/licenses/>. #
-############################################################################
-
-from math import ceil
+###############################################################################
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+###############################################################################
+
import re
from module.plugins.internal.SimpleCrypter import SimpleCrypter
from module.common.json_layer import json_loads
-def format_links(fid):
- return 'http://turbobit.net/%s.html' % fid
-
-
class TurbobitNetFolder(SimpleCrypter):
__name__ = "TurbobitNetFolder"
__type__ = "crypter"
__pattern__ = r"http://(?:www\.)?turbobit\.net/download/folder/(?P<ID>\w+)"
- __version__ = "0.02"
+ __version__ = "0.03"
__description__ = """Turbobit.net Folder Plugin"""
__author_name__ = ("stickell", "Walter Purcaro")
__author_mail__ = ("l.stickell@yahoo.it", "vuolter@gmail.com")
@@ -38,18 +33,19 @@ class TurbobitNetFolder(SimpleCrypter):
TITLE_PATTERN = r"src='/js/lib/grid/icon/folder.png'> <span>(?P<title>.+?)</span>"
def _getLinks(self, id, page=1):
- gridFile = self.load('http://turbobit.net/downloadfolder/gridFile',
- get={'rootId': id, 'rows': 200, 'page': page}, decode=True)
+ gridFile = self.load("http://turbobit.net/downloadfolder/gridFile",
+ get={"rootId": id, "rows": 200, "page": page}, decode=True)
grid = json_loads(gridFile)
- pages = int(ceil(grid["records"] / 200.0))
-
- for i in grid['rows']:
- yield i['id']
-
- if page < pages:
- self._getLinks(id, page + 1)
+ if grid["rows"]:
+ for i in grid["rows"]:
+ yield i["id"]
+ for id in self._getLinks(id, page + 1):
+ yield id
+ else:
+ return
def getLinks(self):
- folder_id = re.match(self.__pattern__, self.pyfile.url).group('ID')
- return map(format_links, self._getLinks(folder_id))
+ id = re.match(self.__pattern__, self.pyfile.url).group("ID")
+ fixurl = lambda id: "http://turbobit.net/%s.html" % id
+ return map(fixurl, self._getLinks(id))