Module:Param Parse: Difference between revisions

Fix image function bug for nil images
(yes_no_smw instead of yes_no)
Tags: Mobile edit Mobile web edit Advanced mobile edit
(Fix image function bug for nil images)
 
(10 intermediate revisions by 3 users not shown)
Line 3:
--]=]
-- <nowiki>
local Infobox = require('Module:Infobox')
 
local parse = {}
Line 23 ⟶ 24:
-- Yes/No
local yes_no = {
['Yes'] = 'true',
['No'] = 'false',
['N/A'] = 'NIL',
}
Line 37 ⟶ 38:
return nil
end
returnlocal bool = yes_no[text] or nil
if bool ~= nil then
return imgbool
end
return episodenil
end
 
Line 48 ⟶ 53:
func = parse.has_content,
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
function parse.image_funcimage_name(img)
if img and string.match(img, '%[%[File:.*%]%]') then
return string.match(img, '%[%[(File:.+%.%w%w%w)|?%d*x?%d*p?x?%]%]')
return img
end
return nil
end
function parse.image_height(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_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
return nil
end
function parse.image_smw(img)
return img and stringparse.matchimage_name(img, "File:.*%.%w%w%w") or nil
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,
Line 71 ⟶ 122:
 
-- Episode
local valid_episodes = {['Hopeport'] = 1, ['Hopeforest'] = 1, ['Mine of Mantuban'] = 1, ['Crenopolis'] = 1}
['hopeport'] = 'Hopeport',
['hopeforest'] = 'Hopeforest',
['mine of mantuban'] = 'Mine of Mantuban',
['crenopolis'] = 'Crenopolis'
}
function parse.episode_func(episode)
iflocal valid_episode = valid_episodes[string.lower(episode] thenor '')]
if valid_episode then
return '[[File:'..episodevalid_episode..' episode icon.png|18px]] [['..episodevalid_episode..']]'
end
return nil
end
function parse.episode_smw(episode)
iflocal valid_episode = valid_episodes[string.lower(episode] thenor '')]
if valid_episode then
return episode
return valid_episode
end
return nil