summaryrefslogtreecommitdiffstats
path: root/module/plugins/hoster/WebshareCz.py
diff options
context:
space:
mode:
Diffstat (limited to 'module/plugins/hoster/WebshareCz.py')
-rw-r--r--module/plugins/hoster/WebshareCz.py71
1 files changed, 36 insertions, 35 deletions
diff --git a/module/plugins/hoster/WebshareCz.py b/module/plugins/hoster/WebshareCz.py
index 946200b58..98187d46a 100644
--- a/module/plugins/hoster/WebshareCz.py
+++ b/module/plugins/hoster/WebshareCz.py
@@ -2,39 +2,50 @@
import re
-from pyload.network.RequestFactory import getURL
-from pyload.plugin.internal.SimpleHoster import SimpleHoster
-
-
-def getInfo(urls):
- for url in urls:
- fid = re.search(WebshareCz.__pattern__, url).group('ID')
- api_data = getURL("https://webshare.cz/api/file_info/", post={'ident': fid})
-
- if 'File not found' in api_data:
- file_info = (url, 0, 1, url)
- else:
- name = re.search('<name>(.+)</name>', api_data).group(1)
- size = re.search('<size>(.+)</size>', api_data).group(1)
- file_info = (name, size, 2, url)
-
- yield file_info
+from module.network.RequestFactory import getURL
+from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class WebshareCz(SimpleHoster):
__name__ = "WebshareCz"
__type__ = "hoster"
- __version__ = "0.14"
+ __version__ = "0.16"
__pattern__ = r'https?://(?:www\.)?webshare\.cz/(?:#/)?file/(?P<ID>\w+)'
__description__ = """WebShare.cz hoster plugin"""
__license__ = "GPLv3"
- __authors__ = [("stickell", "l.stickell@yahoo.it")]
+ __authors__ = [("stickell", "l.stickell@yahoo.it"),
+ ("rush", "radek.senfeld@gmail.com")]
+
+
+ @classmethod
+ def getInfo(cls, url="", html=""):
+ info = super(WebshareCz, cls).getInfo(url, html)
+
+ if url:
+ info['pattern'] = re.match(cls.__pattern__, url).groupdict()
+ api_data = getURL("https://webshare.cz/api/file_info/",
+ post={'ident': info['pattern']['ID']},
+ decode=True)
- def handleFree(self):
- api_data = self.load('https://webshare.cz/api/file_link/', post={'ident': self.fid})
+ if 'File not found' in api_data:
+ info['status'] = 1
+ else:
+ info["status"] = 2
+ info['name'] = re.search('<name>(.+)</name>', api_data).group(1) or info['name']
+ info['size'] = re.search('<size>(.+)</size>', api_data).group(1) or info['size']
+
+ return info
+
+
+ def handleFree(self, pyfile):
+ wst = self.account.infos['wst'] if self.account and 'wst' in self.account.infos else ""
+
+ api_data = getURL('https://webshare.cz/api/file_link/',
+ post={'ident': self.info['pattern']['ID'], 'wst': wst},
+ decode=True)
self.logDebug("API data: " + api_data)
@@ -42,21 +53,11 @@ class WebshareCz(SimpleHoster):
if m is None:
self.error(_("Unable to detect direct link"))
- self.download(m.group(1), disposition=True)
-
-
- def getFileInfo(self):
- self.logDebug("URL: %s" % self.pyfile.url)
+ self.link = m.group(1)
- self.fid = re.match(self.__pattern__, self.pyfile.url).group('ID')
- self.load(self.pyfile.url)
- api_data = self.load('https://webshare.cz/api/file_info/', post={'ident': self.fid})
+ def handlePremium(self, pyfile):
+ return self.handleFree(pyfile)
- if 'File not found' in api_data:
- self.offline()
- else:
- self.pyfile.name = re.search('<name>(.+)</name>', api_data).group(1)
- self.pyfile.size = re.search('<size>(.+)</size>', api_data).group(1)
- self.logDebug("FILE NAME: %s FILE SIZE: %s" % (self.pyfile.name, self.pyfile.size))
+getInfo = create_getInfo(WebshareCz)