class ImgurComAlbum(SimpleCrypter):
    __name__    = "ImgurComAlbum"
    __type__    = "crypter"
    __version__ = "0.54"
    __status__  = "testing"

    __pattern__ = r'https?://(?:www\.|m\.)?imgur\.com/(a|gallery|)/?\w{5,7}'
    __config__  = [("activated"            , "bool", "Activated"                                        , True),
                   ("use_premium"          , "bool", "Use premium account if available"                 , True),
                   ("use_subfolder"        , "bool", "Save package to subfolder"                        , True),
                   ("subfolder_per_package", "bool", "Create a subfolder for each package"              , True),
                   ("max_wait"             , "int" , "Reconnect if waiting time is greater than minutes", 10  )]

    __description__ = """Imgur.com decrypter plugin"""
    __license__     = "GPLv3"
    __authors__     = [("nath_schwarz", "*****@*****.**")]


    NAME_PATTERN = r'(?P<N>.+?) - Imgur'
    LINK_PATTERN = r'i\.imgur\.com/\w{7}s?\.(?:jpeg|jpg|png|gif|apng)'


    def get_links(self):
        f = lambda url: "http://" + re.sub(r'(\w{7})s\.', r'\1.', url)
        return uniqify(map(f, re.findall(self.LINK_PATTERN, self.data)))


getInfo = create_getInfo(ImgurComAlbum)
예제 #2
0
# -*- coding: utf-8 -*-

from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo


class BitshareComFolder(SimpleCrypter):
    __name__    = "BitshareComFolder"
    __type__    = "crypter"
    __version__ = "0.05"
    __status__  = "testing"

    __pattern__ = r'http://(?:www\.)?bitshare\.com/\?d=\w+'
    __config__  = [("use_premium"       , "bool", "Use premium account if available"   , True),
                   ("use_subfolder"     , "bool", "Save package to subfolder"          , True),
                   ("subfolder_per_pack", "bool", "Create a subfolder for each package", True)]

    __description__ = """Bitshare.com folder decrypter plugin"""
    __license__     = "GPLv3"
    __authors__     = [("stickell", "*****@*****.**")]


    LINK_PATTERN = r'<a href="(http://bitshare\.com/files/.+)">.+</a></td>'
    NAME_PATTERN = r'View public folder "(?P<N>.+?)"</h1>'


getInfo = create_getInfo(BitshareComFolder)
예제 #3
0
    __pattern__ = r'http://(?:www\.)?freakshare\.com/folder/.+'
    __config__  = [("use_premium"       , "bool", "Use premium account if available"   , True),
                   ("use_subfolder"     , "bool", "Save package to subfolder"          , True),
                   ("subfolder_per_pack", "bool", "Create a subfolder for each package", True)]

    __description__ = """Freakhare.com folder decrypter plugin"""
    __license__     = "GPLv3"
    __authors__     = [("stickell", "*****@*****.**")]


    LINK_PATTERN = r'<a href="(http://freakshare\.com/files/.+?)" target="_blank">'
    NAME_PATTERN = r'Folder:</b> (?P<N>.+)'
    PAGES_PATTERN = r'Pages: +(\d+)'


    def load_page(self, page_n):
        if not hasattr(self, 'f_id') and not hasattr(self, 'f_md5'):
            m = re.search(r'http://freakshare.com/\?x=folder&f_id=(\d+)&f_md5=(\w+)', self.html)
            if m:
                self.f_id = m.group(1)
                self.f_md5 = m.group(2)
        return self.load('http://freakshare.com/', get={'x': 'folder',
                                                        'f_id': self.f_id,
                                                        'f_md5': self.f_md5,
                                                        'entrys': '20',
                                                        'page': page_n - 1,
                                                        'order': ''})


getInfo = create_getInfo(FreakhareComFolder)
    __pattern__ = r'http://(?:www\.)?cloudzilla\.to/share/folder/(?P<ID>[\w^_]+)'
    __config__  = [("activated"            , "bool", "Activated"                                        , True),
                   ("use_premium"          , "bool", "Use premium account if available"                 , True),
                   ("use_subfolder"        , "bool", "Save package to subfolder"                        , True),
                   ("subfolder_per_package", "bool", "Create a subfolder for each package"              , True),
                   ("max_wait"             , "int" , "Reconnect if waiting time is greater than minutes", 10  )]

    __description__ = """Cloudzilla.to folder decrypter plugin"""
    __license__     = "GPLv3"
    __authors__     = [("Walter Purcaro", "*****@*****.**")]


    INFO_PATTERN    = r'<span class="name" title="(?P<N>.+?)"'
    OFFLINE_PATTERN = r'>File not found...<'

    LINK_PATTERN = r'<a href="(.+?)" class="item_href">'

    PASSWORD_PATTERN = r'<div id="pwd_protected">'


    def check_errors(self):
        m = re.search(self.PASSWORD_PATTERN, self.data)
        if m is not None:
            self.data = self.load(self.pyfile.url, get={'key': self.get_password()})

        if re.search(self.PASSWORD_PATTERN, self.data):
            self.retry(msg="Wrong password")


getInfo = create_getInfo(CloudzillaToFolder)
# -*- coding: utf-8 -*

from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo


class GoogledriveComFolder(SimpleCrypter):
    __name__    = "GoogledriveComFolder"
    __type__    = "crypter"
    __version__ = "0.06"
    __status__  = "testing"

    __pattern__ = r'https?://(?:www\.)?drive\.google\.com/folderview\?.*id=\w+'
    __config__  = [("activated"            , "bool", "Activated"                                        , True),
                   ("use_premium"          , "bool", "Use premium account if available"                 , True),
                   ("use_subfolder"        , "bool", "Save package to subfolder"                        , True),
                   ("subfolder_per_package", "bool", "Create a subfolder for each package"              , True),
                   ("max_wait"             , "int" , "Reconnect if waiting time is greater than minutes", 10  )]

    __description__ = """Drive.google.com folder decrypter plugin"""
    __license__     = "GPLv3"
    __authors__     = [("Walter Purcaro", "*****@*****.**")]


    NAME_PATTERN    = r"folderName: '(?P<N>.+?)'"
    LINK_PATTERN    = r'\[,"\w+"(?:,,".+?")?,"(.+?)"'
    OFFLINE_PATTERN = r'<TITLE>'


getInfo = create_getInfo(GoogledriveComFolder)
예제 #6
0
# -*- coding: utf-8 -*-

from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo


class FilecloudIoFolder(SimpleCrypter):
    __name__    = "FilecloudIoFolder"
    __type__    = "crypter"
    __version__ = "0.04"
    __status__  = "testing"

    __pattern__ = r'https?://(?:www\.)?(filecloud\.io|ifile\.it)/_\w+'
    __config__  = [("use_premium"       , "bool", "Use premium account if available"   , True),
                   ("use_subfolder"     , "bool", "Save package to subfolder"          , True),
                   ("subfolder_per_pack", "bool", "Create a subfolder for each package", True)]

    __description__ = """Filecloud.io folder decrypter plugin"""
    __license__     = "GPLv3"
    __authors__     = [("Walter Purcaro", "*****@*****.**")]


    LINK_PATTERN = r'href="(http://filecloud\.io/\w+)" title'
    NAME_PATTERN = r'>(?P<N>.+?) - filecloud\.io<'


getInfo = create_getInfo(FilecloudIoFolder)
예제 #7
0
# -*- coding: utf-8 -*-

from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo


class FurLy(SimpleCrypter):
    __name__    = "FurLy"
    __type__    = "crypter"
    __version__ = "0.02"
    __status__  = "testing"

    __pattern__ = r'http://(?:www\.)?fur\.ly/(\d/)?\w+'

    __description__ = """Fur.ly decrypter plugin"""
    __license__     = "GPLv3"
    __authors__     = [("Walter Purcaro", "*****@*****.**")]


    URL_REPLACEMENTS = [(r'fur\.ly/', r'fur\.ly/bar/')]

    LINK_PATTERN    = r'urls\[\d+\] = "(.+?)"'
    OFFLINE_PATTERN = r'var output;\s*var total'


getInfo = create_getInfo(FurLy)
예제 #8
0
            self.logDebug("File info (AFTER): %s" % self.info)

        try:
            if self.info['pattern']['ID'] == "0":
                raise

            p = r'href="(.+?)">Back to \w+<'
            m = re.search(p, self.html)
            html = self.load(urlparse.urljoin("http://d-h.st", m.group(1)),
                             cookies=False)

            p = '\?fld_id=%s.*?">(.+?)<' % self.info['pattern']['ID']
            m = re.search(p, html)
            self.pyfile.name = m.group(1)

        except Exception, e:
            self.logDebug(e)
            self.pyfile.name = self.info['pattern']['USER']

        try:
            folder = self.info['folder'] = self.pyfile.name

        except Exception:
            pass

        self.logDebug("File name: %s" % self.pyfile.name,
                      "File folder: %s" % self.pyfile.name)


getInfo = create_getInfo(DevhostStFolder)
예제 #9
0
# -*- coding: utf-8 -*-

from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo


class LinkSaveIn(SimpleCrypter):
    __name__ = "LinkSaveIn"
    __type__ = "crypter"
    __version__ = "2.05"

    __pattern__ = r'https?://(?:www\.)?linksave\.in/\w+'
    __config__ = [("use_subfolder", "bool", "Save package to subfolder", True),
                  ("subfolder_per_pack", "bool",
                   "Create a subfolder for each package", True)]

    __description__ = """LinkSave.in decrypter plugin"""
    __license__ = "GPLv3"
    __authors__ = [("Walter Purcaro", "*****@*****.**")]

    COOKIES = [("linksave.in", "Linksave_Language", "english")]

    OFFLINE_PATTERN = r'>(Error )?404 -'


getInfo = create_getInfo(LinkSaveIn)
예제 #10
0
# -*- coding: utf-8 -*-

from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo


class TinyurlCom(SimpleCrypter):
    __name__    = "TinyurlCom"
    __type__    = "crypter"
    __version__ = "0.05"
    __status__  = "testing"

    __pattern__ = r'https?://(?:www\.)?(preview\.)?tinyurl\.com/[\w\-]+'
    __config__  = [("activated"            , "bool", "Activated"                                        , True),
                   ("use_premium"          , "bool", "Use premium account if available"                 , True),
                   ("use_subfolder"        , "bool", "Save package to subfolder"                        , True),
                   ("subfolder_per_package", "bool", "Create a subfolder for each package"              , True),
                   ("max_wait"             , "int" , "Reconnect if waiting time is greater than minutes", 10  )]

    __description__ = """Tinyurl.com decrypter plugin"""
    __license__     = "GPLv3"
    __authors__     = [("Walter Purcaro", "*****@*****.**")]


    URL_REPLACEMENTS = [(r'preview\.', r'')]

    OFFLINE_PATTERN = r">Error: Unable to find site's URL to redirect to"


getInfo = create_getInfo(TinyurlCom)
예제 #11
0
# -*- coding: utf-8 -*-

from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo


class BitshareComFolder(SimpleCrypter):
    __name__ = "BitshareComFolder"
    __type__ = "crypter"
    __version__ = "0.04"

    __pattern__ = r'http://(?:www\.)?bitshare\.com/\?d=\w+'
    __config__ = [("use_premium", "bool", "Use premium account if available",
                   True),
                  ("use_subfolder", "bool", "Save package to subfolder", True),
                  ("subfolder_per_pack", "bool",
                   "Create a subfolder for each package", True)]

    __description__ = """Bitshare.com folder decrypter plugin"""
    __license__ = "GPLv3"
    __authors__ = [("stickell", "*****@*****.**")]

    LINK_PATTERN = r'<a href="(http://bitshare\.com/files/.+)">.+</a></td>'
    NAME_PATTERN = r'View public folder "(?P<N>.+?)"</h1>'


getInfo = create_getInfo(BitshareComFolder)
예제 #12
0
# -*- coding: utf-8 -*-

from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo


class FiletramCom(SimpleCrypter):
    __name__ = "FiletramCom"
    __type__ = "crypter"
    __version__ = "0.03"

    __pattern__ = r'http://(?:www\.)?filetram\.com/[^/]+/.+'
    __config__ = [("use_premium", "bool", "Use premium account if available",
                   True),
                  ("use_subfolder", "bool", "Save package to subfolder", True),
                  ("subfolder_per_pack", "bool",
                   "Create a subfolder for each package", True)]

    __description__ = """Filetram.com decrypter plugin"""
    __license__ = "GPLv3"
    __authors__ = [("igel", "*****@*****.**"),
                   ("stickell", "*****@*****.**")]

    LINK_PATTERN = r'\s+(http://.+)'
    NAME_PATTERN = r'<title>(?P<N>.+?) - Free Download'


getInfo = create_getInfo(FiletramCom)
예제 #13
0
class NitroflareComFolder(SimpleCrypter):
    __name__    = "NitroflareComFolder"
    __type__    = "crypter"
    __version__ = "0.01"

    __pattern__ = r'https?://(?:www\.)?nitroflare\.com/folder/(?P<USER>\d+)/(?P<ID>[\w=]+)'
    __config__  = [("use_subfolder"     , "bool", "Save package to subfolder"          , True),
                   ("subfolder_per_pack", "bool", "Create a subfolder for each package", True)]

    __description__ = """Nitroflare.com folder decrypter plugin"""
    __license__     = "GPLv3"
    __authors__     = [("Walter Purcaro", "*****@*****.**")]


    def getLinks(self):
        res = json_loads(self.load("http://nitroflare.com/ajax/folder.php",
                                   post={'userId' : self.info['pattern']['USER'],
                                         'folder' : self.info['pattern']['ID'],
                                         'page'   : 1,
                                         'perPage': 10000}))
        if res['name']:
            self.pyfile.name = res['name']
        else:
            self.offline()

        return [link['url'] for link in res['files']] if 'files' in res else None


getInfo = create_getInfo(NitroflareComFolder)
예제 #14
0
from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo
from module.common.json_layer import json_loads


class GooGl(SimpleCrypter):
    __name__    = "GooGl"
    __type__    = "crypter"
    __version__ = "0.03"

    __pattern__ = r'https?://(?:www\.)?goo\.gl/([a-zA-Z]+/)?\w+'

    __description__ = """Goo.gl decrypter plugin"""
    __license__     = "GPLv3"
    __authors__     = [("stickell"      , "*****@*****.**"),
                       ("Walter Purcaro", "*****@*****.**"  )]


    API_URL = "https://www.googleapis.com/urlshortener/v1/url"

    OFFLINE_PATTERN = r'has been disabled|does not exist'


    def getLinks(self):
        rep = self.load(self.API_URL, get={'shortUrl': self.pyfile.url})
        self.logDebug("JSON data: " + rep)
        rep = json_loads(rep)
        return [rep['longUrl']] if "longUrl" in rep else None


getInfo = create_getInfo(GooGl)
예제 #15
0
# -*- coding: utf-8 -*-

from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo


class PastebinCom(SimpleCrypter):
    __name__    = "PastebinCom"
    __type__    = "crypter"
    __version__ = "0.07"
    __status__  = "testing"

    __pattern__ = r'https://(?:www\.)?pastebin\.com/(.+i=)?(?P<ID>\w{8})'
    __config__  = [("activated"            , "bool", "Activated"                                        , True),
                   ("use_premium"          , "bool", "Use premium account if available"                 , True),
                   ("use_subfolder"        , "bool", "Save package to subfolder"                        , True),
                   ("subfolder_per_package", "bool", "Create a subfolder for each package"              , True),
                   ("max_wait"             , "int" , "Reconnect if waiting time is greater than minutes", 10  )]

    __description__ = """Pastebin.com decrypter plugin"""
    __license__     = "GPLv3"
    __authors__     = [("stickell", "*****@*****.**")]


    URL_REPLACEMENTS = [(__pattern__ + '.*', r'http://www.pastebin.com/\g<ID>')]

    NAME_PATTERN = r'<div class="paste_box_line1" title="(?P<N>.+?)"'
    LINK_PATTERN = r'<div class="de\d+">(.+?)<'


getInfo = create_getInfo(PastebinCom)
예제 #16
0
class NitroflareComFolder(SimpleCrypter):
    __name__    = "NitroflareComFolder"
    __type__    = "crypter"
    __version__ = "0.03"
    __status__  = "testing"

    __pattern__ = r'https?://(?:www\.)?nitroflare\.com/folder/(?P<USER>\d+)/(?P<ID>[\w=]+)'
    __config__  = [("use_subfolder"     , "bool", "Save package to subfolder"          , True),
                   ("subfolder_per_pack", "bool", "Create a subfolder for each package", True)]

    __description__ = """Nitroflare.com folder decrypter plugin"""
    __license__     = "GPLv3"
    __authors__     = [("Walter Purcaro", "*****@*****.**")]


    def get_links(self):
        res = json_loads(self.load("http://nitroflare.com/ajax/folder.php",
                                   post={'userId' : self.info['pattern']['USER'],
                                         'folder' : self.info['pattern']['ID'],
                                         'page'   : 1,
                                         'perPage': 10000}))
        if res['name']:
            self.pyfile.name = res['name']
        else:
            self.offline()

        return [link['url'] for link in res['files']] if 'files' in res else None


getInfo = create_getInfo(NitroflareComFolder)
예제 #17
0
# -*- coding: utf-8 -*-

from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo


class FiletramCom(SimpleCrypter):
    __name__    = "FiletramCom"
    __type__    = "crypter"
    __version__ = "0.06"
    __status__  = "testing"

    __pattern__ = r'http://(?:www\.)?filetram\.com/[^/]+/.+'
    __config__  = [("activated"            , "bool", "Activated"                                        , True),
                   ("use_premium"          , "bool", "Use premium account if available"                 , True),
                   ("use_subfolder"        , "bool", "Save package to subfolder"                        , True),
                   ("subfolder_per_package", "bool", "Create a subfolder for each package"              , True),
                   ("max_wait"             , "int" , "Reconnect if waiting time is greater than minutes", 10  )]

    __description__ = """Filetram.com decrypter plugin"""
    __license__     = "GPLv3"
    __authors__     = [("igel", "*****@*****.**"),
                       ("stickell", "*****@*****.**")]


    LINK_PATTERN = r'\s+(http://.+)'
    NAME_PATTERN = r'<title>(?P<N>.+?) - Free Download'


getInfo = create_getInfo(FiletramCom)
예제 #18
0
    __description__ = """Freakhare.com folder decrypter plugin"""
    __license__ = "GPLv3"
    __authors__ = [("stickell", "*****@*****.**")]

    LINK_PATTERN = r'<a href="(http://freakshare\.com/files/.+?)" target="_blank">'
    NAME_PATTERN = r'Folder:</b> (?P<N>.+)'
    PAGES_PATTERN = r'Pages: +(\d+)'

    def loadPage(self, page_n):
        if not hasattr(self, 'f_id') and not hasattr(self, 'f_md5'):
            m = re.search(
                r'http://freakshare.com/\?x=folder&f_id=(\d+)&f_md5=(\w+)',
                self.html)
            if m:
                self.f_id = m.group(1)
                self.f_md5 = m.group(2)
        return self.load('http://freakshare.com/',
                         get={
                             'x': 'folder',
                             'f_id': self.f_id,
                             'f_md5': self.f_md5,
                             'entrys': '20',
                             'page': page_n - 1,
                             'order': ''
                         },
                         decode=True)


getInfo = create_getInfo(FreakhareComFolder)
예제 #19
0
# -*- coding: utf-8 -*-

from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo


class FshareVnFolder(SimpleCrypter):
    __name__    = "FshareVnFolder"
    __type__    = "crypter"
    __version__ = "0.02"
    __status__  = "testing"

    __pattern__ = r'http://(?:www\.)?fshare\.vn/folder/.+'
    __config__  = [("use_premium"       , "bool", "Use premium account if available"   , True),
                   ("use_subfolder"     , "bool", "Save package to subfolder"          , True),
                   ("subfolder_per_pack", "bool", "Create a subfolder for each package", True)]

    __description__ = """Fshare.vn folder decrypter plugin"""
    __license__     = "GPLv3"
    __authors__     = [("zoidberg", "*****@*****.**")]


    LINK_PATTERN = r'<li class="w_80pc"><a href="(.+?)" target="_blank">'


getInfo = create_getInfo(FshareVnFolder)
예제 #20
0
# -*- coding: utf-8 -*-

from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo


class FilecloudIoFolder(SimpleCrypter):
    __name__ = "FilecloudIoFolder"
    __type__ = "crypter"
    __version__ = "0.03"

    __pattern__ = r'https?://(?:www\.)?(filecloud\.io|ifile\.it)/_\w+'
    __config__ = [("use_premium", "bool", "Use premium account if available",
                   True),
                  ("use_subfolder", "bool", "Save package to subfolder", True),
                  ("subfolder_per_pack", "bool",
                   "Create a subfolder for each package", True)]

    __description__ = """Filecloud.io folder decrypter plugin"""
    __license__ = "GPLv3"
    __authors__ = [("Walter Purcaro", "*****@*****.**")]

    LINK_PATTERN = r'href="(http://filecloud\.io/\w+)" title'
    NAME_PATTERN = r'>(?P<N>.+?) - filecloud\.io<'


getInfo = create_getInfo(FilecloudIoFolder)
예제 #21
0

class FilefactoryComFolder(SimpleCrypter):
    __name__    = "FilefactoryComFolder"
    __type__    = "crypter"
    __version__ = "0.33"
    __status__  = "testing"

    __pattern__ = r'https?://(?:www\.)?filefactory\.com/(?:f|folder)/\w+'
    __config__  = [("use_premium"       , "bool", "Use premium account if available"   , True),
                   ("use_subfolder"     , "bool", "Save package to subfolder"          , True),
                   ("subfolder_per_pack", "bool", "Create a subfolder for each package", True)]

    __description__ = """Filefactory.com folder decrypter plugin"""
    __license__     = "GPLv3"
    __authors__     = [("stickell", "*****@*****.**")]


    COOKIES = [("filefactory.com", "locale", "en_US.utf8")]

    LINK_PATTERN  = r'<td>\s*<a href="(.+?)"'
    NAME_PATTERN  = r'<h1>Files in <span>(?P<N>.+?)<'
    PAGES_PATTERN = r'data-paginator-totalPages="(\d+)'


    def load_page(self, page_n):
        return self.load(self.pyfile.url, get={'page': page_n, 'show': 100})


getInfo = create_getInfo(FilefactoryComFolder)
예제 #22
0
# -*- coding: utf-8 -*-

from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo


class FilestubeCom(SimpleCrypter):
    __name__ = "FilestubeCom"
    __type__ = "crypter"
    __version__ = "0.06"

    __pattern__ = r'http://(?:www\.)?filestube\.(?:com|to)/\w+'
    __config__ = [("use_premium", "bool", "Use premium account if available",
                   True),
                  ("use_subfolder", "bool", "Save package to subfolder", True),
                  ("subfolder_per_pack", "bool",
                   "Create a subfolder for each package", True)]

    __description__ = """Filestube.com decrypter plugin"""
    __license__ = "GPLv3"
    __authors__ = [("stickell", "*****@*****.**")]

    LINK_PATTERN = r'<a class=\"file-link-main(?: noref)?\" [^>]* href=\"(http://[^\"]+)'
    NAME_PATTERN = r'<h1\s*> (?P<N>.+?)  download\s*</h1>'


getInfo = create_getInfo(FilestubeCom)
예제 #23
0
    __config__  = [("activated"            , "bool", "Activated"                                        , True),
                   ("use_premium"          , "bool", "Use premium account if available"                 , True),
                   ("use_subfolder"        , "bool", "Save package to subfolder"                        , True),
                   ("subfolder_per_package", "bool", "Create a subfolder for each package"              , True),
                   ("max_wait"             , "int" , "Reconnect if waiting time is greater than minutes", 10  )]

    __description__ = """MultiUp.org crypter plugin"""
    __license__     = "GPLv3"
    __authors__     = [("Walter Purcaro", "*****@*****.**")]


    NAME_PATTERN = r'<title>.*(?:Project|Projet|ownload|élécharger) (?P<N>.+?) (\(|- )'


    def get_links(self):
        m_type = re.match(self.__pattern__, self.pyfile.url).group('TYPE')

        if m_type == "project":
            pattern = r'\n(http://www\.multiup\.org/(?:en|fr)/download/.*)'
        else:
            pattern = r'style="width:97%;text-align:left".*\n.*href="(.*)"'
            if m_type == "download":
                dl_pattern = r'href="(.*)">.*\n.*<h5>DOWNLOAD</h5>'
                mirror_page = urlparse.urljoin("http://www.multiup.org/", re.search(dl_pattern, self.data).group(1))
                self.data = self.load(mirror_page)

        return re.findall(pattern, self.data)


getInfo = create_getInfo(MultiUpOrg)
예제 #24
0
        if "Please click on continue to see the links" in self.html:
            post_req['submitform'] = "Continue"
            self.wait(2)

        else:
            mstime  = int(round(time.time() * 1000))
            b64time = "_" + urlsafe_b64encode(str(mstime)).replace("=", "%3D")

            post_req.update({'i'         : b64time,
                             'submitform': "Decrypt+link"})

            if "Password :"******"Security Code" in self.html:
                m = re.search(r'/captcha\.php\?key=(.+?)"', self.html)
                if m:
                    captcha_code = self.decryptCaptcha("http://www.dl-protect.com/captcha.php?key=" + m.group(1), imgtype="gif")
                    post_req['secure'] = captcha_code

        self.html = self.load(self.pyfile.url, post=post_req)

        for errmsg in ("The password is incorrect", "The security code is incorrect"):
            if errmsg in self.html:
                self.fail(_(errmsg[1:]))

        return re.findall(r'<a href="([^/].+?)" target="_blank">', self.html)


getInfo = create_getInfo(DlProtectCom)
예제 #25
0
# -*- coding: utf-8 -*-

from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo


class MegaRapidCzFolder(SimpleCrypter):
    __name__    = "MegaRapidCzFolder"
    __type__    = "crypter"
    __version__ = "0.02"

    __pattern__ = r'http://(?:www\.)?(share|mega)rapid\.cz/slozka/\d+/\w+'
    __config__  = [("use_premium"       , "bool", "Use premium account if available"   , True),
                   ("use_subfolder"     , "bool", "Save package to subfolder"          , True),
                   ("subfolder_per_pack", "bool", "Create a subfolder for each package", True)]

    __description__ = """Share-Rapid.com folder decrypter plugin"""
    __license__     = "GPLv3"
    __authors__     = [("zoidberg", "*****@*****.**")]


    LINK_PATTERN = r'<td class="soubor".*?><a href="(.+?)">'


getInfo = create_getInfo(MegaRapidCzFolder)
                   ("max_wait"             , "int" , "Reconnect if waiting time is greater than minutes", 10  )]

    __description__ = """Turbobit.net folder decrypter plugin"""
    __license__     = "GPLv3"
    __authors__     = [("stickell", "*****@*****.**"),
                       ("Walter Purcaro", "*****@*****.**")]


    NAME_PATTERN = r'src=\'/js/lib/grid/icon/folder.png\'> <span>(?P<N>.+?)</span>'


    def _get_links(self, id, page=1):
        gridFile = self.load("http://turbobit.net/downloadfolder/gridFile",
                             get={'rootId': id, 'rows': 200, 'page': page})
        grid = json.loads(gridFile)

        if grid['rows']:
            for i in grid['rows']:
                yield i['id']
            for id in self._get_links(id, page + 1):
                yield id
        else:
            return


    def get_links(self):
        return ["http://turbobit.net/%s.html" % id for id in self._get_links(self.info['pattern']['ID'])]


getInfo = create_getInfo(TurbobitNetFolder)
예제 #27
0
# -*- coding: utf-8 -*-

from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo


class TinyurlCom(SimpleCrypter):
    __name__ = "TinyurlCom"
    __type__ = "crypter"
    __version__ = "0.02"

    __pattern__ = r'https?://(?:www\.)?(preview\.)?tinyurl\.com/[\w-]+'

    __description__ = """Tinyurl.com decrypter plugin"""
    __license__ = "GPLv3"
    __authors__ = [("Walter Purcaro", "*****@*****.**")]

    URL_REPLACEMENTS = [(r'preview\.', r'')]

    OFFLINE_PATTERN = r">Error: Unable to find site's URL to redirect to"


getInfo = create_getInfo(TinyurlCom)
예제 #28
0
            self.logDebug("File info (AFTER): %s"  % self.info)

        try:
            if self.info['pattern']['ID'] == "0":
                raise

            p = r'href="(.+?)">Back to \w+<'
            m = re.search(p, self.html)
            html = self.load(urljoin("http://d-h.st", m.group(1)),
                             cookies=False)

            p = '\?fld_id=%s.*?">(.+?)<' % self.info['pattern']['ID']
            m = re.search(p, html)
            self.pyfile.name = m.group(1)

        except Exception, e:
            self.logDebug(e)
            self.pyfile.name = self.info['pattern']['USER']

        try:
            folder = self.info['folder'] = self.pyfile.name

        except Exception:
            pass

        self.logDebug("File name: %s"   % self.pyfile.name,
                      "File folder: %s" % self.pyfile.name)


getInfo = create_getInfo(DevhostStFolder)
예제 #29
0
import re

from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo


class FilerNetFolder(SimpleCrypter):
    __name__    = "FilerNetFolder"
    __type__    = "crypter"
    __version__ = "0.42"

    __pattern__ = r'https?://filer\.net/folder/\w{16}'
    __config__  = [("use_subfolder", "bool", "Save package to subfolder", True),
                   ("subfolder_per_package", "bool", "Create a subfolder for each package", True)]

    __description__ = """Filer.net decrypter plugin"""
    __license__     = "GPLv3"
    __authors__     = [("nath_schwarz", "*****@*****.**"),
                       ("stickell", "*****@*****.**")]


    LINK_PATTERN = r'href="(/get/\w{16})">(?!<)'

    NAME_PATTERN    = r'<h3>(?P<N>.+?) - <small'
    OFFLINE_PATTERN = r'Nicht gefunden'


getInfo = create_getInfo(FilerNetFolder)
예제 #30
0
# -*- coding: utf-8 -*-

from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo


class CrockoComFolder(SimpleCrypter):
    __name__ = "CrockoComFolder"
    __type__ = "crypter"
    __version__ = "0.01"

    __pattern__ = r'http://(?:www\.)?crocko\.com/f/.+'
    __config__ = [("use_premium", "bool", "Use premium account if available",
                   True),
                  ("use_subfolder", "bool", "Save package to subfolder", True),
                  ("subfolder_per_pack", "bool",
                   "Create a subfolder for each package", True)]

    __description__ = """Crocko.com folder decrypter plugin"""
    __license__ = "GPLv3"
    __authors__ = [("zoidberg", "*****@*****.**")]

    LINK_PATTERN = r'<td class="last"><a href="(.+?)">download</a>'


getInfo = create_getInfo(CrockoComFolder)
# -*- coding: utf-8 -*-

from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo


class CrockoComFolder(SimpleCrypter):
    __name__    = "CrockoComFolder"
    __type__    = "crypter"
    __version__ = "0.05"
    __status__  = "testing"

    __pattern__ = r'http://(?:www\.)?crocko\.com/f/.+'
    __config__  = [("activated"            , "bool", "Activated"                                        , True),
                   ("use_premium"          , "bool", "Use premium account if available"                 , True),
                   ("use_subfolder"        , "bool", "Save package to subfolder"                        , True),
                   ("subfolder_per_package", "bool", "Create a subfolder for each package"              , True),
                   ("max_wait"             , "int" , "Reconnect if waiting time is greater than minutes", 10  )]

    __description__ = """Crocko.com folder decrypter plugin"""
    __license__     = "GPLv3"
    __authors__     = [("zoidberg", "*****@*****.**")]


    LINK_PATTERN = r'<td class="last"><a href="(.+?)">download</a>'


getInfo = create_getInfo(CrockoComFolder)
예제 #32
0
# -*- coding: utf-8 -*-

from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo


class FurLy(SimpleCrypter):
    __name__ = "FurLy"
    __type__ = "crypter"
    __version__ = "0.01"

    __pattern__ = r'http://(?:www\.)?fur\.ly/(\d/)?\w+'

    __description__ = """Fur.ly decrypter plugin"""
    __license__ = "GPLv3"
    __authors__ = [("Walter Purcaro", "*****@*****.**")]

    URL_REPLACEMENTS = [(r'fur\.ly/', r'fur\.ly/bar/')]

    LINK_PATTERN = r'urls\[\d+\] = "(.+?)"'
    OFFLINE_PATTERN = r'var output;\s*var total'


getInfo = create_getInfo(FurLy)
예제 #33
0
# -*- coding: utf-8 -*

from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo


class GoogledriveComFolder(SimpleCrypter):
    __name__ = "GoogledriveCom"
    __type__ = "crypter"
    __version__ = "0.01"

    __pattern__ = r'https?://(?:www\.)?drive\.google\.com/folderview\?.*id=\w+'
    __config__ = [
        ("use_subfolder", "bool", "Save package to subfolder",
         True),  #: Overrides core.config['general']['folder_per_package']
        ("subfolder_per_pack", "bool", "Create a subfolder for each package",
         True)
    ]

    __description__ = """Drive.google.com folder decrypter plugin"""
    __license__ = "GPLv3"
    __authors__ = [("Walter Purcaro", "*****@*****.**")]

    NAME_PATTERN = r"folderName: '(?P<N>.+?)'"
    LINK_PATTERN = r'\[,"\w+"(?:,,".+?")?,"(.+?)"'
    OFFLINE_PATTERN = r'<TITLE>'


getInfo = create_getInfo(GoogledriveComFolder)
예제 #34
0
# -*- coding: utf-8 -*-

from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo


class FshareVnFolder(SimpleCrypter):
    __name__ = "FshareVnFolder"
    __type__ = "crypter"
    __version__ = "0.01"

    __pattern__ = r'http://(?:www\.)?fshare\.vn/folder/.+'
    __config__ = [("use_premium", "bool", "Use premium account if available",
                   True),
                  ("use_subfolder", "bool", "Save package to subfolder", True),
                  ("subfolder_per_pack", "bool",
                   "Create a subfolder for each package", True)]

    __description__ = """Fshare.vn folder decrypter plugin"""
    __license__ = "GPLv3"
    __authors__ = [("zoidberg", "*****@*****.**")]

    LINK_PATTERN = r'<li class="w_80pc"><a href="(.+?)" target="_blank">'


getInfo = create_getInfo(FshareVnFolder)
예제 #35
0
import re

from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo


class FilerNetFolder(SimpleCrypter):
    __name__ = "FilerNetFolder"
    __type__ = "crypter"
    __version__ = "0.42"

    __pattern__ = r'https?://filer\.net/folder/\w{16}'
    __config__ = [("use_premium", "bool", "Use premium account if available",
                   True),
                  ("use_subfolder", "bool", "Save package to subfolder", True),
                  ("subfolder_per_pack", "bool",
                   "Create a subfolder for each package", True)]

    __description__ = """Filer.net decrypter plugin"""
    __license__ = "GPLv3"
    __authors__ = [("nath_schwarz", "*****@*****.**"),
                   ("stickell", "*****@*****.**")]

    LINK_PATTERN = r'href="(/get/\w{16})">(?!<)'

    NAME_PATTERN = r'<h3>(?P<N>.+?) - <small'
    OFFLINE_PATTERN = r'Nicht gefunden'


getInfo = create_getInfo(FilerNetFolder)
예제 #36
0
from module.common.json_layer import json_loads


class GooGl(SimpleCrypter):
    __name__    = "GooGl"
    __type__    = "crypter"
    __version__ = "0.04"
    __status__  = "testing"

    __pattern__ = r'https?://(?:www\.)?goo\.gl/([a-zA-Z]+/)?\w+'

    __description__ = """Goo.gl decrypter plugin"""
    __license__     = "GPLv3"
    __authors__     = [("stickell"      , "*****@*****.**"),
                       ("Walter Purcaro", "*****@*****.**"  )]


    API_URL = "https://www.googleapis.com/urlshortener/v1/url"

    OFFLINE_PATTERN = r'has been disabled|does not exist'


    def get_links(self):
        rep = self.load(self.API_URL, get={'shortUrl': self.pyfile.url})
        self.log_debug("JSON data: " + rep)
        rep = json_loads(rep)
        return [rep['longUrl']] if "longUrl" in rep else None


getInfo = create_getInfo(GooGl)
예제 #37
0
# -*- coding: utf-8 -*-

from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo


class DepositfilesComFolder(SimpleCrypter):
    __name__    = "DepositfilesComFolder"
    __type__    = "crypter"
    __version__ = "0.02"
    __status__  = "testing"

    __pattern__ = r'http://(?:www\.)?depositfiles\.com/folders/\w+'
    __config__  = [("use_premium"       , "bool", "Use premium account if available"   , True),
                   ("use_subfolder"     , "bool", "Save package to subfolder"          , True),
                   ("subfolder_per_pack", "bool", "Create a subfolder for each package", True)]

    __description__ = """Depositfiles.com folder decrypter plugin"""
    __license__     = "GPLv3"
    __authors__     = [("zoidberg", "*****@*****.**")]


    LINK_PATTERN = r'<div class="progressName".*?>\s*<a href="(.+?)" title=".+?" target="_blank">'


getInfo = create_getInfo(DepositfilesComFolder)
예제 #38
0
# -*- coding: utf-8 -*-

from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo


class DepositfilesComFolder(SimpleCrypter):
    __name__ = "DepositfilesComFolder"
    __type__ = "crypter"
    __version__ = "0.01"

    __pattern__ = r'http://(?:www\.)?depositfiles\.com/folders/\w+'
    __config__ = [("use_premium", "bool", "Use premium account if available",
                   True),
                  ("use_subfolder", "bool", "Save package to subfolder", True),
                  ("subfolder_per_pack", "bool",
                   "Create a subfolder for each package", True)]

    __description__ = """Depositfiles.com folder decrypter plugin"""
    __license__ = "GPLv3"
    __authors__ = [("zoidberg", "*****@*****.**")]

    LINK_PATTERN = r'<div class="progressName".*?>\s*<a href="(.+?)" title=".+?" target="_blank">'


getInfo = create_getInfo(DepositfilesComFolder)
from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo


class UploadedToFolder(SimpleCrypter):
    __name__    = "UploadedToFolder"
    __type__    = "crypter"
    __version__ = "0.47"
    __status__  = "testing"

    __pattern__ = r'https?://(?:www\.)?(uploaded|ul)\.(to|net)/(f|folder|list)/\w+'
    __config__  = [("activated"            , "bool", "Activated"                                        , True),
                   ("use_premium"          , "bool", "Use premium account if available"                 , True),
                   ("use_subfolder"        , "bool", "Save package to subfolder"                        , True),
                   ("subfolder_per_package", "bool", "Create a subfolder for each package"              , True),
                   ("max_wait"             , "int" , "Reconnect if waiting time is greater than minutes", 10  )]

    __description__ = """UploadedTo decrypter plugin"""
    __license__     = "GPLv3"
    __authors__     = [("stickell", "*****@*****.**")]


    NAME_PATTERN         = r'<title>(?P<N>.+?)<'
    OFFLINE_PATTERN      = r'>Page not found'
    TEMP_OFFLINE_PATTERN = r'<title>uploaded\.net - Maintenance'

    LINK_PATTERN = r'<h2><a href="(.+?)"'


getInfo = create_getInfo(UploadedToFolder)
예제 #40
0
import re

from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo


class FreetexthostCom(SimpleCrypter):
    __name__    = "FreetexthostCom"
    __type__    = "crypter"
    __version__ = "0.02"
    __status__  = "testing"

    __pattern__ = r'http://(?:www\.)?freetexthost\.com/\w+'
    __config__  = [("use_premium"       , "bool", "Use premium account if available"   , True),
                   ("use_subfolder"     , "bool", "Save package to subfolder"          , True),
                   ("subfolder_per_pack", "bool", "Create a subfolder for each package", True)]

    __description__ = """Freetexthost.com decrypter plugin"""
    __license__     = "GPLv3"
    __authors__     = [("stickell", "*****@*****.**")]


    def get_links(self):
        m = re.search(r'<div id="contentsinner">\s*(.+)<div class="viewcount">', self.html, re.S)
        if m is None:
            self.error(_("Unable to extract links"))
        links = m.group(1)
        return links.strip().split("<br />\r\n")


getInfo = create_getInfo(FreetexthostCom)
예제 #41
0
# -*- coding: utf-8 -*-

from module.plugins.internal.Crypter import Crypter
from module.plugins.internal.SimpleCrypter import create_getInfo


class DeadCrypter(Crypter):
    __name__ = "DeadCrypter"
    __type__ = "crypter"
    __version__ = "0.06"

    __pattern__ = r'^unmatchable$'

    __description__ = """Crypter is no longer available"""
    __license__ = "GPLv3"
    __authors__ = [("stickell", "*****@*****.**")]

    @classmethod
    def apiInfo(cls, *args, **kwargs):
        api = super(DeadCrypter, cls).apiInfo(*args, **kwargs)
        api['status'] = 1
        return api

    def setup(self):
        self.pyfile.error = "Crypter is no longer available"
        self.offline()  #@TODO: self.offline("Crypter is no longer available")


getInfo = create_getInfo(DeadCrypter)
예제 #42
0
from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo
from module.utils import uniqify


class ImgurComAlbum(SimpleCrypter):
    __name__    = "ImgurComAlbum"
    __type__    = "crypter"
    __version__ = "0.51"

    __pattern__ = r'https?://(?:www\.|m\.)?imgur\.com/(a|gallery|)/?\w{5,7}'
    __config__  = [("use_premium"       , "bool", "Use premium account if available"   , True),
                   ("use_subfolder"     , "bool", "Save package to subfolder"          , True),
                   ("subfolder_per_pack", "bool", "Create a subfolder for each package", True)]

    __description__ = """Imgur.com decrypter plugin"""
    __license__     = "GPLv3"
    __authors__     = [("nath_schwarz", "*****@*****.**")]


    NAME_PATTERN = r'(?P<N>.+?) - Imgur'
    LINK_PATTERN = r'i\.imgur\.com/\w{7}s?\.(?:jpeg|jpg|png|gif|apng)'


    def getLinks(self):
        f = lambda url: "http://" + re.sub(r'(\w{7})s\.', r'\1.', url)
        return uniqify(map(f, re.findall(self.LINK_PATTERN, self.html)))


getInfo = create_getInfo(ImgurComAlbum)
예제 #43
0
        if "Please click on continue to see the links" in self.html:
            post_req['submitform'] = "Continue"
            self.wait(2)

        else:
            mstime  = int(round(time.time() * 1000))
            b64time = "_" + urlsafe_b64encode(str(mstime)).replace("=", "%3D")

            post_req.update({'i'         : b64time,
                             'submitform': "Decrypt+link"})

            if "Password :"******"Security Code" in self.html:
                m = re.search(r'/captcha\.php\?key=(.+?)"', self.html)
                if m:
                    captcha_code = self.captcha.decrypt("http://www.dl-protect.com/captcha.php?key=" + m.group(1), input_type="gif")
                    post_req['secure'] = captcha_code

        self.html = self.load(self.pyfile.url, post=post_req)

        for errmsg in ("The password is incorrect", "The security code is incorrect"):
            if errmsg in self.html:
                self.fail(_(errmsg[1:]))

        return re.findall(r'<a href="([^/].+?)" target="_blank">', self.html)


getInfo = create_getInfo(DlProtectCom)
예제 #44
0
# -*- coding: utf-8 -*-

from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo


class UploadableChFolder(SimpleCrypter):
    __name__    = "UploadableChFolder"
    __type__    = "crypter"
    __version__ = "0.04"
    __status__  = "testing"

    __pattern__ = r'http://(?:www\.)?uploadable\.ch/list/\w+'
    __config__  = [("use_premium"       , "bool", "Use premium account if available"   , True),
                   ("use_subfolder"     , "bool", "Save package to subfolder"          , True),
                   ("subfolder_per_pack", "bool", "Create a subfolder for each package", True)]

    __description__ = """Uploadable.ch folder decrypter plugin"""
    __license__     = "GPLv3"
    __authors__     = [("guidobelix", "*****@*****.**"),
                       ("Walter Purcaro", "*****@*****.**")]


    LINK_PATTERN = r'"(.+?)" class="icon_zipfile">'
    NAME_PATTERN = r'<div class="folder"><span>&nbsp;</span>(?P<N>.+?)</div>'
    OFFLINE_PATTERN = r'We are sorry... The URL you entered cannot be found on the server.'
    TEMP_OFFLINE_PATTERN = r'<div class="icon_err">'


getInfo = create_getInfo(UploadableChFolder)
예제 #45
0
                   "Create a subfolder for each package", True)]

    __description__ = """Data.hu folder decrypter plugin"""
    __license__ = "GPLv3"
    __authors__ = [("crash", None), ("stickell", "*****@*****.**")]

    LINK_PATTERN = r'<a href=\'(http://data\.hu/get/.+)\' target=\'_blank\'>\1</a>'
    NAME_PATTERN = ur'<title>(?P<N>.+?) Let\xf6lt\xe9se</title>'

    def prepare(self):
        super(DataHuFolder, self).prepare()

        if u'K\xe9rlek add meg a jelsz\xf3t' in self.html:  # Password protected
            password = self.getPassword()
            if not password:
                self.fail(_("Password required"))

            self.logDebug(
                "The folder is password protected', 'Using password: "******"Wrong password"))


getInfo = create_getInfo(DataHuFolder)
예제 #46
0
from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo


class FilefactoryComFolder(SimpleCrypter):
    __name__    = "FilefactoryComFolder"
    __type__    = "crypter"
    __version__ = "0.32"

    __pattern__ = r'https?://(?:www\.)?filefactory\.com/(?:f|folder)/\w+'
    __config__  = [("use_premium"       , "bool", "Use premium account if available"   , True),
                   ("use_subfolder"     , "bool", "Save package to subfolder"          , True),
                   ("subfolder_per_pack", "bool", "Create a subfolder for each package", True)]

    __description__ = """Filefactory.com folder decrypter plugin"""
    __license__     = "GPLv3"
    __authors__     = [("stickell", "*****@*****.**")]


    COOKIES = [("filefactory.com", "locale", "en_US.utf8")]

    LINK_PATTERN  = r'<td>\s*<a href="(.+?)"'
    NAME_PATTERN  = r'<h1>Files in <span>(?P<N>.+?)<'
    PAGES_PATTERN = r'data-paginator-totalPages="(\d+)'


    def loadPage(self, page_n):
        return self.load(self.pyfile.url, get={'page': page_n, 'show': 100})


getInfo = create_getInfo(FilefactoryComFolder)
예제 #47
0
from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo


class TnyCz(SimpleCrypter):
    __name__    = "TnyCz"
    __type__    = "crypter"
    __version__ = "0.07"
    __status__  = "testing"

    __pattern__ = r'http://(?:www\.)?tny\.cz/\w+'
    __config__  = [("activated"            , "bool", "Activated"                                        , True),
                   ("use_premium"          , "bool", "Use premium account if available"                 , True),
                   ("use_subfolder"        , "bool", "Save package to subfolder"                        , True),
                   ("subfolder_per_package", "bool", "Create a subfolder for each package"              , True),
                   ("max_wait"             , "int" , "Reconnect if waiting time is greater than minutes", 10  )]

    __description__ = """Tny.cz decrypter plugin"""
    __license__     = "GPLv3"
    __authors__     = [("Walter Purcaro", "*****@*****.**")]


    NAME_PATTERN = r'<title>(?P<N>.+?) - .+</title>'


    def get_links(self):
        m = re.search(r'<a id=\'save_paste\' href="(.+save\.php\?hash=.+)">', self.data)
        return re.findall(".+", self.load(m.group(1))) if m else None


getInfo = create_getInfo(TnyCz)
예제 #48
0
    __config__ = [("use_premium", "bool", "Use premium account if available",
                   True),
                  ("use_subfolder", "bool", "Save package to subfolder", True),
                  ("subfolder_per_pack", "bool",
                   "Create a subfolder for each package", True)]

    __description__ = """MultiUp.org crypter plugin"""
    __license__ = "GPLv3"
    __authors__ = [("Walter Purcaro", "*****@*****.**")]

    NAME_PATTERN = r'<title>.*(?:Project|Projet|ownload|élécharger) (?P<N>.+?) (\(|- )'

    def getLinks(self):
        m_type = re.match(self.__pattern__, self.pyfile.url).group('TYPE')

        if m_type == "project":
            pattern = r'\n(http://www\.multiup\.org/(?:en|fr)/download/.*)'
        else:
            pattern = r'style="width:97%;text-align:left".*\n.*href="(.*)"'
            if m_type == "download":
                dl_pattern = r'href="(.*)">.*\n.*<h5>DOWNLOAD</h5>'
                miror_page = urlparse.urljoin(
                    "http://www.multiup.org",
                    re.search(dl_pattern, self.html).group(1))
                self.html = self.load(miror_page)

        return re.findall(pattern, self.html)


getInfo = create_getInfo(MultiUpOrg)
# -*- coding: utf-8 -*-

from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo


class MegaRapidCzFolder(SimpleCrypter):
    __name__    = "MegaRapidCzFolder"
    __type__    = "crypter"
    __version__ = "0.06"
    __status__  = "testing"

    __pattern__ = r'http://(?:www\.)?(share|mega)rapid\.cz/slozka/\d+/\w+'
    __config__  = [("activated"            , "bool", "Activated"                                        , True),
                   ("use_premium"          , "bool", "Use premium account if available"                 , True),
                   ("use_subfolder"        , "bool", "Save package to subfolder"                        , True),
                   ("subfolder_per_package", "bool", "Create a subfolder for each package"              , True),
                   ("max_wait"             , "int" , "Reconnect if waiting time is greater than minutes", 10  )]

    __description__ = """Share-Rapid.com folder decrypter plugin"""
    __license__     = "GPLv3"
    __authors__     = [("zoidberg", "*****@*****.**")]


    LINK_PATTERN = r'<td class="soubor".*?><a href="(.+?)">'


getInfo = create_getInfo(MegaRapidCzFolder)
예제 #50
0
    LINK_PATTERN = r'(http://go4up\.com/rd/.+?)<'

    NAME_PATTERN = r'<title>Download (.+?)<'

    OFFLINE_PATTERN = r'>\s*(404 Page Not Found|File not Found|Mirror does not exist)'

    def getLinks(self):
        links = []

        m = re.search(r'(/download/gethosts/.+?)"', self.html)
        if m:
            self.html = self.load(
                urlparse.urljoin("http://go4up.com/", m.group(1)))
            pages = [
                self.load(url)
                for url in re.findall(self.LINK_PATTERN, self.html)
            ]
        else:
            pages = [self.html]

        for html in pages:
            try:
                links.append(re.search(r'<b><a href="(.+?)"', html).group(1))
            except Exception:
                continue

        return links


getInfo = create_getInfo(Go4UpCom)
예제 #51
0
# -*- coding: utf-8 -*-

from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo


class PastebinCom(SimpleCrypter):
    __name__ = "PastebinCom"
    __type__ = "crypter"
    __version__ = "0.04"

    __pattern__ = r'https://(?:www\.)?pastebin\.com/(.+i=)?(?P<ID>\w{8})'
    __config__ = [("use_premium", "bool", "Use premium account if available",
                   True),
                  ("use_subfolder", "bool", "Save package to subfolder", True),
                  ("subfolder_per_pack", "bool",
                   "Create a subfolder for each package", True)]

    __description__ = """Pastebin.com decrypter plugin"""
    __license__ = "GPLv3"
    __authors__ = [("stickell", "*****@*****.**")]

    URL_REPLACEMENTS = [(__pattern__ + '.*', r'http://www.pastebin.com/\g<ID>')
                        ]

    NAME_PATTERN = r'<div class="paste_box_line1" title="(?P<N>.+?)"'
    LINK_PATTERN = r'<div class="de\d+">(.+?)<'


getInfo = create_getInfo(PastebinCom)
예제 #52
0
from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo


class TnyCz(SimpleCrypter):
    __name__ = "TnyCz"
    __type__ = "crypter"
    __version__ = "0.04"

    __pattern__ = r'http://(?:www\.)?tny\.cz/\w+'
    __config__ = [("use_premium", "bool", "Use premium account if available",
                   True),
                  ("use_subfolder", "bool", "Save package to subfolder", True),
                  ("subfolder_per_pack", "bool",
                   "Create a subfolder for each package", True)]

    __description__ = """Tny.cz decrypter plugin"""
    __license__ = "GPLv3"
    __authors__ = [("Walter Purcaro", "*****@*****.**")]

    NAME_PATTERN = r'<title>(?P<N>.+?) - .+</title>'

    def getLinks(self):
        m = re.search(r'<a id=\'save_paste\' href="(.+save\.php\?hash=.+)">',
                      self.html)
        return re.findall(".+", self.load(m.group(1),
                                          decode=True)) if m else None


getInfo = create_getInfo(TnyCz)
예제 #53
0
파일: Go4UpCom.py 프로젝트: kurtiss/htpc
                       ("Walter Purcaro", "*****@*****.**")]


    LINK_PATTERN = r'(http://go4up\.com/rd/.+?)<'

    NAME_PATTERN = r'<title>Download (.+?)<'

    OFFLINE_PATTERN = r'>\s*(404 Page Not Found|File not Found|Mirror does not exist)'


    def getLinks(self):
        links = []

        m = re.search(r'(/download/gethosts/.+?)"', self.html)
        if m:
            self.html = self.load(urljoin("http://go4up.com/", m.group(1)))
            pages = [self.load(url) for url in re.findall(self.LINK_PATTERN, self.html)]
        else:
            pages = [self.html]

        for html in pages:
            try:
                links.append(re.search(r'<b><a href="(.+?)"', html).group(1))
            except Exception:
                continue

        return links


getInfo = create_getInfo(Go4UpCom)
예제 #54
0
    __authors__ = [("stickell", "*****@*****.**"),
                   ("Walter Purcaro", "*****@*****.**")]

    NAME_PATTERN = r'src=\'/js/lib/grid/icon/folder.png\'> <span>(?P<N>.+?)</span>'

    def _getLinks(self, id, page=1):
        gridFile = self.load("http://turbobit.net/downloadfolder/gridFile",
                             get={
                                 "rootId": id,
                                 "rows": 200,
                                 "page": page
                             },
                             decode=True)
        grid = json_loads(gridFile)

        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):
        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))


getInfo = create_getInfo(TurbobitNetFolder)
예제 #55
0
                   ("use_subfolder"     , "bool", "Save package to subfolder"          , True),
                   ("subfolder_per_pack", "bool", "Create a subfolder for each package", True)]

    __description__ = """Data.hu folder decrypter plugin"""
    __license__     = "GPLv3"
    __authors__     = [("crash", None),
                       ("stickell", "*****@*****.**")]


    LINK_PATTERN = r'<a href=\'(http://data\.hu/get/.+)\' target=\'_blank\'>\1</a>'
    NAME_PATTERN = ur'<title>(?P<N>.+?) Let\xf6lt\xe9se</title>'


    def prepare(self):
        super(DataHuFolder, self).prepare()

        if u'K\xe9rlek add meg a jelsz\xf3t' in self.html:  #: Password protected
            password = self.get_password()
            if not password:
                self.fail(_("Password required"))

            self.log_debug("The folder is password protected', 'Using password: "******"Wrong password"))


getInfo = create_getInfo(DataHuFolder)
예제 #56
0
# -*- coding: utf-8 -*-

from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo


class UploadableChFolder(SimpleCrypter):
    __name__ = "UploadableChFolder"
    __type__ = "crypter"
    __version__ = "0.03"

    __pattern__ = r'http://(?:www\.)?uploadable\.ch/list/\w+'
    __config__ = [("use_premium", "bool", "Use premium account if available",
                   True),
                  ("use_subfolder", "bool", "Save package to subfolder", True),
                  ("subfolder_per_pack", "bool",
                   "Create a subfolder for each package", True)]

    __description__ = """Uploadable.ch folder decrypter plugin"""
    __license__ = "GPLv3"
    __authors__ = [("guidobelix", "*****@*****.**"),
                   ("Walter Purcaro", "*****@*****.**")]

    LINK_PATTERN = r'"(.+?)" class="icon_zipfile">'
    NAME_PATTERN = r'<div class="folder"><span>&nbsp;</span>(?P<N>.+?)</div>'
    OFFLINE_PATTERN = r'We are sorry... The URL you entered cannot be found on the server.'
    TEMP_OFFLINE_PATTERN = r'<div class="icon_err">'


getInfo = create_getInfo(UploadableChFolder)
예제 #57
0
from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo


class TNTVillageScambioeticoOrg(SimpleCrypter):
    __name__    = "TNTVillageScambioeticoOrg"
    __type__    = "crypter"
    __version__ = "0.01"

    __pattern__ = r'http://(?:www\.)?forum\.tntvillage\.scambioetico\.org/index\.php\?.*showtopic=\d+'
    __config__  = [("use_subfolder"     , "bool", "Save package to subfolder"          , True),  #: Overrides core.config['general']['folder_per_package']
                   ("subfolder_per_pack", "bool", "Create a subfolder for each package", True)]

    __description__ = """TNTVillage.scambioetico.org decrypter plugin"""
    __license__     = "GPLv3"
    __authors__     = [("Walter Purcaro", "*****@*****.**")]


    LINK_PATTERNS = [r'<th class="titlemedium"><a href=\'(.+?)\'', r"<a href='(\./index\.php\?act.+?)'"]


    def getLinks(self):
        for p in self.LINK_PATTERNS:
            self.LINK_PATTERN = p
            links = super(TNTVillageScambioeticoOrg, self).getLinks()
            if links:
                return links


getInfo = create_getInfo(TNTVillageScambioeticoOrg)
예제 #58
0
# -*- coding: utf-8 -*-

from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo


class NosvideoCom(SimpleCrypter):
    __name__ = "NosvideoCom"
    __type__ = "crypter"
    __version__ = "0.03"

    __pattern__ = r'http://(?:www\.)?nosvideo\.com/\?v=\w+'
    __config__ = [("use_premium", "bool", "Use premium account if available",
                   True),
                  ("use_subfolder", "bool", "Save package to subfolder", True),
                  ("subfolder_per_pack", "bool",
                   "Create a subfolder for each package", True)]

    __description__ = """Nosvideo.com decrypter plugin"""
    __license__ = "GPLv3"
    __authors__ = [("igel", "*****@*****.**")]

    LINK_PATTERN = r'href="(http://(?:w{3}\.)?nosupload\.com/\?d=\w+)"'
    NAME_PATTERN = r'<[tT]itle>Watch (?P<N>.+?)<'


getInfo = create_getInfo(NosvideoCom)
예제 #59
0
# -*- coding: utf-8 -*-

from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo


class LinkSaveIn(SimpleCrypter):
    __name__    = "LinkSaveIn"
    __type__    = "crypter"
    __version__ = "2.08"
    __status__  = "testing"

    __pattern__ = r'https?://(?:www\.)?linksave\.in/\w+'
    __config__  = [("activated"            , "bool", "Activated"                                        , True),
                   ("use_premium"          , "bool", "Use premium account if available"                 , True),
                   ("use_subfolder"        , "bool", "Save package to subfolder"                        , True),
                   ("subfolder_per_package", "bool", "Create a subfolder for each package"              , True),
                   ("max_wait"             , "int" , "Reconnect if waiting time is greater than minutes", 10  )]

    __description__ = """LinkSave.in decrypter plugin"""
    __license__     = "GPLv3"
    __authors__     = [("Walter Purcaro", "*****@*****.**")]


    COOKIES = [("linksave.in", "Linksave_Language", "english")]

    OFFLINE_PATTERN = r'>(Error )?404 -'


getInfo = create_getInfo(LinkSaveIn)
from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo


class TNTVillageScambioeticoOrg(SimpleCrypter):
    __name__    = "TNTVillageScambioeticoOrg"
    __type__    = "crypter"
    __version__ = "0.02"
    __status__  = "testing"

    __pattern__ = r'http://(?:www\.)?forum\.tntvillage\.scambioetico\.org/index\.php\?.*showtopic=\d+'
    __config__  = [("use_subfolder"     , "bool", "Save package to subfolder"          , True),  #: Overrides pyload.config['general']['folder_per_package']
                   ("subfolder_per_pack", "bool", "Create a subfolder for each package", True)]

    __description__ = """TNTVillage.scambioetico.org decrypter plugin"""
    __license__     = "GPLv3"
    __authors__     = [("Walter Purcaro", "*****@*****.**")]


    LINK_PATTERNS = [r'<th class="titlemedium"><a href=\'(.+?)\'', r"<a href='(\./index\.php\?act.+?)'"]


    def get_links(self):
        for p in self.LINK_PATTERNS:
            self.LINK_PATTERN = p
            links = super(TNTVillageScambioeticoOrg, self).getLinks()
            if links:
                return links


getInfo = create_getInfo(TNTVillageScambioeticoOrg)