Mô đun:Librivox book
Giao diện
| Mô đun này được xếp loại beta. Nó được đánh giá là sẵn sàng để sử dụng rộng rãi, nhưng vì nó vẫn còn khá là mới, nên vẫn cần phải được sử dụng một cách thận trọng để đảm bảo rằng kết quả đạt được như mong đợi. |
Usage Mô đun:Librivox book
There is currently 1 template that invokes this module, {{Librivox book}}.
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 title = nil -- display and search title (default: article name w/out dab) local dtitle = nil -- display title (default: title) local stitle = nil -- search title (default: title) local lname = nil -- last name local id = nil -- unsupported argument local author = nil -- author local tagline = "- sách nói thuộc phạm vi công cộng tại [[LibriVox]]" local urlhead = "https://librivox.org/search?" local italic = "''" id = trimArg(args.id) if id then error("Lỗi bản mẫu:" .. tname .. " - id không được hỗ trợ - xin hãy xem tài liệu hướng dẫn tại [[Bản mẫu:Librivox author]]") end title = trimArg(args.title) if not title then title = mw.title.getCurrentTitle().text end dtitle = mw.ustring.gsub(title,'%s+%([^%(]-%)$', '') -- Remove the final disambig paren stitle = dtitle if trimArg(args.stitle) then stitle = trimArg(args.stitle) if not trimArg(args.title) then -- For when used outside main article space dtitle = stitle end end if trimArg(args.dtitle) then dtitle = trimArg(args.dtitle) italic = "" end local stitle = mw.ustring.gsub(stitle," ", "+") -- replace "<space>" with "+" author = trimArg(args.author) if not author then lname = "" else --- Split name into words, count words, set name to last word local N = mw.text.split(author, " ") local l, count = mw.ustring.gsub(author, "%S+", "") lname = N[count] end local url = "[[File:Speaker Icon.svg|15px|link=|alt=]] " .. "[" .. 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" .. " " .. italic .. dtitle .. italic .. "]" .. " " .. tagline return urlendfunction trimArg(arg) if arg == "" or arg == nil then return nil else return mw.text.trim(arg) endendreturn p