mirror of
https://codeberg.org/metamuffin/abrechenbarkeit.git
synced 2024-12-29 16:14:36 +00:00
34 lines
944 B
Lua
34 lines
944 B
Lua
|
|
||
|
local function read_log()
|
||
|
local log = io.open("log", "r")
|
||
|
if log == nil then
|
||
|
return function() return nil end
|
||
|
end
|
||
|
local lines = log:lines("l")
|
||
|
return function()
|
||
|
local l = lines()
|
||
|
if l == "" or l == nil then
|
||
|
return nil
|
||
|
end
|
||
|
local time, username, amount, comment = string.match(l, "(%d+),([%w_ -]+),(-?%d+),([%w_ -]*)")
|
||
|
return tonumber(time), username, tonumber(amount), comment
|
||
|
end
|
||
|
end
|
||
|
|
||
|
local function balances()
|
||
|
local users = {}
|
||
|
for _, username, amount, _ in read_log() do
|
||
|
users[username] = (users[username] or 0) + amount
|
||
|
end
|
||
|
return users
|
||
|
end
|
||
|
|
||
|
local newlog = io.open("log_collapsed","w+")
|
||
|
if newlog == nil then
|
||
|
return print("error failed to open log")
|
||
|
end
|
||
|
for username, amount in pairs(balances()) do
|
||
|
newlog:write(string.format("%d,%s,%d,%s\n", os.time(), username, amount, "Collapsed transaction history"))
|
||
|
end
|
||
|
newlog:close()
|