mirror of
https://github.com/minetest-mods/xban2.git
synced 2025-06-28 14:36:04 +02:00
Allow importing old databases.
Currently: - Minetest (`ipban.txt') - xban v1 (`players.iplist')
This commit is contained in:
29
importers/minetest.lua
Normal file
29
importers/minetest.lua
Normal 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
33
importers/v1.lua
Normal 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
|
Reference in New Issue
Block a user