diff options
| author | 2019-04-28 12:12:00 +0100 | |
|---|---|---|
| committer | 2019-04-28 12:12:00 +0100 | |
| commit | 0ba1b275d9404cc0b28378f964675a1bf938e860 (patch) | |
| tree | f34f944d6f2f3420fae8709de49252cb1f99a2d8 /modules | |
| parent | Support parsing iso8601 with microseconds (diff) | |
| signature | ||
Add user_time.py
Diffstat (limited to 'modules')
| -rw-r--r-- | modules/user_time.py | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/modules/user_time.py b/modules/user_time.py new file mode 100644 index 00000000..9b759a33 --- /dev/null +++ b/modules/user_time.py @@ -0,0 +1,33 @@ +import datetime +from src import ModuleManager, utils + +API = "http://worldtimeapi.org/api/timezone/%s" + +class Module(ModuleManager.BaseModule): + _name = "Time" + + @utils.hook("received.command.time") + def time(self, event): + """ + :help: Get the time for you or someone else + :usage: [nickname] + """ + target_user = event["user"] + if event["args"]: + target_user = event["server"].get_user(event["args_split"][0]) + + location = target_user.get_setting("location", None) + + if not location == None: + page = utils.http.request(API % location["timezone"], json=True) + + if page and page.data and not page.data.get("error", None): + dt = utils.iso8601_parse(page.data["datetime"], + microseconds=True) + human = utils.datetime_human(dt) + event["stdout"].write("Time for %s: %s" % (target_user.nickname, + human)) + else: + raise utils.EventsResultsError() + else: + event["stderr"].write("%s doesn't have a location set") |
