diff options
author | Walter Purcaro <vuolter@gmail.com> | 2014-04-11 11:33:15 +0200 |
---|---|---|
committer | Stefano <l.stickell@yahoo.it> | 2014-04-21 17:15:19 +0200 |
commit | e2e1d11c88930702009d55e613962acd0888b3db (patch) | |
tree | fbe11b39ee649c404a306f78aea4e6f828eb9f3f | |
parent | Hoster: TusfilesNet: Updated (diff) | |
download | pyload-e2e1d11c88930702009d55e613962acd0888b3db.tar.xz |
Crypter: TurbobitNetFolder: Improved _getLinks recursion
Merges vuolter/pyload@0497f62
(cherry picked from commit 1a51954bb099159169831eec7918042d178b1b0f)
-rw-r--r-- | pyload/plugins/crypter/TurbobitNetFolder.py | 60 |
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)) |