summaryrefslogtreecommitdiffstats
path: root/module/plugins/hoster/XFileSharingPro.py
diff options
context:
space:
mode:
Diffstat (limited to 'module/plugins/hoster/XFileSharingPro.py')
-rw-r--r--module/plugins/hoster/XFileSharingPro.py61
1 files changed, 38 insertions, 23 deletions
diff --git a/module/plugins/hoster/XFileSharingPro.py b/module/plugins/hoster/XFileSharingPro.py
index 169fbc8d3..8ede709de 100644
--- a/module/plugins/hoster/XFileSharingPro.py
+++ b/module/plugins/hoster/XFileSharingPro.py
@@ -8,7 +8,8 @@ from module.plugins.internal.XFSHoster import XFSHoster, create_getInfo
class XFileSharingPro(XFSHoster):
__name__ = "XFileSharingPro"
__type__ = "hoster"
- __version__ = "0.46"
+ __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|$)'
@@ -20,40 +21,54 @@ class XFileSharingPro(XFSHoster):
URL_REPLACEMENTS = [("/embed-", "/")]
- def _log(self, type, args):
- msg = " | ".join(str(a).strip() for a in args if a)
- logger = getattr(self.log, type)
- logger("%s: %s: %s" % (self.__name__, self.HOSTER_NAME, msg or _("%s MARK" % type.upper())))
+ def _log(self, level, plugintype, pluginname, messages):
+ return super(XFileSharingPro, self)._log(level,
+ plugintype,
+ "%s: %s" % (pluginname, self.HOSTER_NAME),
+ messages)
def init(self):
- super(XFileSharingPro, self).init()
-
- self.__pattern__ = self.core.pluginManager.hosterPlugins[self.__name__]['pattern']
+ 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.core.accountManager.getAccountPlugin(self.HOSTER_NAME)
+ self.HOSTER_NAME = "".join(part.capitalize() for part in re.split(r'(\.|\d+|\-)', self.HOSTER_DOMAIN) if part != '.')
- if account and account.canUse():
- 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.selectAccount()
- self.req = self.account.getAccountRequest(self.user)
- self.premium = self.account.isPremium(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.chunkLimit = 1
- self.resumeDownload = 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)