Editing Module:Param Parse
Jump to navigation
Jump to search
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 3: | Line 3: | ||
--]=] |
--]=] |
||
-- <nowiki> |
-- <nowiki> |
||
local Infobox = require('Module:Infobox') |
|||
local parse = {} |
local parse = {} |
||
-- Generic functions -- |
|||
----------------------- |
|||
-- Standardized "has content" function |
-- Standardized "has content" function |
||
Line 16: | Line 13: | ||
end |
end |
||
-- Standardized numbers |
|||
function parse.number(num) |
|||
num = string.gsub(num or '',',','') |
|||
return tonumber(num) |
|||
end |
|||
-- Standardized image function |
|||
-- Yes/No |
|||
parse.image = { |
|||
name = 'image', |
|||
func = parse.image, |
|||
smw_property = 'Image', |
|||
smw_func = parse.image_smw, |
|||
empty = '[[Special:Upload|Please upload an image!]]', |
|||
category_incomplete = 'Needs image' |
|||
} |
} |
||
function parse. |
function parse.image_func(img) |
||
if |
if img and img:find('%S') then |
||
return |
return img |
||
end |
end |
||
return nil |
return nil |
||
end |
end |
||
function parse. |
function parse.image_smw(img) |
||
return img and string.match(img, "File:.-%.png") or nil |
|||
if text == 'N/A' then |
|||
return nil |
|||
end |
|||
local bool = yes_no[text] |
|||
if bool ~= nil then |
|||
return bool |
|||
end |
|||
return nil |
|||
end |
end |
||
-- Premade Params -- |
|||
-------------------- |
|||
-- Standardized |
-- Standardized numbers |
||
parse. |
function parse.number(num) |
||
num = string.gsub(num or '',',','') |
|||
name = 'name', |
|||
return tonumber(num) |
|||
func = parse.has_content, |
|||
end |
|||
smw_property = 'Name', |
|||
category_incomplete = 'Needs name', |
|||
} |
|||
-- Standardized examine function |
|||
parse.examine = { |
|||
name = 'examine', |
|||
func = parse.has_content, |
|||
smw_property = 'Examine', |
|||
category_incomplete = 'Needs examine', |
|||
} |
|||
-- Standardized image function |
|||
-- Episode |
|||
function parse.image_name(img) |
|||
local valid_episodes = {['Hopeport'] = 1, ['Hopeforest'] = 1, ['Mine of Mantuban'] = 1, ['Crenopolis'] = 1} |
|||
if img then |
|||
function parse.episode(episode) |
|||
return string.match(img, '%[%[(File:.+%.%w%w%w)|?%d*x?%d*p?x?%]%]') |
|||
if valid_episodes[episode] then |
|||
return '[[File:'..episode..' episode icon.png|18px]] [['..episode..']]' |
|||
end |
end |
||
return nil |
return nil |
||
end |
end |
||
function parse. |
function parse.episode_smw(episode) |
||
if |
if valid_episodes[episode] then |
||
return episode |
|||
return string.match(img, '%[%[File:.+%.%w%w%w|%d*x(%d*)px%]%]') or default |
|||
end |
|||
return default |
|||
end |
|||
function parse.image_width(img, default) |
|||
if img then |
|||
return string.match(img, '%[%[File:.+%.%w%w%w|(%d*)x?%d*px%]%]') or default |
|||
end |
|||
return default |
|||
end |
|||
function parse.image_func(img, default_width, default_height) |
|||
local name = parse.image_name(img) |
|||
local width = parse.image_width(img, default_width) |
|||
local height = parse.image_height(img, default_height) |
|||
local size = '' |
|||
if width and height then |
|||
size = '|'..width..'x'..height..'px' |
|||
elseif width then |
|||
size = '|'..width..'px' |
|||
elseif height then |
|||
size = '|x'..height..'px' |
|||
end |
|||
if name then |
|||
return '[['..name..size..']]' |
|||
end |
end |
||
return nil |
return nil |
||
end |
|||
function parse.image_smw(img) |
|||
return parse.image_name(img) |
|||
end |
end |
||
parse.image = { |
|||
name = 'image', |
|||
func = parse.image_func, |
|||
smw_property = 'Image', |
|||
smw_func = parse.image_smw, |
|||
empty = '[[Special:Upload|Please upload an image!]]', |
|||
category_incomplete = 'Needs image', |
|||
} |
|||
parse.image_size300 = { |
|||
name = 'image', |
|||
func = {name = parse.image_func, params = {Infobox.raw_param('image'), 300, 300}}, |
|||
smw_property = 'Image', |
|||
smw_func = parse.image_smw, |
|||
empty = '[[Special:Upload|Please upload an image!]]', |
|||
category_incomplete = 'Needs image', |
|||
} |
|||
-- Yes/No |
|||
local yes_no = { |
|||
-- Episode |
|||
['Yes'] = true, |
|||
local valid_episodes = { |
|||
[' |
['No'] = false, |
||
[' |
['N/A'] = 'NIL', |
||
['mine of mantuban'] = 'Mine of Mantuban', |
|||
['crenopolis'] = 'Crenopolis' |
|||
} |
} |
||
function parse. |
function parse.yes_no(text) |
||
if yes_no[text] then |
|||
local valid_episode = valid_episodes[string.lower(episode or '')] |
|||
return text |
|||
if valid_episode then |
|||
return '[[File:'..valid_episode..' episode icon.png|18px]] [['..valid_episode..']]' |
|||
end |
end |
||
return nil |
return nil |
||
end |
end |
||
function parse. |
function parse.yes_no_smw(text) |
||
if text == 'N/A' then |
|||
local valid_episode = valid_episodes[string.lower(episode or '')] |
|||
return nil |
|||
if valid_episode then |
|||
return valid_episode |
|||
end |
end |
||
return nil |
return yes_no[text] or nil |
||
end |
end |
||
parse.episode = { |
|||
name = 'episode', |
|||
func = parse.episode_func, |
|||
smw_property = 'Episode', |
|||
smw_func = parse.episode_smw, |
|||
category_incomplete = 'Needs episode', |
|||
} |
|||
-- Premium |
|||
parse.premium = { |
|||
name = 'premium', |
|||
func = parse.yes_no, |
|||
smw_property = 'Premium', |
|||
smw_func = parse.yes_no_smw, |
|||
category_incomplete = 'Needs premium status', |
|||
} |
|||
-- Release (TODO) |
|||
parse.release = { |
|||
name = 'release', |
|||
func = parse.has_content, |
|||
} |
|||
-- Profession (TODO) |
|||
parse.profession = { |
|||
name = 'profession', |
|||
func = parse.has_content, |
|||
category_incomplete = 'Needs profession', |
|||
smw_property = 'Profession' -- TODO - Need to create property page |
|||
} |
|||
parse.variant = { |
|||
name = 'variant', |
|||
func = parse.has_content, |
|||
category_incomplete = 'Needs variant details', |
|||
smw_property = 'Variant of' -- TODO - Need to create property page |
|||
} |
|||
parse.passive = { |
|||
name = 'passive', |
|||
func = parse.yes_no, |
|||
smw_property = 'Passive', |
|||
smw_func = parse.yes_no_smw, |
|||
category_incomplete = 'Needs passiveness' |
|||
} |
|||
return parse |
return parse |