Module:VillageTest: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
(Testing for Possible Memory Usage issue) |
||
| Line 96: | Line 96: | ||
retval:addRow('Name:',VP_Data_Local,'','icr-transparency1 icr-data') | retval:addRow('Name:',VP_Data_Local,'','icr-transparency1 icr-data') | ||
-- retval:addRow('UUID',VP_UUID_Local,'','icr-transparency1 icr-data') | |||
-- retval:addRow('OWNER UUID',VP_OWNER_LOCAL,'','icr-transparency1 icr-data') | |||
-- mw.logObject(VP_Data.name,'NAME') -- We Printing the VP_Data_Local into console here | -- mw.logObject(VP_Data.name,'NAME') -- We Printing the VP_Data_Local into console here | ||
Revision as of 22:03, 30 January 2025
Documentation for this module may be created at Module:VillageTest/doc
local VillageTest = {}
local capiunto = require 'capiunto'
--local externalData = require('externaldata')
--[ Thecow275's WikiStats V2 VIllages MODULE PROTOTYPE ]
--[ Nicknamed: UUID and J-Village Update]
local function preprocessArg(s)
if not s then
return nil
end
s = s:match('^%s*(.-)%s*$') --trim whitespace
if s == '' then
return nil
else
return s
end
end
local debug = 0;
function VillageTest.debug(frame)
debug = 1;
VillageTest.main(
mw.getCurrentFrame():newChild{
title = "Module:VillageTest",
args ={"thecow275","villagelist"}
}
)
end
function villagehelper(PV_Input, PV_Name, retval)
local PV_Input = PV_Input
local PV_Name = PV_Name
local retval = retval
retval:addHeader(PV_Name)
-- mw.log(' DATA FOR: '..PV_Name..':')
for i, PV_Data in ipairs(PV_Input) do --[[ For Example: playerVillages.__json.data.member ]]--
--mw.log('villagehelper iterations: '..i)
--mw.logObject(PV_Data)
if PV_Data ~= nil then
if type(PV_Data) == "table" and PV_Data.village then
--mw.logObject(PV_Data.village)
-- mw.log('SUCCESS: PV_Data is a Table')
local PV_Data_Local = PV_Data.village
retval:addRow('',PV_Data_Local,'','icr-transparency1 icr-data')
elseif type(PV_Data) == "string" or PV_Data == nil then
-- mw.logObject(PV_Data)
--local PV_Data_Local = 'ERROR: API FAILURE'
-- mw.log('ERROR: PV_Data is a String or nil, Supposed to be a Table')
end
elseif PV_Data == nil then
-- mw.log('ERROR PV_Data is nil ABORTING')
retval:addRow('','API ERROR RETURNING NIL','','icr-transparencry1 icr-data')
end
end
end
function villagelistprocessor(VP_Input, VP_Name, retval)
local VP_Input = VP_Input
local VP_Name = VP_Name
local retval = retval
retval:addHeader(VP_Name)
for i, VP_Data in ipairs(VP_Input) do
if VP_Data ~= nil then
if type(VP_Data) == "table" and VP_Data.name and VP_Data.uuid and VP_Data.owner then
local VP_Data_Local = VP_Data.name
local VP_UUID_Local = VP_Data.uuid
local VP_OWNER_LOCAL = VP_Data.owner
-- mw.log("Village Number: "..i)
--mw.log("UUID: ")
--mw.logObject(VP_Data.uuid,'UUID')
--mw.logObject(VP_Data.owner, 'Owner UUID')
retval:addRow('Name:',VP_Data_Local,'','icr-transparency1 icr-data')
-- retval:addRow('UUID',VP_UUID_Local,'','icr-transparency1 icr-data')
-- retval:addRow('OWNER UUID',VP_OWNER_LOCAL,'','icr-transparency1 icr-data')
-- mw.logObject(VP_Data.name,'NAME') -- We Printing the VP_Data_Local into console here
elseif type(VP_Data) == "string" or VP_Data == nil then
--mw.logObject(VP_Data)
mw.log('VP_Data is nil this shouldn\'t be the case')
end
elseif VP_Data == nil then
mw.log('ERROR VP_Data is nil ABORTING')
retval:addRow('','API ERROR RETURNING NIL','','icr-transparencry1 icr-data')
end
end
end
function VillageTest.main(frame)
local args = frame.args
local input = preprocessArg(args[1])
local infoboxtype = preprocessArg(args[2]) -- currently unused will be used whenever I implement more datatypes
if not input then -- CHECK FOR BLANK INPUT
return 'INPUT ERROR INPUT IS NULL'
end
if infoboxtype == "{{{2}}}" then
infoboxtype = "playervillages"
end
local uuid = '8fa8f70d-eb7d-4743-b0ad-837cdfb69f4e' --[thecow275]--
--local uuid = 'b08b6a7a-aada-4787-bb4b-07fc393ad6e5' --[QueenOfAsh]--
local villagelist = mw.ext.externalData.getExternalData({
url = "https://api.retromc.org/api/v1/village/getVillageList",
format = 'json',
data = villages
})
--mw.log('Village List API')
--mw.logObject(villagelist.villages)
--mw.logObject(villagelist.error)
local playerVillages = mw.ext.externalData.getExternalData({
url = "https://statistics.retromc.org/api/user_villages?uuid=" .. uuid,
format = 'json',
data = url
})
local retval = capiunto.create({
top = 'TESTING',
bodyClass = 'icr-DiamondCitizenBodyStyle',
topClass = 'icr-title'
})
retval:addRow('HOWDY', 'HOWDEE', '', 'icr-transparency1 icr-data')
if playerVillages.__json.data then
if infoboxtype == "playervillages" then
villagehelper(playerVillages.__json.data.member, "Member",retval)
villagehelper(playerVillages.__json.data.owner, "Owner",retval)
villagehelper(playerVillages.__json.data.assistant, "Assistant",retval)
elseif infoboxtype == "villagelist" then
villagelistprocessor(villagelist, "Villages",retval)
end
end
--mw.logObject(villagels)
--mw.logObject(playerVillages.__json.data.member)
--mw.logObject(member.village)
--mw.logObject(playerVillages.data)
--mw.logObject(playerVillages.status)
--mw.logObject(villagelist.villages)
return retval
end
return VillageTest