# -*- 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.+)"
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)