# -*- 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 urlparse import urljoin
from module.plugins.internal.SimpleCrypter import SimpleCrypter
class TusfilesNetFolder(SimpleCrypter):
__name__ = "TusfilesNetFolder"
__version__ = "0.02"
__type__ = "crypter"
__pattern__ = r'https?://(?:www\.)?tusfiles\.net/go/(?P\w+)/?'
__description__ = """Tusfiles.net folder decrypter plugin"""
__author_name__ = ("Walter Purcaro", "stickell")
__author_mail__ = ("vuolter@gmail.com", "l.stickell@yahoo.it")
LINK_PATTERN = r''
TITLE_PATTERN = r'.*?\: (?P.+) folder'
PAGES_PATTERN = r'>\((?P\d+) \w+\)<'
URL_REPLACEMENTS = [(__pattern__, r'https://www.tusfiles.net/go/\g/')]
def loadPage(self, page_n):
return self.load(urljoin(self.pyfile.url, str(page_n)), decode=True)
def handleMultiPages(self):
pages = re.search(self.PAGES_PATTERN, self.html)
if pages:
pages = int(math.ceil(int(pages.group('pages')) / 25.0))
else:
return
for p in xrange(2, pages + 1):
self.html = self.loadPage(p)
self.package_links += self.getLinks()
|