summaryrefslogtreecommitdiffstats
path: root/module
diff options
context:
space:
mode:
Diffstat (limited to 'module')
-rw-r--r--module/plugins/accounts/FastshareCz.py5
-rw-r--r--module/plugins/accounts/FilecloudIo.py7
-rw-r--r--module/plugins/accounts/FourSharedCom.py5
-rw-r--r--module/plugins/accounts/Keep2ShareCc.py5
-rw-r--r--module/plugins/accounts/ShareonlineBiz.py5
-rw-r--r--module/plugins/accounts/SimplyPremiumCom.py5
-rw-r--r--module/plugins/accounts/TurbobitNet.py5
-rw-r--r--module/plugins/accounts/UploadedTo.py4
-rw-r--r--module/plugins/accounts/XFileSharingPro.py2
-rw-r--r--module/plugins/hooks/AntiStandby.py4
-rw-r--r--module/plugins/internal/Account.py7
-rw-r--r--module/plugins/internal/Hoster.py2
-rw-r--r--module/plugins/internal/MultiHoster.py2
-rw-r--r--module/plugins/internal/Plugin.py22
-rw-r--r--module/plugins/internal/SimpleCrypter.py2
-rw-r--r--module/plugins/internal/SimpleHoster.py6
-rw-r--r--module/plugins/internal/UnRar.py4
-rw-r--r--module/plugins/internal/XFSAccount.py37
18 files changed, 72 insertions, 57 deletions
diff --git a/module/plugins/accounts/FastshareCz.py b/module/plugins/accounts/FastshareCz.py
index 90b746624..3a3769a1c 100644
--- a/module/plugins/accounts/FastshareCz.py
+++ b/module/plugins/accounts/FastshareCz.py
@@ -3,12 +3,13 @@
import re
from module.plugins.internal.Account import Account
+from module.plugins.internal.Plugin import set_cookie
class FastshareCz(Account):
__name__ = "FastshareCz"
__type__ = "account"
- __version__ = "0.08"
+ __version__ = "0.09"
__status__ = "testing"
__description__ = """Fastshare.cz account plugin"""
@@ -39,7 +40,7 @@ class FastshareCz(Account):
def login(self, user, password, data, req):
- req.cj.setCookie("fastshare.cz", "lang", "en")
+ set_cookie(req.cj, "fastshare.cz", "lang", "en")
self.load('http://www.fastshare.cz/login') #@NOTE: Do not remove or it will not login
diff --git a/module/plugins/accounts/FilecloudIo.py b/module/plugins/accounts/FilecloudIo.py
index 56d84e2e4..bdb13bd3d 100644
--- a/module/plugins/accounts/FilecloudIo.py
+++ b/module/plugins/accounts/FilecloudIo.py
@@ -1,13 +1,14 @@
# -*- coding: utf-8 -*-
-from module.plugins.internal.Account import Account
from module.common.json_layer import json_loads
+from module.plugins.internal.Account import Account
+from module.plugins.internal.Plugin import set_cookie
class FilecloudIo(Account):
__name__ = "FilecloudIo"
__type__ = "account"
- __version__ = "0.06"
+ __version__ = "0.07"
__status__ = "testing"
__description__ = """FilecloudIo account plugin"""
@@ -43,7 +44,7 @@ class FilecloudIo(Account):
def login(self, user, password, data, req):
- req.cj.setCookie("secure.filecloud.io", "lang", "en")
+ set_cookie(req.cj, "secure.filecloud.io", "lang", "en")
html = self.load('https://secure.filecloud.io/user-login.html')
if not hasattr(self, "form_data"):
diff --git a/module/plugins/accounts/FourSharedCom.py b/module/plugins/accounts/FourSharedCom.py
index ef2140359..a7ec8e2c5 100644
--- a/module/plugins/accounts/FourSharedCom.py
+++ b/module/plugins/accounts/FourSharedCom.py
@@ -1,12 +1,13 @@
# -*- coding: utf-8 -*-
from module.plugins.internal.Account import Account
+from module.plugins.internal.Plugin import set_cookie
class FourSharedCom(Account):
__name__ = "FourSharedCom"
__type__ = "account"
- __version__ = "0.06"
+ __version__ = "0.07"
__status__ = "testing"
__description__ = """FourShared.com account plugin"""
@@ -21,7 +22,7 @@ class FourSharedCom(Account):
def login(self, user, password, data, req):
- req.cj.setCookie("4shared.com", "4langcookie", "en")
+ set_cookie(req.cj, "4shared.com", "4langcookie", "en")
res = self.load("https://www.4shared.com/web/login",
post={'login' : user,
diff --git a/module/plugins/accounts/Keep2ShareCc.py b/module/plugins/accounts/Keep2ShareCc.py
index a7f8564d9..014d43a69 100644
--- a/module/plugins/accounts/Keep2ShareCc.py
+++ b/module/plugins/accounts/Keep2ShareCc.py
@@ -4,12 +4,13 @@ import re
import time
from module.plugins.internal.Account import Account
+from module.plugins.internal.Plugin import set_cookie
class Keep2ShareCc(Account):
__name__ = "Keep2ShareCc"
__type__ = "account"
- __version__ = "0.07"
+ __version__ = "0.08"
__status__ = "testing"
__description__ = """Keep2Share.cc account plugin"""
@@ -61,7 +62,7 @@ class Keep2ShareCc(Account):
def login(self, user, password, data, req):
- req.cj.setCookie("keep2share.cc", "lang", "en")
+ set_cookie(req.cj, "keep2share.cc", "lang", "en")
html = self.load("https://keep2share.cc/login.html",
post={'LoginForm[username]' : user,
diff --git a/module/plugins/accounts/ShareonlineBiz.py b/module/plugins/accounts/ShareonlineBiz.py
index 28b2b0c68..87bbc4632 100644
--- a/module/plugins/accounts/ShareonlineBiz.py
+++ b/module/plugins/accounts/ShareonlineBiz.py
@@ -3,12 +3,13 @@
import re
from module.plugins.internal.Account import Account
+from module.plugins.internal.Plugin import set_cookie
class ShareonlineBiz(Account):
__name__ = "ShareonlineBiz"
__type__ = "account"
- __version__ = "0.38"
+ __version__ = "0.39"
__status__ = "testing"
__description__ = """Share-online.biz account plugin"""
@@ -65,4 +66,4 @@ class ShareonlineBiz(Account):
def login(self, user, password, data, req):
api = self.api_response(user, password, req)
- req.cj.setCookie("share-online.biz", 'a', api['a'])
+ set_cookie(req.cj, "share-online.biz", 'a', api['a'])
diff --git a/module/plugins/accounts/SimplyPremiumCom.py b/module/plugins/accounts/SimplyPremiumCom.py
index f8b5ff50b..a5c69f51c 100644
--- a/module/plugins/accounts/SimplyPremiumCom.py
+++ b/module/plugins/accounts/SimplyPremiumCom.py
@@ -2,12 +2,13 @@
from module.common.json_layer import json_loads
from module.plugins.internal.Account import Account
+from module.plugins.internal.Plugin import set_cookie
class SimplyPremiumCom(Account):
__name__ = "SimplyPremiumCom"
__type__ = "account"
- __version__ = "0.07"
+ __version__ = "0.08"
__status__ = "testing"
__description__ = """Simply-Premium.com account plugin"""
@@ -39,7 +40,7 @@ class SimplyPremiumCom(Account):
def login(self, user, password, data, req):
- req.cj.setCookie("simply-premium.com", "lang", "EN")
+ set_cookie(req.cj, "simply-premium.com", "lang", "EN")
html = self.load("https://www.simply-premium.com/login.php",
post={'key': user} if not password else {'login_name': user, 'login_pass': password})
diff --git a/module/plugins/accounts/TurbobitNet.py b/module/plugins/accounts/TurbobitNet.py
index 9dd3e4d3c..206e7874f 100644
--- a/module/plugins/accounts/TurbobitNet.py
+++ b/module/plugins/accounts/TurbobitNet.py
@@ -4,12 +4,13 @@ import re
import time
from module.plugins.internal.Account import Account
+from module.plugins.internal.Plugin import set_cookie
class TurbobitNet(Account):
__name__ = "TurbobitNet"
__type__ = "account"
- __version__ = "0.04"
+ __version__ = "0.05"
__status__ = "testing"
__description__ = """TurbobitNet account plugin"""
@@ -32,7 +33,7 @@ class TurbobitNet(Account):
def login(self, user, password, data, req):
- req.cj.setCookie("turbobit.net", "user_lang", "en")
+ set_cookie(req.cj, "turbobit.net", "user_lang", "en")
html = self.load("http://turbobit.net/user/login",
post={"user[login]" : user,
diff --git a/module/plugins/accounts/UploadedTo.py b/module/plugins/accounts/UploadedTo.py
index 1757f2af8..09e891c19 100644
--- a/module/plugins/accounts/UploadedTo.py
+++ b/module/plugins/accounts/UploadedTo.py
@@ -9,7 +9,7 @@ from module.plugins.internal.Account import Account
class UploadedTo(Account):
__name__ = "UploadedTo"
__type__ = "account"
- __version__ = "0.33"
+ __version__ = "0.34"
__status__ = "testing"
__description__ = """Uploaded.to account plugin"""
@@ -62,7 +62,7 @@ class UploadedTo(Account):
def login(self, user, password, data, req):
- #: req.cj.setCookie("uploaded.net", "lang", "en")
+ self.load("http://uploaded.net/language/en")
html = self.load("http://uploaded.net/io/login",
post={'id': user,
diff --git a/module/plugins/accounts/XFileSharingPro.py b/module/plugins/accounts/XFileSharingPro.py
index 7066445b2..f21247cf4 100644
--- a/module/plugins/accounts/XFileSharingPro.py
+++ b/module/plugins/accounts/XFileSharingPro.py
@@ -6,7 +6,7 @@ from module.plugins.internal.XFSAccount import XFSAccount
class XFileSharingPro(XFSAccount):
__name__ = "XFileSharingPro"
__type__ = "account"
- __version__ = "0.08"
+ __version__ = "0.09"
__status__ = "testing"
__description__ = """XFileSharingPro multi-purpose account plugin"""
diff --git a/module/plugins/hooks/AntiStandby.py b/module/plugins/hooks/AntiStandby.py
index 699ecbbde..2d7a165a6 100644
--- a/module/plugins/hooks/AntiStandby.py
+++ b/module/plugins/hooks/AntiStandby.py
@@ -13,7 +13,7 @@ except ImportError:
pass
from module.plugins.internal.Addon import Addon, Expose
-from module.utils import save_join as fs_encode, fs_join
+from module.utils import save_join as fs_join, fs_encode
class Kernel32(object):
@@ -27,7 +27,7 @@ class Kernel32(object):
class AntiStandby(Addon):
__name__ = "AntiStandby"
__type__ = "hook"
- __version__ = "0.10"
+ __version__ = "0.11"
__status__ = "testing"
__config__ = [("activated", "bool", "Activated" , True ),
diff --git a/module/plugins/internal/Account.py b/module/plugins/internal/Account.py
index e9ba5e533..4553f3a79 100644
--- a/module/plugins/internal/Account.py
+++ b/module/plugins/internal/Account.py
@@ -13,13 +13,12 @@ from module.utils import compare_time, lock, parseFileSize as parse_size
class Account(Plugin):
__name__ = "Account"
__type__ = "account"
- __version__ = "0.14"
+ __version__ = "0.15"
__status__ = "testing"
__description__ = """Base account plugin"""
__license__ = "GPLv3"
- __authors__ = [("mkaay" , "mkaay@mkaay.de" ),
- ("Walter Purcaro", "vuolter@gmail.com")]
+ __authors__ = [("Walter Purcaro", "vuolter@gmail.com")]
LOGIN_TIMEOUT = 10 * 60 #: After that time (in minutes) pyload will relogin the account
@@ -141,7 +140,7 @@ class Account(Plugin):
self.relogin(user)
if options:
- before = self.info[user]['data'][user]['options']
+ before = self.info[user]['data']['options']
self.info[user]['data']['options'].update(options)
return self.info[user]['data']['options'] != before
diff --git a/module/plugins/internal/Hoster.py b/module/plugins/internal/Hoster.py
index 67feec38c..87ee2188c 100644
--- a/module/plugins/internal/Hoster.py
+++ b/module/plugins/internal/Hoster.py
@@ -12,7 +12,7 @@ import urlparse
from module.plugins.internal.Captcha import Captcha
from module.plugins.internal.Plugin import (Plugin, Abort, Fail, Reconnect, Retry, Skip,
chunks, encode, exists, fixurl as _fixurl, replace_patterns,
- seconds_to_midnight, set_cookies, parse_html_form,
+ seconds_to_midnight, set_cookie, set_cookies, parse_html_form,
parse_html_tag_attr_value, timestamp)
from module.utils import fs_decode, fs_encode, save_join as fs_join, save_path as safe_filename
diff --git a/module/plugins/internal/MultiHoster.py b/module/plugins/internal/MultiHoster.py
index a0ef3ff40..c0c928a45 100644
--- a/module/plugins/internal/MultiHoster.py
+++ b/module/plugins/internal/MultiHoster.py
@@ -3,7 +3,7 @@
import re
from module.plugins.internal.Plugin import Fail, encode
-from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo, replace_patterns, set_cookies
+from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo, replace_patterns, set_cookie, set_cookies
class MultiHoster(SimpleHoster):
diff --git a/module/plugins/internal/Plugin.py b/module/plugins/internal/Plugin.py
index 62eb17aa6..5f70a292d 100644
--- a/module/plugins/internal/Plugin.py
+++ b/module/plugins/internal/Plugin.py
@@ -81,11 +81,15 @@ def replace_patterns(string, ruleslist):
return string
+#@TODO: Remove in 0.4.10 and fix CookieJar.setCookie
+def set_cookie(cj, domain, name, value):
+ return cj.setCookie(domain, name, encode(value))
+
+
def set_cookies(cj, cookies):
for cookie in cookies:
if isinstance(cookie, tuple) and len(cookie) == 3:
- domain, name, value = cookie
- cj.setCookie(domain, name, encode(value)) #@TODO: Remove `encode` in 0.4.10
+ set_cookie(cj, *cookie)
def parse_html_tag_attr_value(attr_name, tag):
@@ -142,7 +146,7 @@ def chunks(iterable, size):
class Plugin(object):
__name__ = "Plugin"
__type__ = "hoster"
- __version__ = "0.27"
+ __version__ = "0.29"
__status__ = "testing"
__pattern__ = r'^unmatchable$'
@@ -329,12 +333,18 @@ class Plugin(object):
if req is None:
req = self.req or self.pyload.requestFactory.getRequest(self.__name__)
- res = req.load(url, get, post, ref, cookies, just_header, multipart, decode is True) #@TODO: Fix network multipart in 0.4.10
+ #@TODO: Move to network in 0.4.10
+ if hasattr(self, 'COOKIES') and isinstance(self.COOKIES, list):
+ set_cookies(req.cj, self.COOKIES)
+
+ res = req.load(url, get, post, ref, bool(cookies), just_header, multipart, decode is True) #@TODO: Fix network multipart in 0.4.10
- if decode: #@TODO: Move to network in 0.4.10
+ #@TODO: Move to network in 0.4.10
+ if decode:
res = html_unescape(res)
- if isinstance(decode, basestring): #@TODO: Move to network in 0.4.10
+ #@TODO: Move to network in 0.4.10
+ if isinstance(decode, basestring):
res = decode(res, decode)
if self.pyload.debug:
diff --git a/module/plugins/internal/SimpleCrypter.py b/module/plugins/internal/SimpleCrypter.py
index bcbfd6488..6a3f91a5b 100644
--- a/module/plugins/internal/SimpleCrypter.py
+++ b/module/plugins/internal/SimpleCrypter.py
@@ -3,7 +3,7 @@
import re
from module.plugins.internal.Crypter import Crypter
-from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo, replace_patterns, set_cookies
+from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo, replace_patterns, set_cookie, set_cookies
from module.utils import fixup, html_unescape
diff --git a/module/plugins/internal/SimpleHoster.py b/module/plugins/internal/SimpleHoster.py
index 1d456a3ee..e2cc21ed8 100644
--- a/module/plugins/internal/SimpleHoster.py
+++ b/module/plugins/internal/SimpleHoster.py
@@ -12,7 +12,7 @@ from module.PyFile import statusMap as _statusMap
from module.network.HTTPRequest import BadHeader
from module.network.RequestFactory import getURL as get_url
from module.plugins.internal.Hoster import Hoster, create_getInfo, parse_fileInfo
-from module.plugins.internal.Plugin import Fail, encode, fixurl, replace_patterns, seconds_to_midnight, set_cookies
+from module.plugins.internal.Plugin import Fail, encode, fixurl, replace_patterns, seconds_to_midnight, set_cookie, set_cookies
from module.utils import fixup, fs_encode, parseFileSize as parse_size
@@ -23,7 +23,7 @@ statusMap = dict((v, k) for k, v in _statusMap.items())
class SimpleHoster(Hoster):
__name__ = "SimpleHoster"
__type__ = "hoster"
- __version__ = "1.77"
+ __version__ = "1.78"
__status__ = "testing"
__pattern__ = r'^unmatchable$'
@@ -221,7 +221,7 @@ class SimpleHoster(Hoster):
self.req.setOption("timeout", 120)
- if isinstance(self.COOKIES, list):
+ if hasattr(self, 'COOKIES') and isinstance(self.COOKIES, list):
set_cookies(self.req.cj, self.COOKIES)
if self.LINK_PATTERN:
diff --git a/module/plugins/internal/UnRar.py b/module/plugins/internal/UnRar.py
index 92128c77f..0386991d9 100644
--- a/module/plugins/internal/UnRar.py
+++ b/module/plugins/internal/UnRar.py
@@ -22,7 +22,7 @@ def renice(pid, value):
class UnRar(Extractor):
__name__ = "UnRar"
- __version__ = "1.24"
+ __version__ = "1.25"
__status__ = "testing"
__description__ = """Rar extractor plugin"""
@@ -177,7 +177,7 @@ class UnRar(Extractor):
#: eventually Multipart Files
files.extend(fs_join(dir, os.path.basename(file)) for file in filter(self.is_multipart, os.listdir(dir))
- if re.sub(self.re_multipart, ".rar", name) is re.sub(self.re_multipart, ".rar", file))
+ if re.sub(self.re_multipart, ".rar", name) == re.sub(self.re_multipart, ".rar", file))
return files
diff --git a/module/plugins/internal/XFSAccount.py b/module/plugins/internal/XFSAccount.py
index 0cd723bab..7093ccd27 100644
--- a/module/plugins/internal/XFSAccount.py
+++ b/module/plugins/internal/XFSAccount.py
@@ -5,13 +5,13 @@ import time
import urlparse
from module.plugins.internal.Account import Account
-from module.plugins.internal.Plugin import parse_html_form, set_cookies
+from module.plugins.internal.Plugin import parse_html_form, set_cookie
class XFSAccount(Account):
__name__ = "XFSAccount"
__type__ = "account"
- __version__ = "0.40"
+ __version__ = "0.41"
__status__ = "testing"
__description__ = """XFileSharing account plugin"""
@@ -39,20 +39,6 @@ class XFSAccount(Account):
LOGIN_FAIL_PATTERN = r'Incorrect Login or Password|account was banned|Error<'
- def init(self):
- if not self.HOSTER_DOMAIN:
- self.log_error(_("Missing HOSTER_DOMAIN"))
- self.COOKIES = False
-
- else:
- if not self.HOSTER_URL:
- self.HOSTER_URL = "http://www.%s/" % self.HOSTER_DOMAIN
-
- if isinstance(self.COOKIES, list):
- self.COOKIES.insert((self.HOSTER_DOMAIN, "lang", "english"))
- set_cookies(req.cj, self.COOKIES)
-
-
def parse_info(self, user, password, data, req):
validuntil = None
trafficleft = None
@@ -65,7 +51,9 @@ class XFSAccount(Account):
'leechtraffic': leechtraffic,
'premium' : premium}
- html = self.load(self.HOSTER_URL, get={'op': "my_account"})
+ html = self.load(self.HOSTER_URL,
+ get={'op': "my_account"},
+ cookies=self.COOKIES)
premium = True if re.search(self.PREMIUM_PATTERN, html) else False
@@ -151,12 +139,23 @@ class XFSAccount(Account):
def login(self, user, password, data, req):
+ if self.HOSTER_DOMAIN:
+ if not self.HOSTER_URL:
+ self.HOSTER_URL = "http://www.%s/" % self.HOSTER_DOMAIN
+
+ if hasattr(self, 'COOKIES'):
+ if isinstance(self.COOKIES, list):
+ self.COOKIES.insert((self.HOSTER_DOMAIN, "lang", "english"))
+ else:
+ set_cookie(req.cj, self.HOSTER_DOMAIN, "lang", "english")
+
if not self.HOSTER_URL:
self.login_fail(_("Missing HOSTER_URL"))
if not self.LOGIN_URL:
self.LOGIN_URL = urlparse.urljoin(self.HOSTER_URL, "login.html")
- html = self.load(self.LOGIN_URL)
+
+ html = self.load(self.LOGIN_URL, cookies=self.COOKIES)
action, inputs = parse_html_form('name="FL"', html)
if not inputs:
@@ -171,7 +170,7 @@ class XFSAccount(Account):
else:
url = self.HOSTER_URL
- html = self.load(url, post=inputs)
+ html = self.load(url, post=inputs, cookies=self.COOKIES)
if re.search(self.LOGIN_FAIL_PATTERN, html):
self.login_fail()