abrechenbarkeit/collapse_log.lua

34 lines
944 B
Lua
Raw Normal View History

2024-10-31 00:25:53 +00:00
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()