aboutsummaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorGravatar jesopo2019-04-28 12:12:00 +0100
committerGravatar jesopo2019-04-28 12:12:00 +0100
commit0ba1b275d9404cc0b28378f964675a1bf938e860 (patch)
treef34f944d6f2f3420fae8709de49252cb1f99a2d8 /modules
parentSupport parsing iso8601 with microseconds (diff)
signature
Add user_time.py
Diffstat (limited to 'modules')
-rw-r--r--modules/user_time.py33
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")