Difference between revisions of "Module:Silent1/sandbox"

From Idlescape Wiki
Jump to navigation Jump to search
m
m
Line 1: Line 1:
 +
-- <nowiki>
 +
-- [[Template:T]]
 +
-- Shamelessly stolen from the OSRS wiki. Basically just gives an easy way to nowiki Template formatting
 +
 
local p = {}
 
local p = {}
  
local data_module_names = {
+
function p.main(frame)
price = 'Module:MarketPrices/data'
+
    local args = frame:getParent().args
}
+
    return p._main(args)
local loaded_data_modules = {}
+
end
  
function p.loadPrice (item, data_type)  
+
function p._main(args)
local module_name = data_module_names[data_type]
+
    local link = args[1]
if loaded_data_modules[module_name] == nil then
+
    local uri
loaded_data_modules[module_name] = mw.loadData(module_name)
+
    local targs = {}
end
+
    local ns
+
    local i = 1
return loaded_data_modules[module_name][item]
+
   
end
+
    -- strip transclusion modifiers ([[mw:Help:Magic words#Transclusion modifiers]])
 +
    link = link
 +
        :gsub('safesubst:', '')
 +
        :gsub('subst:', '')
 +
        :gsub('int:', '')
 +
        :gsub('msg:', '')
 +
        :gsub('msgnw:', '')
 +
        :gsub('raw:', '')
 +
       
 +
    ns = mw.text.split(link, ':')[1]
 +
   
 +
    -- check for valid namespace else prepend Template:
 +
    if not (ns == '' or mw.site.namespaces[ns]) then
 +
        link = 'Template:' .. link
 +
    end
 +
   
 +
    -- use fullUrl so it doesn't cause any wanted pages
 +
    uri = mw.uri.fullUrl(link)
 +
   
 +
    -- generate a list of args and params   
 +
    for k, v in ipairs(args) do
 +
        -- because lua has no continue statement
 +
        if k ~= 1 then
 +
            if type(k) == 'string' then
 +
                v = k .. '=' .. v
 +
            end
 +
       
 +
            targs[i] = v
 +
            i = i + 1
 +
        end
 +
    end
 +
    for k, v in pairs(args) do
 +
        -- because lua has no continue statement
 +
        if k ~= 1 then
 +
            if type(k) == 'string' then
 +
                v = k .. '=' .. v
 +
targs[i] = v
 +
i = i + 1
 +
            end
 +
       
 +
        end
 +
    end
 +
   
 +
    targs = table.concat(targs, '&#124;')
  
function p.addSeparator(num)
+
    if targs ~= '' then
return tostring(num):reverse():gsub("(%d%d%d)","%1,"):gsub(",(%-?)$","%1"):reverse()
+
        targs = '&#124;' .. targs
end
+
    end
 +
   
 +
    return '<code>{{[' .. tostring(uri) ..  ' ' .. args[1] .. ']' .. targs .. '}}</code>'
  
function p._price(frame)
 
local args = frame:getParent().args
 
local item = args[1]
 
local multi = args[2]
 
local separator = args[3]
 
local price = 0
 
if multi == nil then
 
multi = 1
 
end
 
item = string.lower(item)
 
price = p.loadPrice (item, 'price') * multi
 
 
if separator == "1" then
 
return p.addSeparator(price)
 
else
 
return price
 
end
 
 
end
 
end
  
 
return p
 
return p

Revision as of 13:27, 10 February 2022

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

-- <nowiki>
-- [[Template:T]]
-- Shamelessly stolen from the OSRS wiki. Basically just gives an easy way to nowiki Template formatting

local p = {}

function p.main(frame)
    local args = frame:getParent().args
    return p._main(args)
end

function p._main(args)
    local link = args[1]
    local uri
    local targs = {}
    local ns
    local i = 1
    
    -- strip transclusion modifiers ([[mw:Help:Magic words#Transclusion modifiers]])
    link = link
        :gsub('safesubst:', '')
        :gsub('subst:', '')
        :gsub('int:', '')
        :gsub('msg:', '')
        :gsub('msgnw:', '')
        :gsub('raw:', '')
        
    ns = mw.text.split(link, ':')[1]
    
    -- check for valid namespace else prepend Template:
    if not (ns == '' or mw.site.namespaces[ns]) then
        link = 'Template:' .. link
    end
    
    -- use fullUrl so it doesn't cause any wanted pages
    uri = mw.uri.fullUrl(link)
    
    -- generate a list of args and params    
    for k, v in ipairs(args) do
        -- because lua has no continue statement
        if k ~= 1 then
            if type(k) == 'string' then
                v = k .. '=' .. v
            end
        
            targs[i] = v
            i = i + 1
        end
    end
    for k, v in pairs(args) do
        -- because lua has no continue statement
        if k ~= 1 then
            if type(k) == 'string' then
                v = k .. '=' .. v
				targs[i] = v
				i = i + 1
            end
        
        end
    end
    
    targs = table.concat(targs, '&#124;')

    if targs ~= '' then
        targs = '&#124;' .. targs
    end
    
    return '<code>{{[' .. tostring(uri) ..  ' ' .. args[1] .. ']' .. targs .. '}}</code>'

end

return p