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

import re

from urllib import unquote_plus

from pyload.utils import json_loads
from pyload.plugin.internal.MultiHoster import MultiHoster


class MegaDebridEu(MultiHoster):
    __name    = "MegaDebridEu"
    __type    = "hoster"
    __version = "0.47"

    __pattern = r'http://((?:www\d+\.|s\d+\.)?mega-debrid\.eu|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/download/file/[\w^_]+'
    __config  = [("use_premium", "bool", "Use premium account if available", True)]

    __description = """mega-debrid.eu multi-hoster plugin"""
    __license     = "GPLv3"
    __authors     = [("D.Ducatel", "dducatel@je-geek.fr")]


    API_URL = "https://www.mega-debrid.eu/api.php"


    def api_load(self):
        """
        Connexion to the mega-debrid API
        Return True if succeed
        """
        user, data = self.account.selectAccount()
        jsonResponse = self.load(self.API_URL,
                                 get={'action': 'connectUser', 'login': user, 'password': data['password']})
        res = json_loads(jsonResponse)

        if res['response_code'] == "ok":
            self.token = res['token']
            return True
        else:
            return False


    def handlePremium(self, pyfile):
        """
        Debrid a link
        Return The debrided link if succeed or original link if fail
        """
        if not self.api_load():
            self.error("Unable to connect to remote API")

        jsonResponse = self.load(self.API_URL,
                                 get={'action': 'getLink', 'token': self.token},
                                 post={'link': pyfile.url})

        res = json_loads(jsonResponse)
        if res['response_code'] == "ok":
            self.link = res['debridLink'][1:-1]