Module:ProfileInfoboxUpdater: Difference between revisions

From RetroMC
Jump to navigation Jump to search
No edit summary
No edit summary
Line 47: Line 47:
     if uuid then
     if uuid then
         local userdata = externalData.getExternalData({
         local userdata = externalData.getExternalData({
             url = "https://statistics.johnymuffin.com/api/v1/getUser?serverID=0&uuid=" .. mw.text.jsonEncode(uuid),
             url = "https://statistics.johnymuffin.com/api/v1/getUser?serverID=0&uuid=" .. uuid,
             format = "json"
             format = "json"
      
      

Revision as of 11:59, 19 July 2024

Documentation for this module may be created at Module:ProfileInfoboxUpdater/doc

--local rank = {}
local externalData = mw.ext.externalData
--local uuid = {}
local p  =  {}



--[ Thecow275's Profile Infobox Updater Module V1 ]

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



function p.main(frame)
    local args = frame.args
    local username = preprocessArg(args[1])
    local datatype = preprocessArg(args[2]) -- currently unused will be used whenever I implement more datatypes


    if not username then -- check for blank username
        return 'USERNAME NOT VALID OR API ERROR'
    end

    if username then
    local data = externalData.getExternalData({
        url = "https://api.ashcon.app/mojang/v2/user/" .. username,
        format = "json"
    })

     local uuid =  mw.text.jsonDecode(data.uuid)

     if not uuid then --check for blank uuid (if this happens hell has broken lose)
        return 'NO VALID UUID FOUND'
     end

     if uuid then
        local userdata = externalData.getExternalData({
            url = "https://statistics.johnymuffin.com/api/v1/getUser?serverID=0&uuid=" .. uuid,
            format = "json"
    
            })

            if userdata then -- if this doesn't trigger something has gone terribly wrong
               local groups = mw.text.jsonDecode(userdata.groups)

                return groups
            else
                return 'NO GROUPS FOUND'
            end
        end
    end

        





end

return p