local p = {}
function p.book(frame)
local pframe = frame:getParent()
local args = pframe.args
local tname = "Librivox book" -- name of calling template. Change if template rename.
local dtitle = nil -- display title (default: title field)
local stitle = nil -- search title (default: title field)
local tagline = "public domain audiobook at [[LibriVox]]"
local urlhead = "https://librivox.org/search?"
if args.title == "" or args.title == nil then
title = mw.title.getCurrentTitle().text
dtitle = title
stitle = dtitle
else
title = mw.text.trim(args.title)
dtitle = title
stitle = dtitle
end
if args.stitle ~= nil and args.stitle ~= "" then
stitle = mw.text.trim(args.stitle)
end
if args.dtitle ~= nil and args.dtitle ~= "" then
dtitle = mw.text.trim(args.dtitle)
end
dtitle = mw.ustring.gsub(dtitle,"%s%(.*%)", "") -- remove disambiguation ()
stitle = mw.ustring.gsub(stitle,"%s%(.*%)", "")
stitle = mw.ustring.gsub(stitle," ", "+") -- replace "<space>" with "+"
if args.author == "" or args.author == nil then
name = ""
else
--- Split name into words, count words, set name to last word
local N = mw.text.split(mw.text.trim(args.author), " ")
local l, count = mw.ustring.gsub(mw.text.trim(args.author), "%S+", "")
lname = N[count]
end
local url = "[[Image:Speaker Icon.svg|20px]] " .. "[" .. urlhead .. "title=" .. stitle .. "&author=" .. lname .. "&reader=&keywords=&genre_id=0&status=all&project_type=either&recorded_language=&sort_order=catalog_date&search_page=1&search_form=advanced" .. " " .. "''" .. dtitle .. "''" .. "]" .. " " .. tagline
return url
end
return p