diff options
| author | 2015-04-07 16:47:50 +0200 | |
|---|---|---|
| committer | 2015-04-07 16:47:50 +0200 | |
| commit | a4a358ce15ecac4aaa35935a074819058e6333a8 (patch) | |
| tree | 00eb5df086b9f259ba0995c0278f15b5507ab5a9 /module | |
| parent | Merge pull request #1318 from saintego/patch-6 (diff) | |
| download | pyload-a4a358ce15ecac4aaa35935a074819058e6333a8.tar.xz | |
[YadiSk] Cleanup
Diffstat (limited to 'module')
| -rw-r--r-- | module/plugins/hoster/YadiSk.py (renamed from module/plugins/hoster/YadiSk) | 59 | 
1 files changed, 30 insertions, 29 deletions
diff --git a/module/plugins/hoster/YadiSk b/module/plugins/hoster/YadiSk.py index 33f791352..c71d16cf2 100644 --- a/module/plugins/hoster/YadiSk +++ b/module/plugins/hoster/YadiSk.py @@ -11,15 +11,16 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo  class YadiSk(SimpleHoster):      __name__    = "YadiSk"      __type__    = "hoster" -    __version__ = "0.01" +    __version__ = "0.02" -    __pattern__ = r'https?://yadi\.sk/d/.+' +    __pattern__ = r'https?://yadi\.sk/d/\w+' -    __description__ = """yadi.sk hoster plugin""" +    __description__ = """Yadi.sk hoster plugin"""      __license__     = "GPLv3"      __authors__     = [("GammaC0de", "nomail@fakemailbox.com")] -    OFFLINE_PATTERN = r"Nothing found" + +    OFFLINE_PATTERN = r'Nothing found'      def setup(self): @@ -27,58 +28,58 @@ class YadiSk(SimpleHoster):          self.multiDL        = False          self.chunkLimit     = 1 -    def prepare(self): -        self.req.http.c.setopt(pycurl.USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:36.0) Gecko/20100101 Firefox/36.0") -        return super(YadiSk, self).prepare()      def handleFree(self, pyfile):          m = re.search(r'<script id="models-client" type="application/json">(.+?)</script>', self.html)          if m is None:              self.fail(_("could not find required json data")) -        json = m.group(1) - -        res = json_loads(json) +        res = json_loads(m.group(1)) -        yadisk_ver = yadisk_sk = yadisk_id = yadisk_size = yadisk_name = yadisk_hash = None -        try: +        yadisk_ver  = None +        yadisk_sk   = None +        yadisk_id   = None +        yadisk_size = None +        yadisk_name = None +        yadisk_hash = None +        try:  #@TODO: Copy to apiInfo method              for sect in res:                  if 'model' in sect:                      if sect['model'] == 'config':                          yadisk_ver = sect['data']['version'] -                        yadisk_sk = sect['data']['sk'] +                        yadisk_sk  = sect['data']['sk'] +                      elif sect['model'] == 'resource': -                        yadisk_id = sect['data']['id'] +                        yadisk_id   = sect['data']['id']                          yadisk_size = sect['data']['meta']['size']                          yadisk_name = sect['data']['name'] -        except: + +        except Exception:              self.fail(_("Unexpected server response")) -        if yadisk_id is None or yadisk_sk is None or yadisk_id is None or yadisk_size is None or yadisk_name is None: -           self.fail(_("json data is missing important information, cannot continue")) +        if None is in (yadisk_id, yadisk_sk, yadisk_id, yadisk_size, yadisk_name): +           self.fail(_("json data is missing important information, cannot continue"))          self.pyfile.size = yadisk_size          self.pyfile.name = yadisk_name          yadisk_idclient = "" -        for i in range(1, 32): +        for _i in range(1, 32):              yadisk_idclient += random.choice('0123456abcdef') -        post_data = {'idClient': yadisk_idclient, -                     'version': yadisk_ver, -                     '_model.0': 'do-get-resource-url', -                     'sk': yadisk_sk, -                     'id.0': yadisk_id} - -        result_json = self.load("https://yadi.sk/models/?_m=do-get-resource-url", post=post_data) +        result_json = self.load("https://yadi.sk/models/?_m=do-get-resource-url", +                                post={'idClient': yadisk_idclient, +                                      'version' : yadisk_ver, +                                      '_model.0': 'do-get-resource-url', +                                      'sk'      : yadisk_sk, +                                      'id.0'    : yadisk_id})          res = json_loads(result_json)          try: -            url = res['models'][0]['data']['file'] -        except: -            self.fail(_("faild to retrieve the download url")) +            self.link = res['models'][0]['data']['file'] -        self.download(url) +        except Exception: +            self.fail(_("faild to retrieve the download url"))  getInfo = create_getInfo(YadiSk)  | 
