This repository has been archived on 2023-04-13. You can view files and clone it, but cannot push or open issues or pull requests.
CloudBot/plugins/geoip.py

44 lines
1.4 KiB
Python
Raw Normal View History

2012-05-13 03:50:28 +02:00
from util import hook, http
2011-11-20 10:23:31 +01:00
2012-03-12 19:13:32 +01:00
def find_location(ip, api):
2012-05-13 03:50:28 +02:00
response = http.get("http://api.ipinfodb.com/v3/ip-city/", key=api, ip=ip)
2011-11-20 10:23:31 +01:00
response = response.split(";")
2012-05-13 03:50:28 +02:00
results = {}
results["country"] = response[4].title()
results["country_short"] = response[3].upper()
results["state"] = response[5].title()
results["city"] = response[6].title()
results["timezone"] = response[10].title()
return results
2011-11-20 10:23:31 +01:00
2012-03-12 19:13:32 +01:00
2011-11-20 10:23:31 +01:00
def timezone(ip):
time = find_location(ip)["timezone"]
2012-02-29 09:29:53 +01:00
time = time.replace(":", ".")
time = time.replace(".00", "")
2011-11-20 10:23:31 +01:00
return int(time)
2012-02-29 09:29:53 +01:00
2011-11-20 10:23:31 +01:00
@hook.command
@hook.command("location")
2012-05-07 01:58:29 +02:00
def geoip(inp, say=None, bot=None):
2012-02-28 03:03:43 +01:00
".geoip <ip> - Performs a location check on <ip>."
2012-02-15 19:18:56 +01:00
api_key = bot.config.get("api_keys", {}).get("geoip", None)
if api_key is None:
return "error: no api key set"
2012-05-07 01:58:29 +02:00
give = find_location(inp, api_key)
if give["country"] not in ["", " ", "-", " - ", None]:
2011-11-20 10:23:31 +01:00
if give["state"] == give["city"]:
2012-02-29 09:29:53 +01:00
localstring = give["city"]
2011-11-20 10:23:31 +01:00
else:
localstring = give["city"] + ", " + give["state"]
2012-04-02 18:17:55 +02:00
say("That IP comes from " + give["country"] +
" (" + give["country_short"] + ")")
say("I think it's in " + localstring +
" with a timezone of " + give["timezone"] + "GMT")
2011-11-20 10:23:31 +01:00
else:
2012-04-02 18:17:55 +02:00
say("Either that wasn't an IP or I cannot locate it in my database.")
2011-11-20 10:23:31 +01:00
return