Module:ProfileInfoboxUpdater: Difference between revisions

From RetroMC
Jump to navigation Jump to search
No edit summary
No edit summary
Line 42: Line 42:




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


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

Revision as of 12:28, 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 = pcall(mw.text.jsonDecode, data.uuid)
     local uuidnodecode = data.uuid


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

     if uuidnodecode 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 = pcall(mw.text.jsonDecode, userdata.groups)

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

        





end