Changes

MyWikiBiz, Author Your Legacy — Saturday June 29, 2024
Jump to navigationJump to search
1,636 bytes added ,  06:02, 16 July 2021
Pywikibot 6.4.0
-- This module processes data from [[Module:Signpost/index]], to be loaded from
-- [[Module:Signpost]] with mw.loadData.

local PAGE_FORMAT = 'Wikipedia:Wikipedia Signpost/%s/%s'
local INDEX_START_YEAR = 2005
local INDEX_BASE = 'Module:Signpost/index/'
local ALIASES_MODULE = 'Module:Signpost/aliases'
local insert = table.insert
local format = string.format

local function makePageName(date, subpage)
return format(PAGE_FORMAT, date, subpage)
end

local function addSubtable(tIn, tOut, key)
tOut[key] = tOut[key] or {}
insert(tOut[key], tIn)
end

local function maybeRequire(page)
local success, module = pcall(require, page)
if success then
return module
end
end

local function getYearIndexes()
local ret = {}
for i = INDEX_START_YEAR, os.date('*t').year + 1 do
local module = maybeRequire(INDEX_BASE .. tostring(i))
insert(ret, module)
end
return ret
end

local function makeAliases()
local aliasData = require(ALIASES_MODULE)
local ret = {}
for key, aliases in pairs(aliasData) do
for i, alias in ipairs(aliases) do
ret[alias] = key
end
end
return ret
end

local function main()
local list, dates, tags, pages = {}, {}, {}, {}
local i = 0
for j, index in ipairs(getYearIndexes()) do
for k, t in ipairs(index) do
i = i + 1
t.sortKey = i
local date = t.date
local page = makePageName(date, t.subpage)
t.page = page
list[i] = t
addSubtable(t, dates, date)
for l, tag in ipairs(t.tags) do
addSubtable(t, tags, tag)
end
pages[page] = t
end
end
return {
list = list,
dates = dates,
tags = tags,
pages = pages,
aliases = makeAliases()
}
end

return main()

Navigation menu