28 lines
887 B
Python
28 lines
887 B
Python
import urlparse
|
|
|
|
from util import hook, http, urlnorm
|
|
|
|
|
|
@hook.command
|
|
def isup(inp):
|
|
"""isup -- uses isup.me to see if a site is up or not"""
|
|
|
|
# slightly overcomplicated, esoteric URL parsing
|
|
scheme, auth, path, query, fragment = urlparse.urlsplit(inp.strip())
|
|
|
|
domain = auth.encode('utf-8') or path.encode('utf-8')
|
|
url = urlnorm.normalize(domain, assume_scheme="http")
|
|
|
|
try:
|
|
soup = http.get_soup('http://isup.me/' + domain)
|
|
except http.HTTPError, http.URLError:
|
|
return "Could not get status."
|
|
|
|
content = soup.find('div').text.strip()
|
|
|
|
if "not just you" in content:
|
|
return "It's not just you. {} looks \x02\x034down\x02\x0f from here!".format(url)
|
|
elif "is up" in content:
|
|
return "It's just you. {} is \x02\x033up\x02\x0f.".format(url)
|
|
else:
|
|
return "Huh? That doesn't look like a site on the interweb."
|