Both the Screamercord and this very wiki are currently listed as adult websites by AI classification models. We are currently working to remedy this, 2026 is not 2019.

In the meantime, you can help by moving all permalinks to IPFS

User:Windowszin/Sandbox: Difference between revisions

From Screamer Wiki
Jump to navigation Jump to search
Windowszin (talk | contribs)
No edit summary
Windowszin (talk | contribs)
No edit summary
Line 1: Line 1:
<sup>XDD</sup>[[User:Windowszin|Windowszin]] ([[User talk:Windowszin|talk]]) 20:57, 30 June 2023 (MST)
<sup>XDD</sup>[[User:Windowszin|Windowszin]] ([[User talk:Windowszin|talk]]) 20:57, 30 June 2023 (MST)


{{namespace detect/data}}
{{Module:namespace detect/data}}

Revision as of 19:57, 1 July 2023

XDDWindowszin (talk) 20:57, 30 June 2023 (MST)


-- Namespace detect data -- -- This module holds data for Module:Namespace detect to be loaded per -- -- page, rather than per #invoke, for performance reasons. --


local cfg = require('Module:Namespace detect/config')

local function addKey(t, key, defaultKey) if key ~= defaultKey then t[#t + 1] = key end end

-- Get a table of parameters to query for each default parameter name. -- This allows wikis to customise parameter names in the cfg table while -- ensuring that default parameter names will always work. The cfg table -- values can be added as a string, or as an array of strings.

local defaultKeys = { 'main', 'talk', 'other', 'subjectns', 'demospace', 'demopage' }

local argKeys = {} for i, defaultKey in ipairs(defaultKeys) do argKeys[defaultKey] = {defaultKey} end

for defaultKey, t in pairs(argKeys) do local cfgValue = cfg[defaultKey] local cfgValueType = type(cfgValue) if cfgValueType == 'string' then addKey(t, cfgValue, defaultKey) elseif cfgValueType == 'table' then for i, key in ipairs(cfgValue) do addKey(t, key, defaultKey) end end cfg[defaultKey] = nil -- Free the cfg value as we don't need it any more. end

local function getParamMappings() --[[ -- Returns a table of how parameter names map to namespace names. The keys -- are the actual namespace names, in lower case, and the values are the -- possible parameter names for that namespace, also in lower case. The -- table entries are structured like this: -- { -- [] = {'main'}, -- ['wikipedia'] = {'wikipedia', 'project', 'wp'}, -- ... -- } --]] local mappings = {} local mainNsName = mw.site.subjectNamespaces[0].name mainNsName = mw.ustring.lower(mainNsName) mappings[mainNsName] = mw.clone(argKeys.main) mappings['talk'] = mw.clone(argKeys.talk) for nsid, ns in pairs(mw.site.subjectNamespaces) do if nsid ~= 0 then -- Exclude main namespace. local nsname = mw.ustring.lower(ns.name) local canonicalName = mw.ustring.lower(ns.canonicalName) mappings[nsname] = {nsname} if canonicalName ~= nsname then table.insert(mappings[nsname], canonicalName) end for _, alias in ipairs(ns.aliases) do table.insert(mappings[nsname], mw.ustring.lower(alias)) end end end return mappings end

return { argKeys = argKeys, cfg = cfg, mappings = getParamMappings() }