# -*- coding: utf-8 -*-
from urllib.parse import urlparse

import irc3
import requests
from docopt import Dict as DocOptDict
from irc3.plugins.command import command
from irc3.utils import IrcString

from . import DatabasePlugin


@irc3.plugin
class Useless(DatabasePlugin):
    requires = ['irc3.plugins.command',
                'bot.plugins.storage']

    @command
    def isup(self, mask: IrcString, target: IrcString, args: DocOptDict):
        """Checks if a address is up.

        %%isup <address>
        """
        address = args['<address>']
        if not address.startswith('http://'):
            address = 'https://{}'.format(address)
        parsed = urlparse(address)

        try:
            requests.head(address)
            state = 'up'
        except requests.ConnectionError:
            state = 'down'
        return '{}://{} seems to be {}'.format(parsed.scheme, parsed.netloc, state)