diff options
Diffstat (limited to 'module/plugins/crypter')
| -rw-r--r-- | module/plugins/crypter/TurbobitNetFolder.py | 60 | 
1 files changed, 28 insertions, 32 deletions
diff --git a/module/plugins/crypter/TurbobitNetFolder.py b/module/plugins/crypter/TurbobitNetFolder.py index bec5a4480..52a661f16 100644 --- a/module/plugins/crypter/TurbobitNetFolder.py +++ b/module/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))  | 
