diff options
-rwxr-xr-x | abrechenbarkeit.lua | 39 |
1 files changed, 34 insertions, 5 deletions
diff --git a/abrechenbarkeit.lua b/abrechenbarkeit.lua index e702935..00b4f11 100755 --- a/abrechenbarkeit.lua +++ b/abrechenbarkeit.lua @@ -166,6 +166,34 @@ local function last_txns() return users end +local function get_active_users() + local user_balances = {} + for time, username, amount, _, _, _ in read_log() do + user_balances[username] = { + time = time, + username = username, + balance = (user_balances[username] or {balance = 0}).balance + amount + } + end + + local users = {} + for _, user in pairs(user_balances) do + table.insert(users, user) + end + + table.sort(users, function(a,b) return a.time > b.time end) + for k, user in pairs(users) do + io.stderr:write(string.format("%s %s %s %s\n", + k, + os.date("!%Y-%m-%dT%H:%M:%SZ", user.time), + user.username, + user.balance + )) + end + + return users +end + local function error_box(message) return string.format([[<div class="notif error"><p>Error: %s</p></div>]], message) end @@ -339,17 +367,18 @@ local function r_index() <h3>User Creation</h3> <label for="username">Username: </label> <input type="text" name="create_user" id="username" /> - <input type="submit" value="Continue" /> + <input type="submit" value="Continue" class="button amount-ntr" /> </form> ]]) print("<ul>") - for username, balance in pairs(balances()) do + + for _, user in ipairs(get_active_users()) do print(string.format([[ <li><a href="/%s"><span class="name">%s</span> <span class="amount amount-%s">%.02f€</span></a></li> ]], - urlencode(username), - escape(username), - balance >= 0 and "pos" or "neg", balance / 100 + urlencode(user.username), + escape(user.username), + user.balance >= 0 and "pos" or "neg", user.balance / 100 )) end print("</ul>") |