diff options
Diffstat (limited to 'module')
-rw-r--r-- | module/plugins/accounts/FastshareCz.py | 5 | ||||
-rw-r--r-- | module/plugins/accounts/FilecloudIo.py | 7 | ||||
-rw-r--r-- | module/plugins/accounts/FourSharedCom.py | 5 | ||||
-rw-r--r-- | module/plugins/accounts/Keep2ShareCc.py | 5 | ||||
-rw-r--r-- | module/plugins/accounts/ShareonlineBiz.py | 5 | ||||
-rw-r--r-- | module/plugins/accounts/SimplyPremiumCom.py | 5 | ||||
-rw-r--r-- | module/plugins/accounts/TurbobitNet.py | 5 | ||||
-rw-r--r-- | module/plugins/accounts/UploadedTo.py | 4 | ||||
-rw-r--r-- | module/plugins/accounts/XFileSharingPro.py | 2 | ||||
-rw-r--r-- | module/plugins/hooks/AntiStandby.py | 4 | ||||
-rw-r--r-- | module/plugins/internal/Account.py | 7 | ||||
-rw-r--r-- | module/plugins/internal/Hoster.py | 2 | ||||
-rw-r--r-- | module/plugins/internal/MultiHoster.py | 2 | ||||
-rw-r--r-- | module/plugins/internal/Plugin.py | 22 | ||||
-rw-r--r-- | module/plugins/internal/SimpleCrypter.py | 2 | ||||
-rw-r--r-- | module/plugins/internal/SimpleHoster.py | 6 | ||||
-rw-r--r-- | module/plugins/internal/UnRar.py | 4 | ||||
-rw-r--r-- | module/plugins/internal/XFSAccount.py | 37 |
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() |