summaryrefslogtreecommitdiffstats
path: root/module/plugins/internal
diff options
context:
space:
mode:
Diffstat (limited to 'module/plugins/internal')
-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
8 files changed, 45 insertions, 37 deletions
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()