comment maps out

This commit is contained in:
dowoge 2023-01-07 16:22:30 -05:00
parent 293d940078
commit 6728a9769c

View File

@ -1,71 +1,71 @@
local discordia=require('discordia') -- local discordia=require('discordia')
local API=require('./../strafes_net.lua') -- local API=require('./../strafes_net.lua')
discordia.extensions() -- discordia.extensions()
API.MAPS={} -- API.MAPS={}
local function insert(t, value) -- local function insert(t, value)
local start, ending, mid, state = 1, #t, 1, 0 -- local start, ending, mid, state = 1, #t, 1, 0
while start <= ending do -- while start <= ending do
mid = math.floor((start + ending) / 2) -- mid = math.floor((start + ending) / 2)
if #value.DisplayName < #t[mid].DisplayName then -- if #value.DisplayName < #t[mid].DisplayName then
ending, state = mid - 1, 0 -- ending, state = mid - 1, 0
else -- else
start, state = mid + 1, 1 -- start, state = mid + 1, 1
end -- end
end -- end
table.insert(t, mid + state, value) -- table.insert(t, mid + state, value)
end -- end
for _, game in next, API.GAMES do -- for _, game in next, API.GAMES do
if type(tonumber(game)) == 'number' then -- if type(tonumber(game)) == 'number' then
local count = 0 -- add into the maps table afterwards -- local count = 0 -- add into the maps table afterwards
local maps = {} -- local maps = {}
local res, headers = API:GetMaps(game) -- local res, headers = API:GetMaps(game)
local pages = tonumber(headers['Pagination-Count']) -- local pages = tonumber(headers['Pagination-Count'])
count = count + #res -- count = count + #res
for _, v in next, res do -- for _, v in next, res do
insert(maps, v) -- insert(maps, v)
end -- end
if pages > 1 then -- if pages > 1 then
for i = 2, pages do -- for i = 2, pages do
res, headers = API:GetMaps(game, i) -- res, headers = API:GetMaps(game, i)
count = count + #res -- count = count + #res
for _, j in next, res do -- for _, j in next, res do
insert(maps, j) -- insert(maps, j)
end -- end
end -- end
end -- end
setmetatable(maps, {__index = function(self, k) -- setmetatable(maps, {__index = function(self, k)
if k=='count' then return self.count end -- if k=='count' then return self.count end
-- Just to make sure it goes in the right order -- -- Just to make sure it goes in the right order
if type(k)=='string' then -- if type(k)=='string' then
for i = 1, self.count do -- for i = 1, self.count do
local v = self[i] -- local v = self[i]
if type(v) == 'table' and v.DisplayName:lower():find(tostring(k:gsub('%%', '%%%%'):gsub('^%^', '%%^'):gsub('%$$', '%%$'):gsub('%(', '%%('):gsub('%)', '%%)'):gsub('%.', '%%.'):gsub('%[', '%%['):gsub('%]', '%%]'):gsub('%*', '%%*'):gsub('%+', '%%+'):gsub('%-', '%%-'):gsub('%?', '%%?')):lower()) then -- if type(v) == 'table' and v.DisplayName:lower():find(tostring(k:gsub('%%', '%%%%'):gsub('^%^', '%%^'):gsub('%$$', '%%$'):gsub('%(', '%%('):gsub('%)', '%%)'):gsub('%.', '%%.'):gsub('%[', '%%['):gsub('%]', '%%]'):gsub('%*', '%%*'):gsub('%+', '%%+'):gsub('%-', '%%-'):gsub('%?', '%%?')):lower()) then
return v -- return v
end -- end
end -- end
elseif type(k)=='number' then -- elseif type(k)=='number' then
for i = 1, self.count do -- for i = 1, self.count do
local v = self[i] -- local v = self[i]
if type(v) == 'table' and v.ID==k then -- if type(v) == 'table' and v.ID==k then
return v -- return v
end -- end
end -- end
end -- end
end}) -- end})
maps.count = count -- maps.count = count
API.MAPS[game] = maps -- API.MAPS[game] = maps
print('map init done for game:', API.GAMES[game], 'count:', API.MAPS[game].count) -- print('map init done for game:', API.GAMES[game], 'count:', API.MAPS[game].count)
end -- end
end -- end