aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xabrechenbarkeit.lua39
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>")