Modul:Quelle

Aus Star Citizen Wiki

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

local p = {}

local args = require( 'Module:Arguments' )
local categories = {}
local logo = ''
local afterText = ''

local function parseLink( link )
    if link == nil then
        table.insert( categories, '[[Kategorie:Seite mit fehlerhafter Quelle]]' )

        return
    end

    local function linkHas( string )
        return string.find( mw.ustring.lower( link ), string, 1, true )
    end

    if not linkHas( 'http' ) then
        table.insert( categories, '[[Kategorie:Seite mit fehlerhafter Quelle]]' )
    else
        mw.smw.set({
            Quelle = link
        })
    end

    local logoFileName

    if linkHas( 'youtube' ) then
        logoFileName = 'YouTube_Logo.svg'
        afterText = 'auf YouTube'
    elseif linkHas( 'robertsspaceindustries' ) then
        logoFileName = 'Roberts Space Industries.svg'
        afterText = 'auf der offiziellen RSI '

        if linkHas( 'starmap' ) then
            afterText = afterText .. 'Star Map'
        else
            afterText = afterText .. 'Webseite'
        end
    elseif linkHas( 'starcitizenbase' ) then
        logoFileName = 'Star_Citizen_Base_Logo.svg'
        afterText = 'auf Star Citizen Base'
    elseif linkHas( 'starcitizenblog' ) then
        afterText = 'auf Star Citizen Blog'
    elseif linkHas( 'star-citizen-news-radio' ) then
        logoFileName = 'Star_Citizen_News_Radio_Logo.png'
        afterText = 'auf Star Citizen News Radio'
    elseif linkHas( 'star-citizen.wiki' ) then
        logoFileName = 'Star_Citizen_Wiki_Logo.png'
        afterText = 'in diesem Wiki'
    end

    if logoFileName then
        logo = '[[Datei:' .. logoFileName .. '|x15px|link=|class=noviewer]] '
    end
end

function p.link( frame )
    args = args.getArgs( frame )
    parseLink( args.link )
    
    if args.link == nil then
    	return	table.concat( categories )
	end

    local link = ''
    local extra_text = ''

    if args[1] or args.link_text then
        link = '[' .. args.link .. ' ' .. ( args[1] or args.link_text ) .. ']'
    else
        link = '[' .. args.link .. ' ' .. args.link .. ']'
    end

    if args[2] or args.extra_text then
        extra_text = ( args[2] or args.extra_text ) .. ' '
    end

    return logo .. link .. ' ' .. extra_text .. ' ' .. afterText .. table.concat( categories )
end

return p