Modul:Vorlage:Librivox Buch
Zur Navigation springen
Zur Suche springen
Vorlagenprogrammierung | Diskussionen | Lua | Unterseiten | ||
Modul | Deutsch
|
Modul: | Dokumentation |
Diese Seite enthält Code in der Programmiersprache Lua. Einbindungszahl Cirrus
local p = {}
function p.book(frame)
local pframe = frame:getParent()
local args = pframe.args
local tname = "Librivox Buch" -- Name der aufrufenden Vorlage. Zu ändern, wenn der Vorlagenname sich ändert.
local titel = nil -- Titel des Buchs, ist gleichzeitig angezeigter und für die url verwendeter Titel (wenn leer gelassen, wird der Artikelname verwendet)
local dtitel = nil -- dargestellter Titel (wenn leer gelassen, wird der Titel verwendet)
local stitel = nil -- für die Such-Url verwendeter Titel (wenn leer gelassen, wird der Titel verwendet)
local lname = nil -- Nachname
local id = nil -- nicht unterstützt
local autor = nil -- Autor, voller Name des Autors
local tagline = "Public-Domain-Hörbuch bei [[LibriVox]]"
local urlhead = "https://librivox.org/search?"
local italic = "''"
id = trimArg(args.id)
if id then
error("Fehler in der Vorlagenverwendung:" .. tname .. " - id Parameter wird hier nicht unterstützt - bitte die Dokumentation der Vorlage beachten!")
end
titel = trimArg(args.titel)
if not titel then
titel = mw.title.getCurrentTitle().text -- Verwende den Artikelnamen
end
dtitel = mw.ustring.gsub(titel,'%s+%([^%(]-%)$', '') -- Trimme den Artikelnamen, evtl. Klammern entfernen
stitel = dtitel
if trimArg(args.stitel) then
stitel = trimArg(args.stitel)
if not trimArg(args.titel) then -- Wenn kein Titel, aber ein Url Titel angegeben wurde, nehme den Such-Url Titel als dargestellten Titel
dtitel = stitel
end
end
if trimArg(args.dtitel) then
dtitel = trimArg(args.dtitel) -- Wenn ein Anzeige-Titel angegeben wurde, zeige ihn an.
italic = ""
end
local stitel = mw.ustring.gsub(stitel," ", "+") -- Ersetze Leerzeichen durch "+"-Zeichen
autor = trimArg(args.autor)
if not autor then
lname = ""
else
--- Teile den Autorennamen in Wörter auf, zähle die Wörter, verwende nur den letzten (Nach-)Namen
local N = mw.text.split(autor, " ")
local l, count = mw.ustring.gsub(autor, "%S+", "")
lname = N[count]
end
local url = "[[File:Speaker Icon.svg|15px|link=|alt=]] " .. "[" .. urlhead .. "title=" .. stitel .. "&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 .. dtitel .. italic .. "]" .. " " .. tagline
return url
end
function trimArg(arg)
if arg == "" or arg == nil then
return nil
else
return mw.text.trim(arg)
end
end
return p