Allow importing old databases.

Currently:
- Minetest (`ipban.txt')
- xban v1 (`players.iplist')
This commit is contained in:
Diego Martinez
2014-05-21 07:07:37 -03:00
parent 51097eee6b
commit d47e87e390
4 changed files with 103 additions and 4 deletions

29
importers/minetest.lua Normal file
View File

@ -0,0 +1,29 @@
function xban.importers.minetest()
local f, e = io.open(minetest.get_worldpath().."/ipban.txt")
if not f then
return false, "Unable to open `ipban.txt': "..e
end
for line in f:lines() do
local ip, name = line:match("([^|]+)%|(.+)")
if ip and name then
local entry
entry = xban.find_entry(ip, true)
entry.banned = true
entry.reason = "Banned in `ipban.txt'"
entry.names[name] = true
entry.names[ip] = true
entry.time = os.time()
entry.expires = nil
entry.source = "xban:importer_minetest"
table.insert(entry.record, {
source = entry.source,
reason = entry.reason,
time = entry.time,
expires = nil,
})
end
end
f:close()
return true
end

33
importers/v1.lua Normal file
View File

@ -0,0 +1,33 @@
function xban.importers.v1()
local f, e = io.open(minetest.get_worldpath().."/players.iplist")
if not f then
return false, "Unable to open `players.iplist': "..e
end
for line in f:lines() do
local list = line:split("|")
if #list >= 2 then
local banned = (list[1]:sub(1, 1) == "!")
local entry
entry = xban.find_entry(list[1], true)
entry.banned = banned
for _, name in ipairs(list) do
entry.names[name] = true
end
if banned then
entry.reason = "Banned in `players.iplist'"
entry.time = os.time()
entry.expires = nil
entry.source = "xban:importer_v1"
table.insert(entry.record, {
source = entry.source,
reason = entry.reason,
time = entry.time,
expires = nil,
})
end
end
end
f:close()
return true
end