# -*- 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 . # ############################################################################ import math 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://(?:w{3}.)?turbobit\.net/download/folder/(?P\w+)" __version__ = "0.01" __description__ = """Turbobit.net Folder Plugin""" __author_name__ = ("stickell") __author_mail__ = ("l.stickell@yahoo.it") TITLE_PATTERN = r"(?P.+)</div>" def getLinks(self): folder_id = re.search(self.__pattern__, self.pyfile.url).group('id') grid = self.load('http://turbobit.net/downloadfolder/gridFile', get={'id_folder': folder_id, 'rows': 200}, decode=True) grid = json_loads(grid) links_count = grid["records"] pages = int(math.ceil(links_count / 200.0)) ids = list() for i in grid['rows']: ids.append(i['id']) for p in range(2, pages + 1): grid = self.load('http://turbobit.net/downloadfolder/gridFile', get={'id_folder': folder_id, 'rows': 200, 'page': p}, decode=True) grid = json_loads(grid) for i in grid['rows']: ids.append(i['id']) return map(format_links, ids)