diff options
| author | 2015-05-01 01:06:01 +0200 | |
|---|---|---|
| committer | 2015-05-01 01:06:01 +0200 | |
| commit | 1ef93e913238275f7657d496ba3d2e7eeb5a30a2 (patch) | |
| tree | c52a2ab51763fce4a9b47d3c62388a27ebdeeda8 /module/plugins | |
| parent | Fix https://github.com/pyload/pyload/issues/1373 (diff) | |
| download | pyload-1ef93e913238275f7657d496ba3d2e7eeb5a30a2.tar.xz | |
Use 'import' instead 'from'
Diffstat (limited to 'module/plugins')
77 files changed, 196 insertions, 265 deletions
| diff --git a/module/plugins/accounts/FilefactoryCom.py b/module/plugins/accounts/FilefactoryCom.py index f07f4895a..37b6f97a8 100644 --- a/module/plugins/accounts/FilefactoryCom.py +++ b/module/plugins/accounts/FilefactoryCom.py @@ -1,10 +1,9 @@  # -*- coding: utf-8 -*- +import pycurl  import re  import time -from pycurl import REFERER -  from module.plugins.Account import Account @@ -38,7 +37,7 @@ class FilefactoryCom(Account):      def login(self, user, data, req): -        req.http.c.setopt(REFERER, "http://www.filefactory.com/member/login.php") +        req.http.c.setopt(pycurl.REFERER, "http://www.filefactory.com/member/login.php")          html = req.load("http://www.filefactory.com/member/signin.php",                          post={"loginEmail"   : user, diff --git a/module/plugins/accounts/LinksnappyCom.py b/module/plugins/accounts/LinksnappyCom.py index 97e368285..34571d374 100644 --- a/module/plugins/accounts/LinksnappyCom.py +++ b/module/plugins/accounts/LinksnappyCom.py @@ -1,6 +1,6 @@  # -*- coding: utf-8 -*- -from hashlib import md5 +import hashlib  from module.plugins.Account import Account  from module.common.json_layer import json_loads @@ -18,7 +18,7 @@ class LinksnappyCom(Account):      def loadAccountInfo(self, user, req):          data = self.getAccountData(user)          r = req.load('http://gen.linksnappy.com/lseAPI.php', -                     get={'act': 'USERDETAILS', 'username': user, 'password': md5(data['password']).hexdigest()}) +                     get={'act': 'USERDETAILS', 'username': user, 'password': hashlib.md5(data['password']).hexdigest()})          self.logDebug("JSON data: " + r) @@ -50,7 +50,7 @@ class LinksnappyCom(Account):          r = req.load("http://gen.linksnappy.com/lseAPI.php",                       get={'act'     : 'USERDETAILS',                            'username': user, -                          'password': md5(data['password']).hexdigest()}, +                          'password': hashlib.md5(data['password']).hexdigest()},                       decode=True)          if 'Invalid Account Details' in r: diff --git a/module/plugins/accounts/OboomCom.py b/module/plugins/accounts/OboomCom.py index a9068f1df..020a45ba7 100644 --- a/module/plugins/accounts/OboomCom.py +++ b/module/plugins/accounts/OboomCom.py @@ -1,13 +1,12 @@  # -*- coding: utf-8 -*- -import time -  try:      from beaker.crypto.pbkdf2 import PBKDF2  except ImportError:      from beaker.crypto.pbkdf2 import pbkdf2      from binascii import b2a_hex +      class PBKDF2(object):          def __init__(self, passphrase, salt, iterations=1000):              self.passphrase = passphrase diff --git a/module/plugins/accounts/OneFichierCom.py b/module/plugins/accounts/OneFichierCom.py index be4b5e67e..b19e2bc69 100644 --- a/module/plugins/accounts/OneFichierCom.py +++ b/module/plugins/accounts/OneFichierCom.py @@ -1,10 +1,9 @@  # -*- coding: utf-8 -*- +import pycurl  import re  import time -from pycurl import REFERER -  from module.plugins.Account import Account @@ -45,7 +44,7 @@ class OneFichierCom(Account):      def login(self, user, data, req): -        req.http.c.setopt(REFERER, "https://1fichier.com/login.pl?lg=en") +        req.http.c.setopt(pycurl.REFERER, "https://1fichier.com/login.pl?lg=en")          html = req.load("https://1fichier.com/login.pl?lg=en",                          post={'mail'   : user, diff --git a/module/plugins/accounts/SmoozedCom.py b/module/plugins/accounts/SmoozedCom.py index 3c8226704..56cd1864a 100644 --- a/module/plugins/accounts/SmoozedCom.py +++ b/module/plugins/accounts/SmoozedCom.py @@ -9,6 +9,7 @@ try:  except ImportError:      from beaker.crypto.pbkdf2 import pbkdf2      from binascii import b2a_hex +      class PBKDF2(object):          def __init__(self, passphrase, salt, iterations=1000):              self.passphrase = passphrase diff --git a/module/plugins/accounts/UlozTo.py b/module/plugins/accounts/UlozTo.py index 6ddb34385..f95c8834b 100644 --- a/module/plugins/accounts/UlozTo.py +++ b/module/plugins/accounts/UlozTo.py @@ -1,8 +1,7 @@  # -*- coding: utf-8 -*-  import re - -from urlparse import urljoin +import urlparse  from module.plugins.Account import Account @@ -37,7 +36,7 @@ class UlozTo(Account):          action     = re.findall('<form action="(.+?)"', login_page)[1].replace('&', '&')          token      = re.search('_token_" value="(.+?)"', login_page).group(1) -        html = req.load(urljoin("http://www.ulozto.net/", action), +        html = req.load(urlparse.urljoin("http://www.ulozto.net/", action),                          post={'_token_' : token,                                'do'      : "loginForm-submit",                                'login'   : u"Přihlásit", diff --git a/module/plugins/accounts/WebshareCz.py b/module/plugins/accounts/WebshareCz.py index 3c5f45d34..f032e2317 100644 --- a/module/plugins/accounts/WebshareCz.py +++ b/module/plugins/accounts/WebshareCz.py @@ -1,9 +1,9 @@  # -*- coding: utf-8 -*- +import hashlib  import re  import time -from hashlib import md5, sha1  from passlib.hash import md5_crypt  from module.plugins.Account import Account @@ -51,8 +51,8 @@ class WebshareCz(Account):              self.wrongPassword()          salt     = re.search('<salt>(.+)</salt>', salt).group(1) -        password = sha1(md5_crypt.encrypt(data["password"], salt=salt)).hexdigest() -        digest   = md5(user + ":Webshare:" + password).hexdigest() +        password = hashlib.sha1(md5_crypt.encrypt(data["password"], salt=salt)).hexdigest() +        digest   = hashlib.md5(user + ":Webshare:" + password).hexdigest()          login = req.load("https://webshare.cz/api/login/",                           post={'digest'           : digest, diff --git a/module/plugins/captcha/LinksaveIn.py b/module/plugins/captcha/LinksaveIn.py index e256da502..95b107977 100644 --- a/module/plugins/captcha/LinksaveIn.py +++ b/module/plugins/captcha/LinksaveIn.py @@ -5,9 +5,8 @@ try:  except ImportError:      import Image -from glob import glob -from os import sep -from os.path import abspath, dirname +import glob +import os  from module.plugins.captcha.OCR import OCR @@ -24,7 +23,7 @@ class LinksaveIn(OCR):      def __init__(self):          OCR.__init__(self) -        self.data_dir = dirname(abspath(__file__)) + sep + "LinksaveIn" + sep +        self.data_dir = os.path.dirname(os.path.abspath(__file__)) + os.sep + "LinksaveIn" + os.sep      def load_image(self, image): @@ -59,7 +58,7 @@ class LinksaveIn(OCR):          stat = {}          cstat = {}          img = self.image.convert("P") -        for bgpath in glob(self.data_dir+"bg/*.gif"): +        for bgpath in glob.glob(self.data_dir+"bg/*.gif"):              stat[bgpath] = 0              bg = Image.open(bgpath) diff --git a/module/plugins/container/CCF.py b/module/plugins/container/CCF.py index 79d7879a7..235d5dc1d 100644 --- a/module/plugins/container/CCF.py +++ b/module/plugins/container/CCF.py @@ -2,11 +2,9 @@  from __future__ import with_statement +import MultipartPostHandler  import re - -from urllib2 import build_opener - -from MultipartPostHandler import MultipartPostHandler +import urllib2  from module.plugins.Container import Container  from module.utils import fs_encode, save_join @@ -27,7 +25,7 @@ class CCF(Container):      def decrypt(self, pyfile):          fs_filename = fs_encode(pyfile.url.strip()) -        opener      = build_opener(MultipartPostHandler) +        opener      = urllib2.build_opener(MultipartPostHandler.MultipartPostHandler)          dlc_content = opener.open('http://service.jdownloader.net/dlcrypt/getDLC.php',                                    {'src'     : "ccf", diff --git a/module/plugins/crypter/CloudzillaToFolder.py b/module/plugins/crypter/CloudzillaToFolder.py index 76019d928..96d7245f1 100644 --- a/module/plugins/crypter/CloudzillaToFolder.py +++ b/module/plugins/crypter/CloudzillaToFolder.py @@ -1,8 +1,7 @@  # -*- coding: utf-8 -*-  import re - -from urlparse import urljoin +import urlparse  from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo diff --git a/module/plugins/crypter/DailymotionComFolder.py b/module/plugins/crypter/DailymotionComFolder.py index 5c078000a..01caa0bb8 100644 --- a/module/plugins/crypter/DailymotionComFolder.py +++ b/module/plugins/crypter/DailymotionComFolder.py @@ -1,8 +1,7 @@  # -*- coding: utf-8 -*-  import re - -from urlparse import urljoin +import urlparse  from module.common.json_layer import json_loads  from module.plugins.Crypter import Crypter @@ -24,7 +23,7 @@ class DailymotionComFolder(Crypter):      def api_response(self, ref, req=None): -        url  = urljoin("https://api.dailymotion.com/", ref) +        url  = urlparse.urljoin("https://api.dailymotion.com/", ref)          html = self.load(url, get=req)          return json_loads(html) diff --git a/module/plugins/crypter/DevhostStFolder.py b/module/plugins/crypter/DevhostStFolder.py index 5cafbf6b8..4d15e2058 100644 --- a/module/plugins/crypter/DevhostStFolder.py +++ b/module/plugins/crypter/DevhostStFolder.py @@ -4,8 +4,7 @@  # http://d-h.st/users/shine/?fld_id=37263#files  import re - -from urlparse import urljoin +import urlparse  from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo @@ -42,7 +41,7 @@ class DevhostStFolder(SimpleCrypter):              p = r'href="(.+?)">Back to \w+<'              m = re.search(p, self.html) -            html = self.load(urljoin("http://d-h.st", m.group(1)), +            html = self.load(urlparse.urljoin("http://d-h.st", m.group(1)),                               cookies=False)              p = '\?fld_id=%s.*?">(.+?)<' % self.info['pattern']['ID'] diff --git a/module/plugins/crypter/FilecryptCc.py b/module/plugins/crypter/FilecryptCc.py index 495efd706..a1a94b6f6 100644 --- a/module/plugins/crypter/FilecryptCc.py +++ b/module/plugins/crypter/FilecryptCc.py @@ -5,9 +5,9 @@  import binascii  import re +import urlparse  from Crypto.Cipher import AES -from urlparse import urljoin  from module.plugins.Crypter import Crypter  from module.plugins.internal.CaptchaService import ReCaptcha @@ -91,7 +91,7 @@ class FilecryptCc(Crypter):          if m:  #: normal captcha              self.logDebug("Captcha-URL: %s" % m.group(1)) -            captcha_code = self.decryptCaptcha(urljoin(self.base_url, m.group(1)), +            captcha_code = self.decryptCaptcha(urlparse.urljoin(self.base_url, m.group(1)),                                                 forceUser=True,                                                 imgtype="gif") diff --git a/module/plugins/crypter/Go4UpCom.py b/module/plugins/crypter/Go4UpCom.py index 6e7d09466..22f31f6f6 100644 --- a/module/plugins/crypter/Go4UpCom.py +++ b/module/plugins/crypter/Go4UpCom.py @@ -1,8 +1,7 @@  # -*- coding: utf-8 -*-  import re - -from urlparse import urljoin +import urlparse  from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo @@ -35,7 +34,7 @@ class Go4UpCom(SimpleCrypter):          m = re.search(r'(/download/gethosts/.+?)"', self.html)          if m: -            self.html = self.load(urljoin("http://go4up.com/", m.group(1))) +            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] diff --git a/module/plugins/crypter/MultiUpOrg.py b/module/plugins/crypter/MultiUpOrg.py index 3f9e819eb..b676c3029 100644 --- a/module/plugins/crypter/MultiUpOrg.py +++ b/module/plugins/crypter/MultiUpOrg.py @@ -1,7 +1,7 @@  # -*- coding: utf-8 -*-  import re -from urlparse import urljoin +import urlparse  from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo @@ -33,7 +33,7 @@ class MultiUpOrg(SimpleCrypter):              pattern = r'style="width:97%;text-align:left".*\n.*href="(.*)"'              if m_type == "download":                  dl_pattern = r'href="(.*)">.*\n.*<h5>DOWNLOAD</h5>' -                miror_page = urljoin("http://www.multiup.org", re.search(dl_pattern, self.html).group(1)) +                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) diff --git a/module/plugins/crypter/SafelinkingNet.py b/module/plugins/crypter/SafelinkingNet.py index 34a45ea6e..7f0915065 100644 --- a/module/plugins/crypter/SafelinkingNet.py +++ b/module/plugins/crypter/SafelinkingNet.py @@ -2,8 +2,6 @@  import re -from pycurl import FOLLOWLOCATION -  from BeautifulSoup import BeautifulSoup  from module.common.json_layer import json_loads diff --git a/module/plugins/crypter/TusfilesNetFolder.py b/module/plugins/crypter/TusfilesNetFolder.py index 47cc973f0..1cc505b81 100644 --- a/module/plugins/crypter/TusfilesNetFolder.py +++ b/module/plugins/crypter/TusfilesNetFolder.py @@ -2,7 +2,7 @@  import math  import re -from urlparse import urljoin +import urlparse  from module.plugins.internal.XFSCrypter import XFSCrypter, create_getInfo @@ -28,7 +28,7 @@ class TusfilesNetFolder(XFSCrypter):      def loadPage(self, page_n): -        return self.load(urljoin(self.pyfile.url, str(page_n)), decode=True) +        return self.load(urlparse.urljoin(self.pyfile.url, str(page_n)), decode=True)      def handlePages(self, pyfile): diff --git a/module/plugins/crypter/UploadedToFolder.py b/module/plugins/crypter/UploadedToFolder.py index b86c66bf7..d54ed47eb 100644 --- a/module/plugins/crypter/UploadedToFolder.py +++ b/module/plugins/crypter/UploadedToFolder.py @@ -1,8 +1,7 @@  # -*- coding: utf-8 -*-  import re - -from urlparse import urljoin +import urlparse  from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo @@ -31,7 +30,7 @@ class UploadedToFolder(SimpleCrypter):          if m is None:              self.error(_("PLAIN_PATTERN not found")) -        plain_link = urljoin("http://uploaded.net/", m.group(1)) +        plain_link = urlparse.urljoin("http://uploaded.net/", m.group(1))          return self.load(plain_link).split('\n')[:-1] diff --git a/module/plugins/crypter/YoutubeComFolder.py b/module/plugins/crypter/YoutubeComFolder.py index d7ca494fa..a2b02b2f1 100644 --- a/module/plugins/crypter/YoutubeComFolder.py +++ b/module/plugins/crypter/YoutubeComFolder.py @@ -1,8 +1,7 @@  # -*- coding: utf-8 -*-  import re - -from urlparse import urljoin +import urlparse  from module.common.json_layer import json_loads  from module.plugins.Crypter import Crypter @@ -31,7 +30,7 @@ class YoutubeComFolder(Crypter):      def api_response(self, ref, req):          req.update({"key": self.API_KEY}) -        url  = urljoin("https://www.googleapis.com/youtube/v3/", ref) +        url  = urlparse.urljoin("https://www.googleapis.com/youtube/v3/", ref)          html = self.load(url, get=req)          return json_loads(html) diff --git a/module/plugins/hooks/BypassCaptcha.py b/module/plugins/hooks/BypassCaptcha.py index 3c8f72524..9e01edfa2 100644 --- a/module/plugins/hooks/BypassCaptcha.py +++ b/module/plugins/hooks/BypassCaptcha.py @@ -1,6 +1,6 @@  # -*- coding: utf-8 -*- -from pycurl import FORM_FILE, LOW_SPEED_TIME +import pycurl  from module.network.HTTPRequest import BadHeader  from module.network.RequestFactory import getURL, getRequest @@ -64,14 +64,14 @@ class BypassCaptcha(Hook):          req = getRequest()          #raise timeout threshold -        req.c.setopt(LOW_SPEED_TIME, 80) +        req.c.setopt(pycurl.LOW_SPEED_TIME, 80)          try:              res = req.load(self.SUBMIT_URL,                             post={'vendor_key': self.PYLOAD_KEY,                                   'key': self.getConfig('passkey'),                                   'gen_task_id': "1", -                                 'file': (FORM_FILE, captcha)}, +                                 'file': (pycurl.FORM_FILE, captcha)},                             multipart=True)          finally:              req.close() diff --git a/module/plugins/hooks/CaptchaBrotherhood.py b/module/plugins/hooks/CaptchaBrotherhood.py index e5285a493..bda080037 100644 --- a/module/plugins/hooks/CaptchaBrotherhood.py +++ b/module/plugins/hooks/CaptchaBrotherhood.py @@ -5,14 +5,13 @@ from __future__ import with_statement  import StringIO  import pycurl  import time +import urllib  try:      from PIL import Image  except ImportError:      import Image -from urllib import urlencode -  from module.network.RequestFactory import getURL, getRequest  from module.plugins.Hook import Hook, threaded @@ -90,10 +89,10 @@ class CaptchaBrotherhood(Hook):          req = getRequest()          url = "%ssendNewCaptcha.aspx?%s" % (self.API_URL, -                                            urlencode({'username'     : self.getConfig('username'), -                                                       'password'     : self.getConfig('passkey'), -                                                       'captchaSource': "pyLoad", -                                                       'timeout'      : "80"})) +                                            urllib.urlencode({'username'     : self.getConfig('username'), +                                                              'password'     : self.getConfig('passkey'), +                                                              'captchaSource': "pyLoad", +                                                              'timeout'      : "80"}))          req.c.setopt(pycurl.URL, url)          req.c.setopt(pycurl.POST, 1) diff --git a/module/plugins/hooks/Checksum.py b/module/plugins/hooks/Checksum.py index 4ad17f55a..ab7daf701 100644 --- a/module/plugins/hooks/Checksum.py +++ b/module/plugins/hooks/Checksum.py @@ -3,12 +3,10 @@  from __future__ import with_statement  import hashlib +import os  import re  import zlib -from os import remove -from os.path import getsize, isfile, splitext -  from module.plugins.Hook import Hook  from module.utils import save_join, fs_encode @@ -109,13 +107,13 @@ class Checksum(Hook):          #download_folder = self.config['general']['download_folder']          #local_file = fs_encode(save_join(download_folder, pyfile.package().folder, pyfile.name)) -        if not isfile(local_file): +        if not os.path.isfile(local_file):              self.checkFailed(pyfile, None, "File does not exist")          # validate file size          if "size" in data:              api_size  = int(data['size']) -            file_size = getsize(local_file) +            file_size = os.path.getsize(local_file)              if api_size != file_size:                  self.logWarning(_("File %s has incorrect size: %d B (%d expected)") % (pyfile.name, file_size, api_size)) @@ -157,7 +155,7 @@ class Checksum(Hook):              retry_action = self.getConfig('retry_action')              if pyfile.plugin.retries < max_tries:                  if local_file: -                    remove(local_file) +                    os.remove(local_file)                  pyfile.plugin.retry(max_tries, self.getConfig('wait_time'), msg)              elif retry_action == "nothing":                  return @@ -170,13 +168,13 @@ class Checksum(Hook):          download_folder = save_join(self.config['general']['download_folder'], pypack.folder, "")          for link in pypack.getChildren().itervalues(): -            file_type = splitext(link['name'])[1][1:].lower() +            file_type = os.path.splitext(link['name'])[1][1:].lower()              if file_type not in self.formats:                  continue              hash_file = fs_encode(save_join(download_folder, link['name'])) -            if not isfile(hash_file): +            if not os.path.isfile(hash_file):                  self.logWarning(_("File not found"), link['name'])                  continue diff --git a/module/plugins/hooks/DeathByCaptcha.py b/module/plugins/hooks/DeathByCaptcha.py index 501de0c1a..f9618f011 100644 --- a/module/plugins/hooks/DeathByCaptcha.py +++ b/module/plugins/hooks/DeathByCaptcha.py @@ -2,11 +2,11 @@  from __future__ import with_statement +import pycurl  import re  import time  from base64 import b64encode -from pycurl import FORM_FILE, HTTPHEADER  from module.common.json_layer import json_loads  from module.network.HTTPRequest import BadHeader @@ -74,7 +74,7 @@ class DeathByCaptcha(Hook):      def api_response(self, api="captcha", post=False, multipart=False):          req = getRequest() -        req.c.setopt(HTTPHEADER, ["Accept: application/json", "User-Agent: pyLoad %s" % self.core.version]) +        req.c.setopt(pycurl.HTTPHEADER, ["Accept: application/json", "User-Agent: pyLoad %s" % self.core.version])          if post:              if not isinstance(post, dict): @@ -135,7 +135,7 @@ class DeathByCaptcha(Hook):          #@NOTE: Workaround multipart-post bug in HTTPRequest.py          if re.match("^\w*$", self.getConfig('passkey')):              multipart = True -            data = (FORM_FILE, captcha) +            data = (pycurl.FORM_FILE, captcha)          else:              multipart = False              with open(captcha, 'rb') as f: diff --git a/module/plugins/hooks/ExpertDecoders.py b/module/plugins/hooks/ExpertDecoders.py index 79e98c020..ccd48f664 100644 --- a/module/plugins/hooks/ExpertDecoders.py +++ b/module/plugins/hooks/ExpertDecoders.py @@ -2,9 +2,10 @@  from __future__ import with_statement +import pycurl +import uuid +  from base64 import b64encode -from pycurl import LOW_SPEED_TIME -from uuid import uuid4  from module.network.HTTPRequest import BadHeader  from module.network.RequestFactory import getURL, getRequest @@ -48,7 +49,7 @@ class ExpertDecoders(Hook):      @threaded      def _processCaptcha(self, task): -        task.data['ticket'] = ticket = uuid4() +        task.data['ticket'] = ticket = uuid.uuid4()          result = None          with open(task.captchaFile, 'rb') as f: @@ -56,7 +57,7 @@ class ExpertDecoders(Hook):          req = getRequest()          #raise timeout threshold -        req.c.setopt(LOW_SPEED_TIME, 80) +        req.c.setopt(pycurl.LOW_SPEED_TIME, 80)          try:              result = req.load(self.API_URL, diff --git a/module/plugins/hooks/IRCInterface.py b/module/plugins/hooks/IRCInterface.py index 9e2f670e6..33fde3d20 100644 --- a/module/plugins/hooks/IRCInterface.py +++ b/module/plugins/hooks/IRCInterface.py @@ -1,12 +1,12 @@  # -*- coding: utf-8 -*- +import pycurl  import re  import socket  import ssl  import time  import traceback -from pycurl import FORM_FILE  from select import select  from threading import Thread @@ -77,7 +77,7 @@ class IRCInterface(Thread, Hook):              task.setWaiting(60)              html = getURL("http://www.freeimagehosting.net/upload.php", -                          post={"attached": (FORM_FILE, task.captchaFile)}, multipart=True) +                          post={"attached": (pycurl.FORM_FILE, task.captchaFile)}, multipart=True)              url = re.search(r"\[img\]([^\[]+)\[/img\]\[/url\]", html).group(1)              self.response(_("New Captcha Request: %s") % url) diff --git a/module/plugins/hooks/ImageTyperz.py b/module/plugins/hooks/ImageTyperz.py index 132ab2e02..f1fcacb71 100644 --- a/module/plugins/hooks/ImageTyperz.py +++ b/module/plugins/hooks/ImageTyperz.py @@ -2,10 +2,10 @@  from __future__ import with_statement +import pycurl  import re  from base64 import b64encode -from pycurl import FORM_FILE, LOW_SPEED_TIME  from module.network.RequestFactory import getURL, getRequest  from module.plugins.Hook import Hook, threaded @@ -76,13 +76,13 @@ class ImageTyperz(Hook):      def submit(self, captcha, captchaType="file", match=None):          req = getRequest()          #raise timeout threshold -        req.c.setopt(LOW_SPEED_TIME, 80) +        req.c.setopt(pycurl.LOW_SPEED_TIME, 80)          try:              #@NOTE: Workaround multipart-post bug in HTTPRequest.py              if re.match("^\w*$", self.getConfig('passkey')):                  multipart = True -                data = (FORM_FILE, captcha) +                data = (pycurl.FORM_FILE, captcha)              else:                  multipart = False                  with open(captcha, 'rb') as f: diff --git a/module/plugins/hooks/SkipRev.py b/module/plugins/hooks/SkipRev.py index 157b55bbd..7901ca540 100644 --- a/module/plugins/hooks/SkipRev.py +++ b/module/plugins/hooks/SkipRev.py @@ -1,10 +1,10 @@  # -*- coding: utf-8 -*-  import re +import urllib +import urlparse  from types import MethodType -from urllib import unquote -from urlparse import urlparse  from module.PyFile import PyFile  from module.plugins.Hook import Hook @@ -43,7 +43,7 @@ class SkipRev(Hook):              return pyfile.pluginmodule.getInfo([pyfile.url]).next()[0]          else:              self.logWarning("Unable to grab file name") -            return urlparse(unquote(pyfile.url)).path.split('/')[-1] +            return urlparse.urlparse(urllib.unquote(pyfile.url)).path.split('/')[-1]      def _pyfile(self, link): diff --git a/module/plugins/hoster/AlldebridCom.py b/module/plugins/hoster/AlldebridCom.py index 51fdad757..2ed09f58c 100644 --- a/module/plugins/hoster/AlldebridCom.py +++ b/module/plugins/hoster/AlldebridCom.py @@ -1,9 +1,7 @@  # -*- coding: utf-8 -*-  import re - -from random import randrange -from urllib import unquote +import urllib  from module.common.json_layer import json_loads  from module.plugins.internal.MultiHoster import MultiHoster, create_getInfo diff --git a/module/plugins/hoster/BasePlugin.py b/module/plugins/hoster/BasePlugin.py index 962c8887b..2228516aa 100644 --- a/module/plugins/hoster/BasePlugin.py +++ b/module/plugins/hoster/BasePlugin.py @@ -1,9 +1,8 @@  # -*- coding: utf-8 -*-  import re - -from urllib import unquote -from urlparse import urljoin, urlparse +import urllib +import urlparse  from module.network.HTTPRequest import BadHeader  from module.plugins.internal.SimpleHoster import create_getInfo, getFileURL @@ -25,8 +24,8 @@ class BasePlugin(Hoster):      @classmethod      def getInfo(cls, url="", html=""):  #@TODO: Move to hoster class in 0.4.10 -        url   = unquote(url) -        url_p = urlparse(url) +        url   = urllib.unquote(url) +        url_p = urlparse.urlparse(url)          return {'name'  : (url_p.path.split('/')[-1]                             or url_p.query.split('=', 1)[::-1][0].split('&', 1)[0]                             or url_p.netloc.split('.', 1)[0]), @@ -51,7 +50,7 @@ class BasePlugin(Hoster):          for _i in xrange(5):              try: -                link = getFileURL(self, unquote(pyfile.url)) +                link = getFileURL(self, urllib.unquote(pyfile.url))                  if link:                      self.download(link, ref=False, disposition=True) @@ -67,7 +66,7 @@ class BasePlugin(Hoster):                      account = self.core.accountManager.getAccountPlugin('Http')                      servers = [x['login'] for x in account.getAllAccounts()] -                    server  = urlparse(pyfile.url).netloc +                    server  = urlparse.urlparse(pyfile.url).netloc                      if server in servers:                          self.logDebug("Logging on to %s" % server) diff --git a/module/plugins/hoster/DepositfilesCom.py b/module/plugins/hoster/DepositfilesCom.py index cc24e351e..8559bbc36 100644 --- a/module/plugins/hoster/DepositfilesCom.py +++ b/module/plugins/hoster/DepositfilesCom.py @@ -1,8 +1,7 @@  # -*- coding: utf-8 -*-  import re - -from urllib import unquote +import urllib  from module.plugins.internal.CaptchaService import ReCaptcha  from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo @@ -67,7 +66,7 @@ class DepositfilesCom(SimpleHoster):          m = re.search(self.LINK_FREE_PATTERN, self.html)          if m: -            self.link = unquote(m.group(1)) +            self.link = urllib.unquote(m.group(1))      def handlePremium(self, pyfile): diff --git a/module/plugins/hoster/FastixRu.py b/module/plugins/hoster/FastixRu.py index 0dc12568d..cc50f4229 100644 --- a/module/plugins/hoster/FastixRu.py +++ b/module/plugins/hoster/FastixRu.py @@ -1,9 +1,7 @@  # -*- coding: utf-8 -*-  import re - -from random import randrange -from urllib import unquote +import urllib  from module.common.json_layer import json_loads  from module.plugins.internal.MultiHoster import MultiHoster, create_getInfo diff --git a/module/plugins/hoster/FastshareCz.py b/module/plugins/hoster/FastshareCz.py index cede2e906..330a6e3b9 100644 --- a/module/plugins/hoster/FastshareCz.py +++ b/module/plugins/hoster/FastshareCz.py @@ -1,8 +1,7 @@  # -*- coding: utf-8 -*-  import re - -from urlparse import urljoin +import urlparse  from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo @@ -55,8 +54,8 @@ class FastshareCz(SimpleHoster):              self.error(_("FREE_URL_PATTERN not found"))          baseurl = "http://www.fastshare.cz" -        captcha = self.decryptCaptcha(urljoin(baseurl, captcha_src)) -        self.download(urljoin(baseurl, action), post={'code': captcha, 'btn.x': 77, 'btn.y': 18}) +        captcha = self.decryptCaptcha(urlparse.urljoin(baseurl, captcha_src)) +        self.download(urlparse.urljoin(baseurl, action), post={'code': captcha, 'btn.x': 77, 'btn.y': 18})      def checkFile(self, rules={}): diff --git a/module/plugins/hoster/FileSharkPl.py b/module/plugins/hoster/FileSharkPl.py index 9f6070806..de030be9c 100644 --- a/module/plugins/hoster/FileSharkPl.py +++ b/module/plugins/hoster/FileSharkPl.py @@ -1,8 +1,7 @@  # -*- coding: utf-8 -*-  import re - -from urlparse import urljoin +import urlparse  from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo @@ -78,7 +77,7 @@ class FileSharkPl(SimpleHoster):          if m is None:              self.error(_("Download url not found")) -        link = urljoin("http://fileshark.pl", m.group(1)) +        link = urlparse.urljoin("http://fileshark.pl", m.group(1))          self.html = self.load(link) diff --git a/module/plugins/hoster/FilefactoryCom.py b/module/plugins/hoster/FilefactoryCom.py index 606fb25f0..0a9d5e2cc 100644 --- a/module/plugins/hoster/FilefactoryCom.py +++ b/module/plugins/hoster/FilefactoryCom.py @@ -1,8 +1,7 @@  # -*- coding: utf-8 -*-  import re - -from urlparse import urljoin +import urlparse  from module.network.RequestFactory import getURL  from module.plugins.internal.SimpleHoster import SimpleHoster, parseFileInfo diff --git a/module/plugins/hoster/FilerNet.py b/module/plugins/hoster/FilerNet.py index 22ca3725a..156392c79 100644 --- a/module/plugins/hoster/FilerNet.py +++ b/module/plugins/hoster/FilerNet.py @@ -6,8 +6,7 @@  import pycurl  import re - -from urlparse import urljoin +import urlparse  from module.plugins.internal.CaptchaService import ReCaptcha  from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo diff --git a/module/plugins/hoster/FlyFilesNet.py b/module/plugins/hoster/FlyFilesNet.py index 4420d5d60..689eb3c66 100644 --- a/module/plugins/hoster/FlyFilesNet.py +++ b/module/plugins/hoster/FlyFilesNet.py @@ -1,8 +1,7 @@  # -*- coding: utf-8 -*-  import re - -from urllib import unquote +import urllib  from module.network.RequestFactory import getURL  from module.plugins.internal.SimpleHoster import SimpleHoster @@ -26,7 +25,7 @@ class FlyFilesNet(SimpleHoster):      def process(self, pyfile):          name = re.search(self.NAME_PATTERN, pyfile.url).group(1) -        pyfile.name = unquote_plus(name) +        pyfile.name = urllib.unquote_plus(name)          session = re.search(self.SESSION_PATTERN, pyfile.url).group(1) diff --git a/module/plugins/hoster/FshareVn.py b/module/plugins/hoster/FshareVn.py index 77d122e8e..50128db10 100644 --- a/module/plugins/hoster/FshareVn.py +++ b/module/plugins/hoster/FshareVn.py @@ -2,8 +2,7 @@  import re  import time - -from urlparse import urljoin +import urlparse  from module.network.RequestFactory import getURL  from module.plugins.internal.SimpleHoster import SimpleHoster, parseFileInfo @@ -59,7 +58,7 @@ class FshareVn(SimpleHoster):          self.checkErrors()          action, inputs = self.parseHtmlForm('frm_download') -        url = urljoin(pyfile.url, action) +        url = urlparse.urljoin(pyfile.url, action)          if not inputs:              self.error(_("No FORM")) diff --git a/module/plugins/hoster/Ftp.py b/module/plugins/hoster/Ftp.py index 5be380078..5258a1c27 100644 --- a/module/plugins/hoster/Ftp.py +++ b/module/plugins/hoster/Ftp.py @@ -2,9 +2,8 @@  import pycurl  import re - -from urllib import quote, unquote -from urlparse import urlparse +import urllib +import urlparse  from module.plugins.Hoster import Hoster @@ -29,12 +28,12 @@ class Ftp(Hoster):      def process(self, pyfile): -        parsed_url = urlparse(pyfile.url) +        parsed_url = urlparse.urlparse(pyfile.url)          netloc = parsed_url.netloc          pyfile.name = parsed_url.path.rpartition('/')[2]          try: -            pyfile.name = unquote(str(pyfile.name)).decode('utf8') +            pyfile.name = urllib.unquote(str(pyfile.name)).decode('utf8')          except Exception:              pass @@ -67,11 +66,11 @@ class Ftp(Hoster):              #Naive ftp directory listing              if re.search(r'^25\d.*?"', self.req.http.header, re.M):                  pyfile.url = pyfile.url.rstrip('/') -                pkgname = "/".join(pyfile.package().name, urlparse(pyfile.url).path.rpartition('/')[2]) +                pkgname = "/".join(pyfile.package().name, urlparse.urlparse(pyfile.url).path.rpartition('/')[2])                  pyfile.url += '/'                  self.req.http.c.setopt(48, 1)  # CURLOPT_DIRLISTONLY                  res = self.load(pyfile.url, decode=False) -                links = [pyfile.url + quote(x) for x in res.splitlines()] +                links = [pyfile.url + urllib.quote(x) for x in res.splitlines()]                  self.logDebug("LINKS", links)                  self.core.api.addPackage(pkgname, links)              else: diff --git a/module/plugins/hoster/GigapetaCom.py b/module/plugins/hoster/GigapetaCom.py index 2fe44ca85..e4d0601fc 100644 --- a/module/plugins/hoster/GigapetaCom.py +++ b/module/plugins/hoster/GigapetaCom.py @@ -1,10 +1,9 @@  # -*- coding: utf-8 -*- +import pycurl +import random  import re -from pycurl import FOLLOWLOCATION -from random import randint -  from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo @@ -29,10 +28,10 @@ class GigapetaCom(SimpleHoster):      def handleFree(self, pyfile): -        captcha_key = str(randint(1, 100000000)) +        captcha_key = str(random.randint(1, 100000000))          captcha_url = "http://gigapeta.com/img/captcha.gif?x=%s" % captcha_key -        self.req.http.c.setopt(FOLLOWLOCATION, 0) +        self.req.http.c.setopt(pycurl.FOLLOWLOCATION, 0)          for _i in xrange(5):              self.checkErrors() @@ -52,7 +51,7 @@ class GigapetaCom(SimpleHoster):          else:              self.fail(_("No valid captcha code entered")) -        self.req.http.c.setopt(FOLLOWLOCATION, 1) +        self.req.http.c.setopt(pycurl.FOLLOWLOCATION, 1)      def checkErrors(self): diff --git a/module/plugins/hoster/HellshareCz.py b/module/plugins/hoster/HellshareCz.py index 2e156c464..ac0043b37 100644 --- a/module/plugins/hoster/HellshareCz.py +++ b/module/plugins/hoster/HellshareCz.py @@ -1,6 +1,6 @@  # -*- coding: utf-8 -*- -from urlparse import urljoin +import urlparse  from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo diff --git a/module/plugins/hoster/Keep2ShareCc.py b/module/plugins/hoster/Keep2ShareCc.py index 65e9ddc2d..fdae65096 100644 --- a/module/plugins/hoster/Keep2ShareCc.py +++ b/module/plugins/hoster/Keep2ShareCc.py @@ -1,8 +1,7 @@  # -*- coding: utf-8 -*-  import re - -from urlparse import urljoin +import urlparse  from module.plugins.internal.CaptchaService import ReCaptcha  from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo @@ -100,7 +99,7 @@ class Keep2ShareCc(SimpleHoster):          m = re.search(self.CAPTCHA_PATTERN, self.html)          self.logDebug("CAPTCHA_PATTERN found %s" % m)          if m: -            captcha_url = urljoin("http://keep2s.cc/", m.group(1)) +            captcha_url = urlparse.urljoin("http://keep2s.cc/", m.group(1))              post_data['CaptchaForm[code]'] = self.decryptCaptcha(captcha_url)          else:              recaptcha = ReCaptcha(self) diff --git a/module/plugins/hoster/LetitbitNet.py b/module/plugins/hoster/LetitbitNet.py index 79dbd8133..40d792e11 100644 --- a/module/plugins/hoster/LetitbitNet.py +++ b/module/plugins/hoster/LetitbitNet.py @@ -7,8 +7,7 @@  # http://letitbit.net/download/07874.0b5709a7d3beee2408bb1f2eefce/random.bin.html  import re - -from urlparse import urljoin +import urlparse  from module.common.json_layer import json_loads, json_dumps  from module.network.RequestFactory import getURL @@ -66,7 +65,7 @@ class LetitbitNet(SimpleHoster):          self.logDebug(action, inputs)          inputs['desc'] = "" -        self.html = self.load(urljoin("http://letitbit.net/", action), post=inputs) +        self.html = self.load(urlparse.urljoin("http://letitbit.net/", action), post=inputs)          m = re.search(self.SECONDS_PATTERN, self.html)          seconds = int(m.group(1)) if m else 60 diff --git a/module/plugins/hoster/LinksnappyCom.py b/module/plugins/hoster/LinksnappyCom.py index 87207ab40..9c3af4ae3 100644 --- a/module/plugins/hoster/LinksnappyCom.py +++ b/module/plugins/hoster/LinksnappyCom.py @@ -1,8 +1,7 @@  # -*- coding: utf-8 -*-  import re - -from urlparse import urlsplit +import urlparse  from module.common.json_layer import json_loads, json_dumps  from module.plugins.internal.MultiHoster import MultiHoster, create_getInfo @@ -52,7 +51,7 @@ class LinksnappyCom(MultiHoster):      @staticmethod      def _get_host(url): -        host = urlsplit(url).netloc +        host = urlparse.urlsplit(url).netloc          return re.search(r'[\w-]+\.\w+$', host).group(0) diff --git a/module/plugins/hoster/MegaCoNz.py b/module/plugins/hoster/MegaCoNz.py index 37ac12b44..aa7755af4 100644 --- a/module/plugins/hoster/MegaCoNz.py +++ b/module/plugins/hoster/MegaCoNz.py @@ -1,15 +1,15 @@  # -*- coding: utf-8 -*- +import array  import os +# import pycurl  import random  import re -from array import array  from base64 import standard_b64decode  from Crypto.Cipher import AES  from Crypto.Util import Counter -# from pycurl import SSL_CIPHER_LIST  from module.common.json_layer import json_loads, json_dumps  from module.plugins.Hoster import Hoster @@ -69,10 +69,10 @@ class MegaCoNz(Hoster):      def getCipherKey(self, key):          """ Construct the cipher key from the given data """ -        a = array("I", self.b64_decode(key)) +        a = array.array("I", self.b64_decode(key)) -        k        = array("I", (a[0] ^ a[4], a[1] ^ a[5], a[2] ^ a[6], a[3] ^ a[7])) -        iv       = a[4:6] + array("I", (0, 0)) +        k        = array.array("I", (a[0] ^ a[4], a[1] ^ a[5], a[2] ^ a[6], a[3] ^ a[7])) +        iv       = a[4:6] + array.array("I", (0, 0))          meta_mac = a[6:8]          return k, iv, meta_mac @@ -82,7 +82,7 @@ class MegaCoNz(Hoster):          """ Dispatch a call to the api, see https://mega.co.nz/#developers """          # generate a session id, no idea where to obtain elsewhere -        uid = random.randint(10 << 9, 10 ** 10) +        uid = random.random.randint(10 << 9, 10 ** 10)          res = self.load(self.API_URL, get={'id': uid}, post=json_dumps([kwargs]))          self.logDebug("Api Response: " + res) @@ -145,7 +145,7 @@ class MegaCoNz(Hoster):                  # block = chunk[i:i+16]                  # if len(block) % 16:                      # block += '=' * (16 - (len(block) % 16)) -                # block = array("I", block) +                # block = array.array("I", block)                  # chunk_mac = [chunk_mac[0] ^ a_[0], chunk_mac[1] ^ block[1], chunk_mac[2] ^ block[2], chunk_mac[3] ^ block[3]]                  # chunk_mac = aes_cbc_encrypt_a32(chunk_mac, k) @@ -207,7 +207,7 @@ class MegaCoNz(Hoster):          pyfile.name = attr['n'] + self.FILE_SUFFIX          pyfile.size = mega['s'] -        # self.req.http.c.setopt(SSL_CIPHER_LIST, "RC4-MD5:DEFAULT") +        # self.req.http.c.setopt(pycurl.SSL_CIPHER_LIST, "RC4-MD5:DEFAULT")          self.download(mega['g']) diff --git a/module/plugins/hoster/MegaDebridEu.py b/module/plugins/hoster/MegaDebridEu.py index 3a8d8b080..9c8cc2a90 100644 --- a/module/plugins/hoster/MegaDebridEu.py +++ b/module/plugins/hoster/MegaDebridEu.py @@ -1,8 +1,7 @@  # -*- coding: utf-8 -*-  import re - -from urllib import unquote_plus +import urllib  from module.common.json_layer import json_loads  from module.plugins.internal.MultiHoster import MultiHoster, create_getInfo diff --git a/module/plugins/hoster/MegaRapidCz.py b/module/plugins/hoster/MegaRapidCz.py index 577a3d511..59fb8251e 100644 --- a/module/plugins/hoster/MegaRapidCz.py +++ b/module/plugins/hoster/MegaRapidCz.py @@ -1,9 +1,8 @@  # -*- coding: utf-8 -*- +import pycurl  import re -from pycurl import HTTPHEADER -  from module.network.HTTPRequest import BadHeader  from module.network.RequestFactory import getRequest  from module.plugins.internal.SimpleHoster import SimpleHoster, parseFileInfo @@ -11,7 +10,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, parseFileInfo  def getInfo(urls):      h = getRequest() -    h.c.setopt(HTTPHEADER, +    h.c.setopt(pycurl.HTTPHEADER,                 ["Accept: text/html",                  "User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0"]) diff --git a/module/plugins/hoster/MegaRapidoNet.py b/module/plugins/hoster/MegaRapidoNet.py index b5bd7f3f2..a3b4c72ba 100644 --- a/module/plugins/hoster/MegaRapidoNet.py +++ b/module/plugins/hoster/MegaRapidoNet.py @@ -1,6 +1,6 @@  # -*- coding: utf-8 -*- -from random import randint +import random  from module.plugins.internal.MultiHoster import MultiHoster @@ -9,7 +9,7 @@ def random_with_N_digits(n):      rand = "0."      not_zero = 0      for i in range(1, n + 1): -        r = randint(0, 9) +        r = random.randint(0, 9)          if(r > 0):              not_zero += 1          rand += str(r) diff --git a/module/plugins/hoster/MultishareCz.py b/module/plugins/hoster/MultishareCz.py index 5dc53ecbc..bbb77f525 100644 --- a/module/plugins/hoster/MultishareCz.py +++ b/module/plugins/hoster/MultishareCz.py @@ -1,9 +1,8 @@  # -*- coding: utf-8 -*- +import random  import re -from random import random -  from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo @@ -45,7 +44,7 @@ class MultishareCz(SimpleHoster):          if not self.checkTrafficLeft():              self.fail(_("Not enough credit left to download file")) -        self.download("http://dl%d.mms.multishare.cz/html/mms_process.php" % round(random() * 10000 * random()), +        self.download("http://dl%d.mms.multishare.cz/html/mms_process.php" % round(random.random() * 10000 * random.random()),                        get={'u_ID'  : self.acc_info['u_ID'],                             'u_hash': self.acc_info['u_hash'],                             'link'  : pyfile.url}, diff --git a/module/plugins/hoster/NarodRu.py b/module/plugins/hoster/NarodRu.py index 65ad90d17..b7380add0 100644 --- a/module/plugins/hoster/NarodRu.py +++ b/module/plugins/hoster/NarodRu.py @@ -1,9 +1,8 @@  # -*- coding: utf-8 -*- +import random  import re -from random import random -  from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo @@ -34,7 +33,7 @@ class NarodRu(SimpleHoster):      def handleFree(self, pyfile):          for _i in xrange(5): -            self.html = self.load('http://narod.ru/disk/getcapchaxml/?rnd=%d' % int(random() * 777)) +            self.html = self.load('http://narod.ru/disk/getcapchaxml/?rnd=%d' % int(random.random() * 777))              m = re.search(self.CAPTCHA_PATTERN, self.html)              if m is None: diff --git a/module/plugins/hoster/NetloadIn.py b/module/plugins/hoster/NetloadIn.py index 57af3f18e..cab7bd88f 100644 --- a/module/plugins/hoster/NetloadIn.py +++ b/module/plugins/hoster/NetloadIn.py @@ -2,8 +2,7 @@  import re  import time - -from urlparse import urljoin +import urlparse  from module.network.RequestFactory import getURL  from module.plugins.Hoster import Hoster @@ -230,7 +229,7 @@ class NetloadIn(Hoster):                  page = None              else: -                url_captcha_html = urljoin("http://netload.in/", url_captcha_html) +                url_captcha_html = urlparse.urljoin("http://netload.in/", url_captcha_html)                  break          self.html = self.load(url_captcha_html) diff --git a/module/plugins/hoster/OverLoadMe.py b/module/plugins/hoster/OverLoadMe.py index 934de5746..d06baa0f5 100644 --- a/module/plugins/hoster/OverLoadMe.py +++ b/module/plugins/hoster/OverLoadMe.py @@ -1,9 +1,7 @@  # -*- coding: utf-8 -*-  import re - -from random import randrange -from urllib import unquote +import urllib  from module.common.json_layer import json_loads  from module.plugins.internal.MultiHoster import MultiHoster, create_getInfo diff --git a/module/plugins/hoster/PremiumTo.py b/module/plugins/hoster/PremiumTo.py index f48f68e1b..ab5016673 100644 --- a/module/plugins/hoster/PremiumTo.py +++ b/module/plugins/hoster/PremiumTo.py @@ -2,7 +2,7 @@  from __future__ import with_statement -from os import remove +import os  from module.plugins.internal.MultiHoster import MultiHoster, create_getInfo  from module.utils import fs_encode @@ -45,7 +45,7 @@ class PremiumTo(MultiHoster):              file = fs_encode(self.lastDownload)              with open(file, "rb") as f:                  err = f.read(256).strip() -            remove(file) +            os.remove(file)          if err:              self.fail(err) diff --git a/module/plugins/hoster/QuickshareCz.py b/module/plugins/hoster/QuickshareCz.py index 893c3b6c7..1e0750b88 100644 --- a/module/plugins/hoster/QuickshareCz.py +++ b/module/plugins/hoster/QuickshareCz.py @@ -1,9 +1,8 @@  # -*- coding: utf-8 -*- +import pycurl  import re -from pycurl import FOLLOWLOCATION -  from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo @@ -60,10 +59,10 @@ class QuickshareCz(SimpleHoster):          data = dict((x, self.jsvars[x]) for x in self.jsvars if x in ("ID1", "ID2", "ID3", "ID4"))          self.logDebug("FREE URL1:" + download_url, data) -        self.req.http.c.setopt(FOLLOWLOCATION, 0) +        self.req.http.c.setopt(pycurl.FOLLOWLOCATION, 0)          self.load(download_url, post=data)          self.header = self.req.http.header -        self.req.http.c.setopt(FOLLOWLOCATION, 1) +        self.req.http.c.setopt(pycurl.FOLLOWLOCATION, 1)          m = re.search(r'Location\s*:\s*(.+)', self.header, re.I)          if m is None: diff --git a/module/plugins/hoster/RapidgatorNet.py b/module/plugins/hoster/RapidgatorNet.py index 2626ec925..ae74e8a63 100644 --- a/module/plugins/hoster/RapidgatorNet.py +++ b/module/plugins/hoster/RapidgatorNet.py @@ -1,9 +1,8 @@  # -*- coding: utf-8 -*- +import pycurl  import re -from pycurl import HTTPHEADER -  from module.common.json_layer import json_loads  from module.network.HTTPRequest import BadHeader  from module.plugins.internal.CaptchaService import AdsCaptcha, ReCaptcha, SolveMedia @@ -102,7 +101,7 @@ class RapidgatorNet(SimpleHoster):          self.logDebug(jsvars)          self.req.http.lastURL = pyfile.url -        self.req.http.c.setopt(HTTPHEADER, ["X-Requested-With: XMLHttpRequest"]) +        self.req.http.c.setopt(pycurl.HTTPHEADER, ["X-Requested-With: XMLHttpRequest"])          url = "http://rapidgator.net%s?fid=%s" % (              jsvars.get('startTimerUrl', '/download/AjaxStartTimer'), jsvars['fid']) @@ -115,7 +114,7 @@ class RapidgatorNet(SimpleHoster):          jsvars.update(self.getJsonResponse(url))          self.req.http.lastURL = pyfile.url -        self.req.http.c.setopt(HTTPHEADER, ["X-Requested-With:"]) +        self.req.http.c.setopt(pycurl.HTTPHEADER, ["X-Requested-With:"])          url = "http://rapidgator.net%s" % jsvars.get('captchaUrl', '/download/captcha')          self.html = self.load(url) diff --git a/module/plugins/hoster/RapiduNet.py b/module/plugins/hoster/RapiduNet.py index 8a85bc844..fcccbbebc 100644 --- a/module/plugins/hoster/RapiduNet.py +++ b/module/plugins/hoster/RapiduNet.py @@ -1,10 +1,9 @@  # -*- coding: utf-8 -*- +import pycurl  import re  import time -from pycurl import HTTPHEADER -  from module.common.json_layer import json_loads  from module.plugins.internal.CaptchaService import ReCaptcha  from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo @@ -40,7 +39,7 @@ class RapiduNet(SimpleHoster):      def handleFree(self, pyfile):          self.req.http.lastURL = pyfile.url -        self.req.http.c.setopt(HTTPHEADER, ["X-Requested-With: XMLHttpRequest"]) +        self.req.http.c.setopt(pycurl.HTTPHEADER, ["X-Requested-With: XMLHttpRequest"])          jsvars = self.getJsonResponse("https://rapidu.net/ajax.php",                                        get={'a': "getLoadTimeToDownload"}, diff --git a/module/plugins/hoster/RealdebridCom.py b/module/plugins/hoster/RealdebridCom.py index f35eb5e03..4500fcefc 100644 --- a/module/plugins/hoster/RealdebridCom.py +++ b/module/plugins/hoster/RealdebridCom.py @@ -2,9 +2,7 @@  import re  import time - -from random import randrange -from urllib import unquote +import urllib  from module.common.json_layer import json_loads  from module.plugins.internal.MultiHoster import MultiHoster, create_getInfo diff --git a/module/plugins/hoster/RehostTo.py b/module/plugins/hoster/RehostTo.py index 1c53fbc92..9c07364ec 100644 --- a/module/plugins/hoster/RehostTo.py +++ b/module/plugins/hoster/RehostTo.py @@ -1,6 +1,6 @@  # -*- coding: utf-8 -*- -from urllib import unquote +import urllib  from module.plugins.internal.MultiHoster import MultiHoster, create_getInfo diff --git a/module/plugins/hoster/ShareonlineBiz.py b/module/plugins/hoster/ShareonlineBiz.py index fea5781fe..505222fce 100644 --- a/module/plugins/hoster/ShareonlineBiz.py +++ b/module/plugins/hoster/ShareonlineBiz.py @@ -2,9 +2,8 @@  import re  import time - -from urllib import unquote -from urlparse import urlparse +import urllib +import urlparse  from module.network.RequestFactory import getURL  from module.plugins.internal.CaptchaService import ReCaptcha @@ -38,7 +37,7 @@ class ShareonlineBiz(SimpleHoster):      @classmethod      def getInfo(cls, url="", html=""): -        info = {'name': urlparse(unquote(url)).path.split('/')[-1] or _("Unknown"), 'size': 0, 'status': 3 if url else 1, 'url': url} +        info = {'name': urlparse.urlparse(urllib.unquote(url)).path.split('/')[-1] or _("Unknown"), 'size': 0, 'status': 3 if url else 1, 'url': url}          if url:              info['pattern'] = re.match(cls.__pattern__, url).groupdict() diff --git a/module/plugins/hoster/ShareplaceCom.py b/module/plugins/hoster/ShareplaceCom.py index c540dd2df..babd0d1d4 100644 --- a/module/plugins/hoster/ShareplaceCom.py +++ b/module/plugins/hoster/ShareplaceCom.py @@ -1,8 +1,7 @@  # -*- coding: utf-8 -*-  import re - -from urllib import unquote +import urllib  from module.plugins.Hoster import Hoster @@ -61,7 +60,7 @@ class ShareplaceCom(Hoster):          url = re.search(r"var beer = '(.*?)';", self.html)          if url:              url = url.group(1) -            url = unquote( +            url = urllib.unquote(                  url.replace("http://http:/", "").replace("vvvvvvvvv", "").replace("lllllllll", "").replace(                      "teletubbies", ""))              self.logDebug("URL: %s" % url) diff --git a/module/plugins/hoster/SpeedyshareCom.py b/module/plugins/hoster/SpeedyshareCom.py index 1649abbe6..91788b2c8 100644 --- a/module/plugins/hoster/SpeedyshareCom.py +++ b/module/plugins/hoster/SpeedyshareCom.py @@ -4,8 +4,7 @@  # http://speedy.sh/ep2qY/Zapp-Brannigan.jpg  import re - -from urlparse import urljoin +import urlparse  from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo diff --git a/module/plugins/hoster/TurbobitNet.py b/module/plugins/hoster/TurbobitNet.py index f4eaa90cc..7995bd0c0 100644 --- a/module/plugins/hoster/TurbobitNet.py +++ b/module/plugins/hoster/TurbobitNet.py @@ -1,13 +1,13 @@  # -*- coding: utf-8 -*- +import binascii +import pycurl  import random  import re  import time +import urllib  from Crypto.Cipher import ARC4 -from binascii import hexlify, unhexlify -from pycurl import HTTPHEADER -from urllib import quote  from module.network.RequestFactory import getURL  from module.plugins.internal.CaptchaService import ReCaptcha @@ -50,11 +50,11 @@ class TurbobitNet(SimpleHoster):          self.solveCaptcha() -        self.req.http.c.setopt(HTTPHEADER, ["X-Requested-With: XMLHttpRequest"]) +        self.req.http.c.setopt(pycurl.HTTPHEADER, ["X-Requested-With: XMLHttpRequest"])          self.html = self.load(self.getDownloadUrl(rtUpdate)) -        self.req.http.c.setopt(HTTPHEADER, ["X-Requested-With:"]) +        self.req.http.c.setopt(pycurl.HTTPHEADER, ["X-Requested-With:"])          m = re.search(self.LINK_FREE_PATTERN, self.html)          if m: @@ -134,7 +134,7 @@ class TurbobitNet(SimpleHoster):          for b in [1, 3]:              self.jscode = "var id = \'%s\';var b = %d;var inn = \'%s\';%sout" % ( -                          self.info['pattern']['ID'], b, quote(fun), rtUpdate) +                          self.info['pattern']['ID'], b, urllib.quote(fun), rtUpdate)              try:                  out = self.js.eval(self.jscode) @@ -155,8 +155,8 @@ class TurbobitNet(SimpleHoster):      def decrypt(self, data): -        cipher = ARC4.new(hexlify('E\x15\xa1\x9e\xa3M\xa0\xc6\xa0\x84\xb6H\x83\xa8o\xa0')) -        return unhexlify(cipher.encrypt(unhexlify(data))) +        cipher = ARC4.new(binascii.hexlify('E\x15\xa1\x9e\xa3M\xa0\xc6\xa0\x84\xb6H\x83\xa8o\xa0')) +        return binascii.unhexlify(cipher.encrypt(binascii.unhexlify(data)))      def getLocalTimeString(self): diff --git a/module/plugins/hoster/UnibytesCom.py b/module/plugins/hoster/UnibytesCom.py index 14447b0b0..d090c8e7d 100644 --- a/module/plugins/hoster/UnibytesCom.py +++ b/module/plugins/hoster/UnibytesCom.py @@ -1,10 +1,8 @@  # -*- coding: utf-8 -*- +import pycurl  import re - -from urlparse import urljoin - -from pycurl import FOLLOWLOCATION +import urlparse  from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo @@ -34,11 +32,11 @@ class UnibytesCom(SimpleHoster):          domain            = "http://www.%s/" % self.HOSTER_DOMAIN          action, post_data = self.parseHtmlForm('id="startForm"') -        self.req.http.c.setopt(FOLLOWLOCATION, 0) +        self.req.http.c.setopt(pycurl.FOLLOWLOCATION, 0)          for _i in xrange(8):              self.logDebug(action, post_data) -            self.html = self.load(urljoin(domain, action), post=post_data) +            self.html = self.load(urlparse.urljoin(domain, action), post=post_data)              m = re.search(r'location:\s*(\S+)', self.req.http.header, re.I)              if m: @@ -66,12 +64,12 @@ class UnibytesCom(SimpleHoster):                  self.wait(m.group(1) if m else 60, False)              elif last_step in ("captcha", "last"): -                post_data['captcha'] = self.decryptCaptcha(urljoin(domain, "/captcha.jpg")) +                post_data['captcha'] = self.decryptCaptcha(urlparse.urljoin(domain, "/captcha.jpg"))          else:              self.fail(_("No valid captcha code entered")) -        self.req.http.c.setopt(FOLLOWLOCATION, 1) +        self.req.http.c.setopt(pycurl.FOLLOWLOCATION, 1)  getInfo = create_getInfo(UnibytesCom) diff --git a/module/plugins/hoster/UpleaCom.py b/module/plugins/hoster/UpleaCom.py index 4538b1c16..9d460ef98 100644 --- a/module/plugins/hoster/UpleaCom.py +++ b/module/plugins/hoster/UpleaCom.py @@ -1,8 +1,7 @@  # -*- coding: utf-8 -*-  import re - -from urlparse import urljoin +import urlparse  from module.plugins.internal.XFSHoster import XFSHoster, create_getInfo @@ -48,7 +47,7 @@ class UpleaCom(XFSHoster):          if m is None:              self.error(_("STEP_PATTERN not found")) -        self.html = self.load(urljoin("http://uplea.com/", m.group(1))) +        self.html = self.load(urlparse.urljoin("http://uplea.com/", m.group(1)))          m = re.search(self.WAIT_PATTERN, self.html)          if m: diff --git a/module/plugins/hoster/UploadheroCom.py b/module/plugins/hoster/UploadheroCom.py index 6c8747b58..5c74f10eb 100644 --- a/module/plugins/hoster/UploadheroCom.py +++ b/module/plugins/hoster/UploadheroCom.py @@ -4,8 +4,7 @@  # http://uploadhero.co/dl/wQBRAVSM  import re - -from urlparse import urljoin +import urlparse  from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo @@ -44,7 +43,7 @@ class UploadheroCom(SimpleHoster):          if m is None:              self.error(_("Captcha not found")) -        captcha = self.decryptCaptcha(urljoin("http://uploadhero.co", m.group(1))) +        captcha = self.decryptCaptcha(urlparse.urljoin("http://uploadhero.co", m.group(1)))          self.html = self.load(pyfile.url,                                get={"code": captcha}) @@ -58,7 +57,7 @@ class UploadheroCom(SimpleHoster):      def checkErrors(self):          m = re.search(self.IP_BLOCKED_PATTERN, self.html)          if m: -            self.html = self.load(urljoin("http://uploadhero.co", m.group(1))) +            self.html = self.load(urlparse.urljoin("http://uploadhero.co", m.group(1)))              m = re.search(self.IP_WAIT_PATTERN, self.html)              wait_time = (int(m.group(1)) * 60 + int(m.group(2))) if m else 5 * 60 diff --git a/module/plugins/hoster/UploadingCom.py b/module/plugins/hoster/UploadingCom.py index d0e0b1fd7..c2e0d2873 100644 --- a/module/plugins/hoster/UploadingCom.py +++ b/module/plugins/hoster/UploadingCom.py @@ -1,9 +1,8 @@  # -*- coding: utf-8 -*- +import pycurl  import re -from pycurl import HTTPHEADER -  from module.common.json_layer import json_loads  from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo, timestamp @@ -66,7 +65,7 @@ class UploadingCom(SimpleHoster):              self.retry(6, (6 * 60 if m.group(2) else 15) * 60, pyfile.error)          ajax_url = "http://uploading.com/files/get/?ajax" -        self.req.http.c.setopt(HTTPHEADER, ["X-Requested-With: XMLHttpRequest"]) +        self.req.http.c.setopt(pycurl.HTTPHEADER, ["X-Requested-With: XMLHttpRequest"])          self.req.http.lastURL = pyfile.url          res = json_loads(self.load(ajax_url, post={'action': 'second_page', 'code': self.info['pattern']['ID']})) diff --git a/module/plugins/hoster/WrzucTo.py b/module/plugins/hoster/WrzucTo.py index 50a45babe..f11d03ea8 100644 --- a/module/plugins/hoster/WrzucTo.py +++ b/module/plugins/hoster/WrzucTo.py @@ -1,9 +1,8 @@  # -*- coding: utf-8 -*- +import pycurl  import re -from pycurl import HTTPHEADER -  from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo @@ -35,7 +34,7 @@ class WrzucTo(SimpleHoster):          if len(data) != 2:              self.error(_("No file ID")) -        self.req.http.c.setopt(HTTPHEADER, ["X-Requested-With: XMLHttpRequest"]) +        self.req.http.c.setopt(pycurl.HTTPHEADER, ["X-Requested-With: XMLHttpRequest"])          self.req.http.lastURL = pyfile.url          self.load("http://www.wrzuc.to/ajax/server/prepair", post={"md5": data['md5']}) diff --git a/module/plugins/hoster/XHamsterCom.py b/module/plugins/hoster/XHamsterCom.py index 9004dbac0..a1711cb0e 100644 --- a/module/plugins/hoster/XHamsterCom.py +++ b/module/plugins/hoster/XHamsterCom.py @@ -1,8 +1,7 @@  # -*- coding: utf-8 -*-  import re - -from urllib import unquote +import urllib  from module.common.json_layer import json_loads  from module.plugins.Hoster import Hoster @@ -83,7 +82,7 @@ class XHamsterCom(Hoster):              self.logDebug("long_url = " + long_url)          else:              if flashvars['file']: -                file_url = unquote(flashvars['file']) +                file_url = urllib.unquote(flashvars['file'])              else:                  self.error(_("file_url not found")) diff --git a/module/plugins/hoster/XVideosCom.py b/module/plugins/hoster/XVideosCom.py index 9bb2da424..a8f291824 100644 --- a/module/plugins/hoster/XVideosCom.py +++ b/module/plugins/hoster/XVideosCom.py @@ -1,8 +1,7 @@  # -*- coding: utf-8 -*-  import re - -from urllib import unquote +import urllib  from module.plugins.Hoster import Hoster @@ -25,4 +24,4 @@ class XVideosCom(Hoster):              re.search(r"<h2>([^<]+)<span", site).group(1),              re.match(self.__pattern__, pyfile.url).group(1),          ) -        self.download(unquote(re.search(r"flv_url=([^&]+)&", site).group(1))) +        self.download(urllib.unquote(re.search(r"flv_url=([^&]+)&", site).group(1))) diff --git a/module/plugins/hoster/Xdcc.py b/module/plugins/hoster/Xdcc.py index b77e7c1da..d167e4cab 100644 --- a/module/plugins/hoster/Xdcc.py +++ b/module/plugins/hoster/Xdcc.py @@ -6,8 +6,6 @@ import struct  import sys  import time -from os import makedirs -from os.path import exists, join  from select import select  from module.plugins.Hoster import Hoster diff --git a/module/plugins/hoster/YourfilesTo.py b/module/plugins/hoster/YourfilesTo.py index fd65a6a41..d0316d3ac 100644 --- a/module/plugins/hoster/YourfilesTo.py +++ b/module/plugins/hoster/YourfilesTo.py @@ -1,8 +1,6 @@  # -*- coding: utf-8 -*- -import re - -from urllib import unquote +import reimport urllib  from module.plugins.Hoster import Hoster @@ -62,7 +60,7 @@ class YourfilesTo(Hoster):          url = re.search(r"var bla = '(.*?)';", self.html)          if url:              url = url.group(1) -            url = unquote(url.replace("http://http:/http://", "http://").replace("dumdidum", "")) +            url = urllib.unquote(url.replace("http://http:/http://", "http://").replace("dumdidum", ""))              return url          else:              self.error(_("Absolute filepath not found")) diff --git a/module/plugins/hoster/YoutubeCom.py b/module/plugins/hoster/YoutubeCom.py index 06f135c60..e2ab146a9 100644 --- a/module/plugins/hoster/YoutubeCom.py +++ b/module/plugins/hoster/YoutubeCom.py @@ -2,9 +2,7 @@  import os  import re -import subprocess - -from urllib import unquote +import subprocessimport urllib  from module.plugins.Hoster import Hoster  from module.plugins.internal.SimpleHoster import replace_patterns @@ -117,7 +115,7 @@ class YoutubeCom(Hoster):          streams = re.search(r'"url_encoded_fmt_stream_map":"(.+?)",', html).group(1)          streams = [x.split('\u0026') for x in streams.split(',')]          streams = [dict((y.split('=', 1)) for y in x) for x in streams] -        streams = [(int(x['itag']), unquote(x['url'])) for x in streams] +        streams = [(int(x['itag']), urllib.unquote(x['url'])) for x in streams]          # self.logDebug("Found links: %s" % streams) diff --git a/module/plugins/hoster/ZeveraCom.py b/module/plugins/hoster/ZeveraCom.py index e0362ce36..617e00e58 100644 --- a/module/plugins/hoster/ZeveraCom.py +++ b/module/plugins/hoster/ZeveraCom.py @@ -1,8 +1,7 @@  # -*- coding: utf-8 -*-  import re - -from urlparse import urljoin +import urlparse  from module.plugins.internal.MultiHoster import MultiHoster, create_getInfo diff --git a/module/plugins/internal/CaptchaService.py b/module/plugins/internal/CaptchaService.py index ec938079a..b6afad22a 100644 --- a/module/plugins/internal/CaptchaService.py +++ b/module/plugins/internal/CaptchaService.py @@ -1,11 +1,11 @@  # -*- coding: utf-8 -*- +import random  import re  import time +import urlparse  from base64 import b64encode -from random import random, randint -from urlparse import urljoin, urlparse  from module.common.json_layer import json_loads  from module.plugins.Plugin import Base @@ -155,7 +155,7 @@ class ReCaptcha(CaptchaService):          self.logDebug("Time: %s" % millis) -        rand = randint(1, 99999999) +        rand = random.randint(1, 99999999)          a    = "0.%s" % str(rand * 2147483647)          rpc  = int(100000000 * float(a)) @@ -167,7 +167,7 @@ class ReCaptcha(CaptchaService):      def _challenge_v2(self, key, parent=None):          if parent is None:              try: -                parent = urljoin("http://", urlparse(self.plugin.pyfile.url).netloc) +                parent = urlparse.urljoin("http://", urlparse.urlparse(self.plugin.pyfile.url).netloc)              except Exception:                  parent = "" @@ -214,7 +214,7 @@ class ReCaptcha(CaptchaService):          self.logDebug("Result: %s" % response)          timeToSolve     = int(round(time.time() * 1000)) - millis_captcha_loading -        timeToSolveMore = timeToSolve + int(float("0." + str(randint(1, 99999999))) * 500) +        timeToSolveMore = timeToSolve + int(float("0." + str(random.randint(1, 99999999))) * 500)          html = self.plugin.req.load("https://www.google.com/recaptcha/api2/userverify",                                      post={'k'       : key, @@ -296,7 +296,7 @@ class AdsCaptcha(CaptchaService):      def result(self, server, challenge):          result = self.plugin.decryptCaptcha("%sChallenge.aspx" % server, -                                            get={'cid': challenge, 'dummy': random()}, +                                            get={'cid': challenge, 'dummy': random.random()},                                              cookies=True,                                              imgtype="jpg") diff --git a/module/plugins/internal/SimpleCrypter.py b/module/plugins/internal/SimpleCrypter.py index 892144ef4..09805cf1a 100644 --- a/module/plugins/internal/SimpleCrypter.py +++ b/module/plugins/internal/SimpleCrypter.py @@ -1,8 +1,7 @@  # -*- coding: utf-8 -*-  import re - -from urlparse import urljoin, urlparse +import urlparse  from module.plugins.Crypter import Crypter  from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo, replace_patterns, set_cookies @@ -150,10 +149,10 @@ class SimpleCrypter(Crypter, SimpleHoster):          Returns the links extracted from self.html          You should override this only if it's impossible to extract links using only the LINK_PATTERN.          """ -        url_p   = urlparse(self.pyfile.url) +        url_p   = urlparse.urlparse(self.pyfile.url)          baseurl = "%s://%s" % (url_p.scheme, url_p.netloc) -        return [urljoin(baseurl, link) if not urlparse(link).scheme else link \ +        return [urlparse.urljoin(baseurl, link) if not urlparse.urlparse(link).scheme else link \                  for link in re.findall(self.LINK_PATTERN, self.html)] diff --git a/module/plugins/internal/SimpleDereferer.py b/module/plugins/internal/SimpleDereferer.py index 743a98721..fad1559c7 100644 --- a/module/plugins/internal/SimpleDereferer.py +++ b/module/plugins/internal/SimpleDereferer.py @@ -1,8 +1,7 @@  # -*- coding: utf-8 -*-  import re - -from urllib import unquote +import urllib  from module.plugins.Crypter import Crypter  from module.plugins.internal.SimpleHoster import getFileURL, set_cookies @@ -49,7 +48,7 @@ class SimpleDereferer(Crypter):          if not link:              try: -                link = unquote(re.match(self.__pattern__, pyfile.url).group('LINK')) +                link = urllib.unquote(re.match(self.__pattern__, pyfile.url).group('LINK'))              except Exception:                  self.prepare() diff --git a/module/plugins/internal/XFSAccount.py b/module/plugins/internal/XFSAccount.py index 31d1b7e2f..41e1bde4d 100644 --- a/module/plugins/internal/XFSAccount.py +++ b/module/plugins/internal/XFSAccount.py @@ -2,8 +2,7 @@  import re  import time - -from urlparse import urljoin +import urlparse  from module.plugins.Account import Account  from module.plugins.internal.SimpleHoster import parseHtmlForm, set_cookies @@ -160,7 +159,7 @@ class XFSAccount(Account):              raise Exception(_("Missing HOSTER_DOMAIN"))          if not self.LOGIN_URL: -            self.LOGIN_URL  = urljoin(self.HOSTER_URL, "login.html") +            self.LOGIN_URL  = urlparse.urljoin(self.HOSTER_URL, "login.html")          html = req.load(self.LOGIN_URL, decode=True)          action, inputs = parseHtmlForm('name="FL"', html) diff --git a/module/plugins/internal/XFSHoster.py b/module/plugins/internal/XFSHoster.py index 027e68236..33dc6d16b 100644 --- a/module/plugins/internal/XFSHoster.py +++ b/module/plugins/internal/XFSHoster.py @@ -1,12 +1,9 @@  # -*- coding: utf-8 -*- +import pycurl +import random  import re -import time - -from random import random -from urlparse import urljoin, urlparse - -from pycurl import FOLLOWLOCATION, LOW_SPEED_TIME +import urlparse  from module.plugins.internal.CaptchaService import ReCaptcha, SolveMedia  from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo, secondsToMidnight @@ -101,11 +98,11 @@ class XFSHoster(SimpleHoster):              data = self.getPostParameters() -            self.req.http.c.setopt(FOLLOWLOCATION, 0) +            self.req.http.c.setopt(pycurl.FOLLOWLOCATION, 0)              self.html = self.load(pyfile.url, post=data, decode=True) -            self.req.http.c.setopt(FOLLOWLOCATION, 1) +            self.req.http.c.setopt(pycurl.FOLLOWLOCATION, 1)              m = re.search(r'Location\s*:\s*(.+)', self.req.http.header, re.I)              if m and not "op=" in m.group(1): @@ -134,7 +131,7 @@ class XFSHoster(SimpleHoster):          action, inputs = self.parseHtmlForm() -        upload_id = "%012d" % int(random() * 10 ** 12) +        upload_id = "%012d" % int(random.random() * 10 ** 12)          action += upload_id + "&js_on=1&utype=prem&upload_type=url"          inputs['tos'] = '1' | 
