summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--module/plugins/accounts/XFileSharingPro.py19
-rw-r--r--module/plugins/crypter/XFileSharingProFolder.py43
-rw-r--r--module/plugins/hoster/XFileSharingPro.py47
-rw-r--r--module/plugins/internal/SimpleCrypter.py28
-rw-r--r--module/plugins/internal/XFSAccount.py2
5 files changed, 83 insertions, 56 deletions
diff --git a/module/plugins/accounts/XFileSharingPro.py b/module/plugins/accounts/XFileSharingPro.py
index 62270a2b0..7066445b2 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.07"
+ __version__ = "0.08"
__status__ = "testing"
__description__ = """XFileSharingPro multi-purpose account plugin"""
@@ -17,15 +17,10 @@ class XFileSharingPro(XFSAccount):
HOSTER_DOMAIN = None
- def init(self):
- if self.HOSTER_DOMAIN:
- return super(XFileSharingPro, self).init()
-
-
def login(self, user, password, data, req):
- if self.HOSTER_DOMAIN:
- try:
- return super(XFileSharingPro, self).login(user, data, req)
- except Exception:
- self.HOSTER_URL = self.HOSTER_URL.replace("www.", "")
- return super(XFileSharingPro, self).login(user, data, req)
+ try:
+ return super(XFileSharingPro, self).login(user, data, req)
+
+ except Fail:
+ self.HOSTER_URL = self.HOSTER_URL.replace("www.", "")
+ return super(XFileSharingPro, self).login(user, data, req)
diff --git a/module/plugins/crypter/XFileSharingProFolder.py b/module/plugins/crypter/XFileSharingProFolder.py
index a0931d6ba..584cc7668 100644
--- a/module/plugins/crypter/XFileSharingProFolder.py
+++ b/module/plugins/crypter/XFileSharingProFolder.py
@@ -8,7 +8,7 @@ from module.plugins.internal.XFSCrypter import XFSCrypter, create_getInfo
class XFileSharingProFolder(XFSCrypter):
__name__ = "XFileSharingProFolder"
__type__ = "crypter"
- __version__ = "0.12"
+ __version__ = "0.13"
__status__ = "testing"
__pattern__ = r'https?://(?:www\.)?(?:\w+\.)*?(?P<DOMAIN>(?:[\d.]+|[\w\-^_]{3,}(?:\.[a-zA-Z]{2,}){1,2})(?:\:\d+)?)/(?:user|folder)s?/\w+'
@@ -35,20 +35,41 @@ class XFileSharingProFolder(XFSCrypter):
self.HOSTER_DOMAIN = re.match(self.__pattern__, self.pyfile.url).group("DOMAIN").lower()
self.HOSTER_NAME = "".join(part.capitalize() for part in re.split(r'(\.|\d+|\-)', self.HOSTER_DOMAIN) if part != '.')
- account = self.pyload.accountManager.getAccountPlugin(self.HOSTER_NAME)
- if account and account.can_use():
- self.account = account
-
- elif self.account:
- self.account.HOSTER_DOMAIN = self.HOSTER_DOMAIN
+ def _setup(self):
+ account_name = self.__name__ if self.account.HOSTER_DOMAIN is None else self.HOSTER_NAME
+ self.chunk_limit = 1
+ self.multiDL = True
+ if self.account:
+ self.req = self.pyload.requestFactory.getRequest(accountname, self.user)
+ self.premium = self.account.is_premium(self.user)
+ self.resume_download = self.premium
else:
- return
+ self.req = self.pyload.requestFactory.getRequest(account_name)
+ self.premium = False
+ self.resume_download = False
+
+
+ def load_account(self):
+ if self.req:
+ self.req.close()
+
+ if not self.account:
+ self.account = self.pyload.accountManager.getAccountPlugin(self.HOSTER_NAME)
+
+ if not self.account:
+ self.account = self.pyload.accountManager.getAccountPlugin(self.__name__)
+
+ if self.account:
+ if not self.account.HOSTER_DOMAIN:
+ self.account.HOSTER_DOMAIN = self.HOSTER_DOMAIN
+
+ if not self.user:
+ self.user = self.account.select()[0]
- self.user, data = self.account.select()
- self.req = self.account.get_request(self.user)
- self.premium = self.account.is_premium(self.user)
+ if not self.user or not self.account.is_logged(self.user, True):
+ self.account = False
getInfo = create_getInfo(XFileSharingProFolder)
diff --git a/module/plugins/hoster/XFileSharingPro.py b/module/plugins/hoster/XFileSharingPro.py
index a4e7a8bf4..8ede709de 100644
--- a/module/plugins/hoster/XFileSharingPro.py
+++ b/module/plugins/hoster/XFileSharingPro.py
@@ -8,7 +8,7 @@ from module.plugins.internal.XFSHoster import XFSHoster, create_getInfo
class XFileSharingPro(XFSHoster):
__name__ = "XFileSharingPro"
__type__ = "hoster"
- __version__ = "0.52"
+ __version__ = "0.53"
__status__ = "testing"
__pattern__ = r'https?://(?:www\.)?(?:\w+\.)*?(?P<DOMAIN>(?:[\d.]+|[\w\-^_]{3,}(?:\.[a-zA-Z]{2,}){1,2})(?:\:\d+)?)/(?:embed-)?\w{12}(?:\W|$)'
@@ -29,33 +29,46 @@ class XFileSharingPro(XFSHoster):
def init(self):
- super(XFileSharingPro, self).init()
-
self.__pattern__ = self.pyload.pluginManager.hosterPlugins[self.__name__]['pattern']
self.HOSTER_DOMAIN = re.match(self.__pattern__, self.pyfile.url).group("DOMAIN").lower()
self.HOSTER_NAME = "".join(part.capitalize() for part in re.split(r'(\.|\d+|\-)', self.HOSTER_DOMAIN) if part != '.')
- account = self.pyload.accountManager.getAccountPlugin(self.HOSTER_NAME)
-
- if account and account.can_use():
- self.account = account
- elif self.account:
- self.account.HOSTER_DOMAIN = self.HOSTER_DOMAIN
+ def _setup(self):
+ account_name = self.__name__ if self.account.HOSTER_DOMAIN is None else self.HOSTER_NAME
+ self.chunk_limit = 1
+ self.multiDL = True
+ if self.account:
+ self.req = self.pyload.requestFactory.getRequest(accountname, self.user)
+ self.premium = self.account.is_premium(self.user)
+ self.resume_download = self.premium
else:
- return
+ self.req = self.pyload.requestFactory.getRequest(account_name)
+ self.premium = False
+ self.resume_download = False
+
+
+ def load_account(self):
+ if self.req:
+ self.req.close()
+
+ if not self.account:
+ self.account = self.pyload.accountManager.getAccountPlugin(self.HOSTER_NAME)
+
+ if not self.account:
+ self.account = self.pyload.accountManager.getAccountPlugin(self.__name__)
- self.user, data = self.account.select()
- self.req = self.account.get_request(self.user)
- self.premium = self.account.is_premium(self.user)
+ if self.account:
+ if not self.account.HOSTER_DOMAIN:
+ self.account.HOSTER_DOMAIN = self.HOSTER_DOMAIN
+ if not self.user:
+ self.user = self.account.select()[0]
- def setup(self):
- self.chunk_limit = 1
- self.resume_download = self.premium
- self.multiDL = True
+ if not self.user or not self.account.is_logged(self.user, True):
+ self.account = False
getInfo = create_getInfo(XFileSharingPro)
diff --git a/module/plugins/internal/SimpleCrypter.py b/module/plugins/internal/SimpleCrypter.py
index f044fbb50..bcbfd6488 100644
--- a/module/plugins/internal/SimpleCrypter.py
+++ b/module/plugins/internal/SimpleCrypter.py
@@ -10,7 +10,7 @@ from module.utils import fixup, html_unescape
class SimpleCrypter(Crypter, SimpleHoster):
__name__ = "SimpleCrypter"
__type__ = "crypter"
- __version__ = "0.59"
+ __version__ = "0.60"
__status__ = "testing"
__pattern__ = r'^unmatchable$'
@@ -57,25 +57,23 @@ class SimpleCrypter(Crypter, SimpleHoster):
#@TODO: Remove in 0.4.10
- def load_account(self):
- accountname = (self.__name__ + ".py").replace("Folder.py", "").replace(".py", "")
+ def _setup(self):
+ orig_name = self.__name__
+ self.__name__ = (orig_name + ".py").replace("Folder.py", "").replace(".py", "")
+
+ super(SimpleCrypter, self)._setup()
- if self.req:
- self.req.close()
+ self.__name__ = orig_name
- if not self.account:
- self.account = self.pyload.accountManager.getAccountPlugin(accountname)
- if self.account:
- if not self.user:
- self.user = self.account.select()[0]
+ #@TODO: Remove in 0.4.10
+ def load_account(self):
+ orig_name = self.__name__
+ self.__name__ = (orig_name + ".py").replace("Folder.py", "").replace(".py", "")
- if not self.user or not self.account.is_logged(self.user, relogin=True):
- self.account = False
+ super(SimpleCrypter, self).load_account()
- #: Browser instance, see `network.Browser`
- self.req = self.pyload.requestFactory.getRequest(accountname,
- self.user if self.account else None)
+ self.__name__ = orig_name
def handle_direct(self, pyfile):
diff --git a/module/plugins/internal/XFSAccount.py b/module/plugins/internal/XFSAccount.py
index 5bf959400..0cd723bab 100644
--- a/module/plugins/internal/XFSAccount.py
+++ b/module/plugins/internal/XFSAccount.py
@@ -152,7 +152,7 @@ class XFSAccount(Account):
def login(self, user, password, data, req):
if not self.HOSTER_URL:
- self.login_fail(_("Missing HOSTER_DOMAIN"))
+ self.login_fail(_("Missing HOSTER_URL"))
if not self.LOGIN_URL:
self.LOGIN_URL = urlparse.urljoin(self.HOSTER_URL, "login.html")