Module:Image
Jump to navigation
Jump to search
Documentation for this module may be created at Module:Image/doc
local p = {}
function p.fetchPath(frame, image, thumb)
local search_title
if frame.args.image ~= nil then
search_title = mw.text.decode(frame.args.image, true)
else
search_title = image
end
local thumb_size
if frame.args.size ~= nil then
thumb_size = frame.args.size
else
thumb_size = thumb
end
if (thumb_size ~= nil) and (string.match(thumb_size, '^%d+px$') == nil) then
error('thumb_size value not valid', 1)
end
local title = p.fetchFinalTitle(mw.title.makeTitle('Image', search_title))
if title == nil then
return ''
end
--mw.log(title)
local filename = title:partialUrl()
--mw.log(filename)
local hash_path = p.calcHashPath(filename)
--mw.log(md5)
if thumb ~= nil then
local encoded_filename = mw.uri.encode(filename, 'WIKI')
return '/images/thumb/' .. hash_path .. '/' .. encoded_filename .. '/' .. thumb_size .. '-' .. encoded_filename;
else
return '/images/' .. hash_path .. '/' .. mw.uri.encode(filename, 'WIKI');
end
end
function p.fetchURL(frame, image, thumb)
return 'https://gbf.wiki' .. p.fetchPath(frame, image, thumb)
end
function p.calcHashPath(filename)
local md5 = mw.hash.hashValue('md5', filename)
return string.sub(md5, 1, 1) .. '/' .. string.sub(md5, 1, 2)
end
function p.fetchFinalTitle(title)
if title == nil then
return nil
elseif title.redirectTarget == false then
return title
else
return p.fetchFinalTitle(title.redirectTarget)
end
end
function p.test()
local frame = mw.getCurrentFrame()
mw.logObject(p.fetchURL(frame, 'EugenSummer_iconA.jpg', nil))
end
function p.test2()
local frame = mw.getCurrentFrame()
mw.logObject(p.fetchURL(frame, 'EugenSummer_iconA.jpg', '2px'))
end
function p.test3()
local frame = mw.getCurrentFrame()
mw.logObject(p.fetchPath(frame, 'Minami_Nitta_iconA.jpg', '70px'))
end
function p.test4()
local frame = mw.getCurrentFrame()
frame.args.image = "Jeanne d'Arc (Themed) iconA.jpg"
mw.logObject(p.fetchURL(frame, nil, nil))
end
return p