Module:Utils: Difference between revisions

From Eco - English Wiki
[checked revision][checked revision]
No edit summary
(p.tableLen)
(4 intermediate revisions by the same user not shown)
Line 16: Line 16:
end
end


function p.checkImage(name)
function p.checkImage(name, too_expensive)
   local icon = name:gsub('%s+', '') .. '_Icon.png'
   local icon = name:gsub('%s+', '') .. '_Icon.png'
   if mw.title.makeTitle('File', name).file.exists then
  if too_expensive then
     return name
    return icon
  end
 
   if mw.title.makeTitle('File', icon).file.exists then
     return icon
   else
   else
     return 'NoImage.png'
     return 'NoImage.png'
   end
   end
end
end
      
 
-- mw.LoadData prevents #table from working correctly
function p.tableLen(tbl)
  local count = 0
     for _, v in ipairs(tbl) do
      if v == nil then
        return count
      end
      count = count + 1
    end
  return count
end
 
return p
return p

Revision as of 14:32, 27 February 2021

This module provides utility functions used from other modules.

Usage

Add the following line of code at the top of your file.

local Utils = require("Module:Utils")

-- You may then call functions from this module in your script. For example:
local tableLength = Utils.tableLen(myTable)

local p = {}

-- Trims and parses the args into a table, then returns the table
function p.normaliseArgs(frame)
  local origArgs = frame:getParent().args
  local args = {}
  
  for k, v in pairs(origArgs) do
    v = mw.text.trim(tostring(v))
    if v ~= '' then
      args[k] = v
    end
  end
  
  return args
end

function p.checkImage(name, too_expensive)
  local icon = name:gsub('%s+', '') .. '_Icon.png'
  if too_expensive then
    return icon
  end

  if mw.title.makeTitle('File', icon).file.exists then
    return icon
  else
    return 'NoImage.png'
  end
end

-- mw.LoadData prevents #table from working correctly
function p.tableLen(tbl)
  local count = 0
    for _, v in ipairs(tbl) do
      if v == nil then
        return count
      end
      count = count + 1
    end
  return count
end

return p