Modul:Vorlage:BAnz

Modul:Vorlage:BAnz

Die Dokumentation für dieses Modul kann unter Modul:Vorlage:BAnz/Doku erstellt werden

local function fault( alert )
    -- Format message with class="error"
    --     alert   -- string, with message
    -- Returns message with markup
    return string.format( "<span class=\"error\">%s</span>", alert )
end -- fault()



-- Export
local p = { }



function p.linkBAnz(arg)
	local name = arg
	if string.match(name, "(  )") == "  " then error("die Angabe enthält ein überschüssiges Leerzeichen") end
	pre,tag,monat,jahr,rubrik = string.match(name, "(%a+) (%d+)%.(%d+)%.(%d+) (%w+)")
	elektronisch = false
	if not pre then
		elektronisch = true
		pre,jahr,rubrik = string.match(name, "(%a+%d+) (%d%d%d%d) (%w+)")
		url = 'https://www.bundesanzeiger.de/ebanzwww/wexsservlet?genericsearch_param.start_date%3A0=01&genericsearch_param.start_date%3A1=01&genericsearch_param.start_date%3A2='..jahr..'&genericsearch_param.stop_date%3A0=31&genericsearch_param.stop_date%3A1=12&genericsearch_param.stop_date%3A2='..jahr..'&%28page.navid%3Ddetailsearchlisttodetailsearchlistupdateresetpage%29=Dokumente+anzeigen&genericsearch_param.fulltext=eBAnz+'..pre..'+'..jahr..'+'..rubrik
		lbl = 'eBAnz '..pre..' '..jahr..' '..rubrik
	else
		url = 'https://www.bundesanzeiger.de/ebanzwww/wexsservlet?genericsearch_param.start_date%3A0='..tag..'&genericsearch_param.start_date%3A1='..monat..'&genericsearch_param.start_date%3A2='..jahr..'&genericsearch_param.stop_date%3A0='..tag..'&genericsearch_param.stop_date%3A1='..monat..'&genericsearch_param.stop_date%3A2='..jahr..'&%28page.navid%3Ddetailsearchlisttodetailsearchlistupdateresetpage%29=Dokumente+anzeigen&genericsearch_param.fulltext=BAnz+'..pre..'+'..tag..'.'..monat..'.'..jahr..'+'..rubrik
		lbl = 'BAnz '..pre..' '..tag..'.'..monat..'.'..jahr..' '..rubrik
	end
	mname = {"Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"}
	rart, rnr = string.match(rubrik, "(%a)(%d+)")
	art = "unbekannte Rubrik"
	if rart == "V" then art = "Verkündung"
	elseif rart == "B" then art = "Bekanntmachung"
	elseif rart == "A" then art = "Ausschreibung"
	elseif rart == "S" then art = "Rubrik Sonstiges"
	elseif rart == "H" then art = "Hinweis"
	end
    if rnr == nil then error("am Ende der Angabe wird eine Rubrik und eine Nummer erwartet, z. B. 'B1'") end
	if elektronisch then
        nr = string.match(pre, "AT(%d+)")
        abbr = "<abbr title=\"Amtlicher Teil des elektronischen Bundesanzeigers Ausgabe " .. nr .. " Jahrgang " .. jahr .. " " .. art .. " " .. rnr .. "\">"
    else
        abbr = "<abbr title=\"Amtlicher Teil des Bundesanzeigers vom " .. (tag + 0) .. ". " .. mname[monat + 0] .. " " .. jahr .. ", " .. art .. " " .. rnr .. "\">"
    end
    return '['..url..' '..abbr..lbl.."</abbr>"..']'
end


function p.nospc(frame)
    local name = frame.args[1]
    if not name then 
        name = '' 
    end
    name,_ = string.gsub(name,' ','+')
    return name
end



function p.srchbanz(frame)
    local lucky, r = pcall( p.linkBAnz, frame.args[1] )
    if not lucky then
        r = fault( "Parameterfehler in [[Vorlage:BAnz]]: " ) .. r
            .. "[[Kategorie:Wikipedia:Vorlagenfehler/Vorlage:BAnz]]"
    end
    return r
end

return p