#!/usr/bin/env python3 """ Checks if a website is up by sending a HEAD request to it. """ import requests from module import commands, require_chanmsg @require_chanmsg(message="It's not polite to whisper.") @commands('isup') def isup(bot, trigger): """Queries the given url to check if it's up or not.""" url = trigger.group(2) if not url: return bot.reply("What URL do you want to check?") if url.startswith("192") and not trigger.owner: return bot.reply("Do not violate the LAN.") if not url.startswith("http"): url = "http://" + url try: res = requests.head(url, timeout=10, verify=True) except (requests.exceptions.MissingSchema, requests.exceptions.InvalidSchema): return bot.msg("Missing or invalid schema. Check the URL.") except requests.exceptions.ConnectionError: return bot.msg("\x0304Connection error\x03. Are you sure this is " + \ "a real website?") except requests.exceptions.InvalidURL: return bot.msg("Invalid URL.") except requests.exceptions.ReadTimeout: return bot.msg("\x0307" + url + "\x03 looks \x0304down\x03 from " + \ "here (\x0304Timed out [10s]\x03)") except Exception as e: print(e) return bot.msg("Listen buddy. I don't know what you're doing, but " + \ "you're not doing it right.") try: res.raise_for_status() return bot.msg("\x0307" + url + "\x03 looks \x0303up\x03 from here.") except requests.exceptions.HTTPError: return bot.msg("\x0307" + url + "\x03 looks \x0304down\x03 from here.")