Mercurial > prosody-modules
comparison mod_adhoc_cmd_uptime/mod_adhoc_cmd_uptime.lua @ 38:b9bf8a35b064
mod_adhoc_cmd_uptime: Initial commit
author | Florian Zeitz <florob@babelmonkeys.de> |
---|---|
date | Mon, 12 Oct 2009 20:54:40 +0200 |
parents | |
children | 9b63fd1196c0 |
comparison
equal
deleted
inserted
replaced
37:6018c0370d89 | 38:b9bf8a35b064 |
---|---|
1 -- Copyright (C) 2009 Florian Zeitz | |
2 -- | |
3 -- This file is MIT/X11 licensed. Please see the | |
4 -- COPYING file in the source package for more information. | |
5 -- | |
6 | |
7 local _G = _G; | |
8 local prosody = _G.prosody; | |
9 local st, uuid = require "util.stanza", require "util.uuid"; | |
10 local adhoc_new = module:require "adhoc".new; | |
11 | |
12 function uptime() | |
13 local t = os.time()-prosody.start_time; | |
14 local seconds = t%60; | |
15 t = (t - seconds)/60; | |
16 local minutes = t%60; | |
17 t = (t - minutes)/60; | |
18 local hours = t%24; | |
19 t = (t - hours)/24; | |
20 local days = t; | |
21 return string.format("This server has been running for %d day%s, %d hour%s and %d minute%s (since %s)", | |
22 days, (days ~= 1 and "s") or "", hours, (hours ~= 1 and "s") or "", | |
23 minutes, (minutes ~= 1 and "s") or "", os.date("%c", prosody.start_time)); | |
24 end | |
25 | |
26 function uptime_command_handler (item, origin, stanza) | |
27 origin.send(st.reply(stanza):add_child(item:cmdtag("completed", uuid.generate()):tag("note", {type="info"}):text(uptime()))); | |
28 return true; | |
29 end | |
30 | |
31 local descriptor = adhoc_new("Get uptime", "uptime", uptime_command_handler); | |
32 | |
33 function module.unload() | |
34 module:remove_item("adhoc", descriptor); | |
35 end | |
36 | |
37 module:add_item ("adhoc", descriptor); | |
38 |