# -*- coding: utf-8 -*-

import re

from pyload.plugin.internal.MultiHoster import MultiHoster, replace_patterns


class SimplydebridCom(MultiHoster):
    __name    = "SimplydebridCom"
    __type    = "hoster"
    __version = "0.17"

    __pattern = r'http://\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/sd\.php'
    __config  = [("use_premium", "bool", "Use premium account if available", True)]

    __description = """Simply-debrid.com multi-hoster plugin"""
    __license     = "GPLv3"
    __authors     = [("Kagenoshin", "kagenoshin@gmx.ch")]


    def handlePremium(self, pyfile):
        #fix the links for simply-debrid.com!
        self.link = replace_patterns(pyfile.url, [("clz.to", "cloudzer.net/file")
                                                  ("http://share-online", "http://www.share-online")
                                                  ("ul.to", "uploaded.net/file")
                                                  ("uploaded.com", "uploaded.net")
                                                  ("filerio.com", "filerio.in")
                                                  ("lumfile.com", "lumfile.se")])

        if 'fileparadox' in self.link:
            self.link = self.link.replace("http://", "https://")

        self.html = self.load("http://simply-debrid.com/api.php", get={'dl': self.link})
        if 'tiger Link' in self.html or 'Invalid Link' in self.html or ('API' in self.html and 'ERROR' in self.html):
            self.error(_("Unable to unrestrict link"))

        self.link = self.html

        self.wait(5)


    def checkFile(self, rules={}):
        if self.checkDownload({"error": "No address associated with hostname"}):
            self.retry(24, 3 * 60, _("Bad file downloaded"))

        return super(SimplydebridCom, self).checkFile(rules)