No edit summary Tag: Reverted |
No edit summary |
||
| (5 intermediate revisions by the same user not shown) | |||
| Line 10: | Line 10: | ||
local args = getArgs(frame); | local args = getArgs(frame); | ||
local phrase = args[1] | local phrase = args[1] | ||
local mode = args[2] | |||
local tableName = "ZonaiRunes" | |||
if mode ~= nil and mode == "dark" then | |||
tableName = "ZonaiRunesWhite" | |||
end | |||
if phrase == nil or phrase == "" then | |||
return "" | |||
end | |||
if (starts_with(phrase, "{{{")) then | if (starts_with(phrase, "{{{")) then | ||
return "" | return "" | ||
| Line 23: | Line 31: | ||
local queryFields = 'cipherCharacter=cipherCharacter,imageName=imageName' | local queryFields = 'cipherCharacter=cipherCharacter,imageName=imageName' | ||
local args = { | local args = { | ||
where = string.format(' | where = string.format('%s.cipherCharacter="%s"', tableName, c), | ||
format = 'table', | format = 'table', | ||
limit = 1 | limit = 1 | ||
} | } | ||
local items = cargo.query( | local items = cargo.query(tableName, queryFields, args) | ||
for r = 1, #items do | for r = 1, #items do | ||
local item = items[r] | local item = items[r] | ||
result = result .. string.format("[[File:%s| | result = result .. string.format("[[File:%s|75px]]", item.imageName) | ||
end | end | ||
end | end | ||
Latest revision as of 07:59, 12 January 2024
Documentation for this module may be created at Module:TextToZonaiRunes/doc
local p = {}
local cargo = mw.ext.cargo
local function starts_with(str, start)
return str:sub(1, #start) == start
end
function p.textToZonaiRunes(frame)
local getArgs = require('Module:Arguments').getArgs
local args = getArgs(frame);
local phrase = args[1]
local mode = args[2]
local tableName = "ZonaiRunes"
if mode ~= nil and mode == "dark" then
tableName = "ZonaiRunesWhite"
end
if phrase == nil or phrase == "" then
return ""
end
if (starts_with(phrase, "{{{")) then
return ""
end
local result = ""
for i = 1, #phrase do
local c = phrase:sub(i,i)
if c == " " then
result = result .. c
else
local queryFields = 'cipherCharacter=cipherCharacter,imageName=imageName'
local args = {
where = string.format('%s.cipherCharacter="%s"', tableName, c),
format = 'table',
limit = 1
}
local items = cargo.query(tableName, queryFields, args)
for r = 1, #items do
local item = items[r]
result = result .. string.format("[[File:%s|75px]]", item.imageName)
end
end
end
return result
end
return p