Dokumentationen för denna modul kan skapas på Modul:FMIS/dok

local p = {}

function p.makeUrl( frame )
    local pargs = frame:getParent().args
    if pargs['lat'] == "" then
        return 'koordinater saknas'
    else
        local url = '//geohack.toolforge.org/geohack.php?language=sv&pagename=' .. p.url_encode(mw.title.getCurrentTitle().text) ..'&title='
        if pargs['namn'] and pargs['namn'] ~= "" then
            titlestr = pargs['namn']
        else
            titlestr = pargs['raä-nr']
        end
        titlestr = titlestr .. ', ' .. pargs['plats'] .. ' ' .. pargs['id']
        url = url .. p.url_encode(titlestr) .. '&params=' .. pargs['lat'] .. '_N_' .. pargs['long'] .. '_E_region:SE_type:landmark'
        show = pargs['lat'] .. ', ' .. pargs['long']
        return '[' .. url .. ' ' .. show .. '] ' .. mw.getCurrentFrame():preprocess("{{#coordinates:" .. pargs['lat'] .. '|' .. pargs['long'].. '|type:landmark_region:SW|name=' .. titlestr .."}}")
    end
end

function p.campaignLink( frame )
    local ppargs = frame:getParent().args
    --as longitude naming isn't standardised
    local lon = ppargs['lon']
    if lon == nil then
        lon = ppargs['long']
    end
    --
    url = '//commons.wikimedia.org/wiki/special:uploadWizard?campaign=' .. ppargs['kampanj'] .. '&id=' .. p.url_encode(ppargs['id']) .. '&descriptionlang='
    if ppargs['beskrivninglang'] == "" or ppargs['beskrivninglang'] == nil then
        url = url .. 'sv'
    else
        url = url .. ppargs['beskrivninglang']
    end
    url = url .. '&description=' .. p.url_encode(ppargs['beskrivning'])
    if ppargs['lat'] ~= "" and ppargs['lat'] ~= nil then
        url = url .. '&lat=' .. ppargs['lat'] .. '&lon=' .. ppargs['lon']
    end
    if ppargs['commonscat'] ~= ""  and ppargs['commonscat'] ~= nil then
        url = url .. '&categories=' .. p.url_encode(ppargs['commonscat'])
    elseif ppargs['kategorier'] ~= ""  and ppargs['kategorier'] ~= nil then
        url = url .. '&categories=' .. p.url_encode(ppargs['kategorier'])
    end
    return url
end

function p.url_encode(str)
    if (str) then
        str = string.gsub (str, "\n", "\r\n")
        str = string.gsub (str, "([^%w %-%_%.%~])",
            function (c) return string.format ("%%%02X", string.byte(c)) end)
        str = string.gsub (str, " ", "+")
    end
    return str    
end

return p