Módulo:WorldOrder
De Bahaipedia
La documentación para este módulo puede ser creada en Módulo:WorldOrder/doc
local module = {}
-- Combined data structure
local combined_map = {
["0101"] = {
pdfOffset = "2",
publicationDate = "April, 1935",
itemNumber = "Q14"
},
["0102"] = {
pdfOffset = "-38",
publicationDate = "May, 1935",
itemNumber = "Q33"
},
["0103"] = {
pdfOffset = "-78",
publicationDate = "June, 1935",
itemNumber = "Q56"
},
["0104"] = {
pdfOffset = "-118",
publicationDate = "July, 1935",
itemNumber = "Q79"
},
["0105"] = {
pdfOffset = "-158",
publicationDate = "August, 1935",
itemNumber = "Q96"
},
["0106"] = {
pdfOffset = "-198",
publicationDate = "September, 1935",
itemNumber = "Q112"
},
["0107"] = {
pdfOffset = "-238",
publicationDate = "October, 1935",
itemNumber = ""
},
["0108"] = {
pdfOffset = "-278",
publicationDate = "November, 1935",
itemNumber = ""
},
["0109"] = {
pdfOffset = "-318",
publicationDate = "December, 1935",
itemNumber = ""
},
["0110"] = {
pdfOffset = "-358",
publicationDate = "January, 1936",
itemNumber = ""
},
["0111"] = {
pdfOffset = "-398",
publicationDate = "February, 1936",
itemNumber = ""
},
["0112"] = {
pdfOffset = "-442",
publicationDate = "March, 1936",
itemNumber = ""
},
["0201"] = {
pdfOffset = "2",
publicationDate = "April, 1936",
itemNumber = "Q216"
},
["0202"] = {
pdfOffset = "-40",
publicationDate = "May, 1936",
itemNumber = "Q217"
},
["0203"] = {
pdfOffset = "-80",
publicationDate = "June, 1936",
itemNumber = "Q218"
},
["0204"] = {
pdfOffset = "-120",
publicationDate = "July, 1936",
itemNumber = "Q219"
},
["0205"] = {
pdfOffset = "-160",
publicationDate = "August, 1936",
itemNumber = "Q220"
},
["0206"] = {
pdfOffset = "-200",
publicationDate = "September, 1936",
itemNumber = "Q221"
},
["0207"] = {
pdfOffset = "-240",
publicationDate = "October, 1936",
itemNumber = "Q222"
},
["0208"] = {
pdfOffset = "-280",
publicationDate = "November, 1936",
itemNumber = "Q223"
},
["0209"] = {
pdfOffset = "-320",
publicationDate = "December, 1936",
itemNumber = "Q224"
},
["0210"] = {
pdfOffset = "-360",
publicationDate = "January, 1937",
itemNumber = "Q225"
},
["0211"] = {
pdfOffset = "-400",
publicationDate = "February, 1937",
itemNumber = "Q226"
},
["0212"] = {
pdfOffset = "-440",
publicationDate = "March, 1937",
itemNumber = "Q227"
},
["0301"] = {
pdfOffset = "2",
publicationDate = "April, 1937",
itemNumber = "Q229"
},
["0302"] = {
pdfOffset = "-38",
publicationDate = "May, 1937",
itemNumber = "Q230"
},
["0303"] = {
pdfOffset = "-78",
publicationDate = "June, 1937",
itemNumber = "Q231"
},
["0304"] = {
pdfOffset = "-118",
publicationDate = "July, 1937",
itemNumber = "Q232"
},
["0305"] = {
pdfOffset = "-158",
publicationDate = "August, 1937",
itemNumber = "Q233"
},
["0306"] = {
pdfOffset = "-198",
publicationDate = "September, 1937",
itemNumber = "Q234"
},
["0307"] = {
pdfOffset = "-238",
publicationDate = "October, 1937",
itemNumber = "Q235"
},
["0308"] = {
pdfOffset = "-278",
publicationDate = "November, 1937",
itemNumber = "Q236"
},
["0309"] = {
pdfOffset = "-318",
publicationDate = "December, 1937",
itemNumber = "Q237"
},
["0310"] = {
pdfOffset = "-358",
publicationDate = "January, 1938",
itemNumber = "Q238"
},
["0311"] = {
pdfOffset = "-398",
publicationDate = "February, 1938",
itemNumber = "Q239"
},
["0312"] = {
pdfOffset = "-438",
publicationDate = "March, 1938",
itemNumber = "Q240"
},
["0401"] = {
pdfOffset = "2",
publicationDate = "April, 1938",
itemNumber = "Q242"
},
["0402"] = {
pdfOffset = "-38",
publicationDate = "May, 1938",
itemNumber = "Q243"
},
["0403"] = {
pdfOffset = "-78",
publicationDate = "June, 1938",
itemNumber = "Q244"
},
["0404"] = {
pdfOffset = "-118",
publicationDate = "July, 1938",
itemNumber = "Q245"
},
["0405"] = {
pdfOffset = "-158",
publicationDate = "August, 1938",
itemNumber = "Q246"
},
["0406"] = {
pdfOffset = "-200",
publicationDate = "September, 1938",
itemNumber = "Q247"
},
["0407"] = {
pdfOffset = "-240",
publicationDate = "October, 1938",
itemNumber = "Q248"
},
["0408"] = {
pdfOffset = "-282",
publicationDate = "November, 1938",
itemNumber = "Q249"
},
["0409"] = {
pdfOffset = "-322",
publicationDate = "December, 1938",
itemNumber = "Q250"
},
["0410"] = {
pdfOffset = "-362",
publicationDate = "January, 1939",
itemNumber = "Q251"
},
["0411"] = {
pdfOffset = "-402",
publicationDate = "February, 1939",
itemNumber = "Q252"
},
["0412"] = {
pdfOffset = "-442",
publicationDate = "March, 1939",
itemNumber = "Q253"
},
["0501"] = {
pdfOffset = "2",
publicationDate = "April, 1939",
itemNumber = "Q255"
},
["0502"] = {
pdfOffset = "-38",
publicationDate = "May, 1939",
itemNumber = "Q256"
},
["0503"] = {
pdfOffset = "-78",
publicationDate = "June, 1939",
itemNumber = "Q257"
},
["0504"] = {
pdfOffset = "-118",
publicationDate = "July, 1939",
itemNumber = "Q258"
},
["0505"] = {
pdfOffset = "-158",
publicationDate = "August, 1939",
itemNumber = "Q259"
},
["0506"] = {
pdfOffset = "-198",
publicationDate = "September, 1939",
itemNumber = "Q260"
},
["0507"] = {
pdfOffset = "-238",
publicationDate = "October, 1939",
itemNumber = "Q261"
},
["0508"] = {
pdfOffset = "-278",
publicationDate = "November, 1939",
itemNumber = "Q262"
},
["0509"] = {
pdfOffset = "-318",
publicationDate = "December, 1939",
itemNumber = "Q263"
},
["0510"] = {
pdfOffset = "-358",
publicationDate = "January, 1940",
itemNumber = "Q264"
},
["0511"] = {
pdfOffset = "-398",
publicationDate = "February, 1940",
itemNumber = "Q265"
},
["0512"] = {
pdfOffset = "-438",
publicationDate = "March, 1940",
itemNumber = "Q266"
},
["0601"] = {
pdfOffset = "0",
publicationDate = "April, 1940",
itemNumber = "Q268"
},
["0602"] = {
pdfOffset = "-34",
publicationDate = "May, 1940",
itemNumber = "Q269"
},
["0603"] = {
pdfOffset = "-76",
publicationDate = "June, 1940",
itemNumber = "Q270"
},
["0604"] = {
pdfOffset = "-112",
publicationDate = "July, 1940",
itemNumber = "Q271"
},
["0605"] = {
pdfOffset = "-152",
publicationDate = "August, 1940",
itemNumber = "Q272"
},
["0606"] = {
pdfOffset = "-192",
publicationDate = "September, 1940",
itemNumber = "Q273"
},
["0607"] = {
pdfOffset = "-228",
publicationDate = "October, 1940",
itemNumber = "Q274"
},
["0608"] = {
pdfOffset = "-268",
publicationDate = "November, 1940",
itemNumber = "Q275"
},
["0609"] = {
pdfOffset = "-304",
publicationDate = "December, 1940",
itemNumber = "Q276"
},
["0610"] = {
pdfOffset = "-340",
publicationDate = "January, 1941",
itemNumber = "Q277"
},
["0611"] = {
pdfOffset = "-376",
publicationDate = "February, 1941",
itemNumber = "Q278"
},
["0612"] = {
pdfOffset = "-412",
publicationDate = "March, 1941",
itemNumber = "Q279"
},
["0701"] = {
pdfOffset = "2",
publicationDate = "April, 1941",
itemNumber = "Q281"
},
["0702"] = {
pdfOffset = "-38",
publicationDate = "May, 1941",
itemNumber = "Q282"
},
["0703"] = {
pdfOffset = "-82",
publicationDate = "June, 1941",
itemNumber = "Q283"
},
["0704"] = {
pdfOffset = "-119",
publicationDate = "July, 1941",
itemNumber = "Q284"
},
["0705"] = {
pdfOffset = "-154",
publicationDate = "August, 1941",
itemNumber = ""
},
["0706"] = {
pdfOffset = "-186",
publicationDate = "September, 1941",
itemNumber = ""
},
["0707"] = {
pdfOffset = "-222",
publicationDate = "October, 1941",
itemNumber = ""
},
["0708"] = {
pdfOffset = "-258",
publicationDate = "November, 1941",
itemNumber = ""
},
["0709"] = {
pdfOffset = "-294",
publicationDate = "December, 1941",
itemNumber = ""
},
["0710"] = {
pdfOffset = "-330",
publicationDate = "January, 1942",
itemNumber = ""
},
["0711"] = {
pdfOffset = "-366",
publicationDate = "February, 1942",
itemNumber = ""
},
["0712"] = {
pdfOffset = "-402",
publicationDate = "March, 1942",
itemNumber = ""
},
["0801"] = {
pdfOffset = "2",
publicationDate = "April, 1942",
itemNumber = ""
},
["0802"] = {
pdfOffset = "-34",
publicationDate = "May, 1942",
itemNumber = ""
},
["0803"] = {
pdfOffset = "-70",
publicationDate = "June, 1942",
itemNumber = ""
},
["0804"] = {
pdfOffset = "-106",
publicationDate = "July, 1942",
itemNumber = ""
},
["0805"] = {
pdfOffset = "-142",
publicationDate = "August, 1942",
itemNumber = ""
},
["0806"] = {
pdfOffset = "-178",
publicationDate = "September, 1942",
itemNumber = ""
},
["0807"] = {
pdfOffset = "-214",
publicationDate = "October, 1942",
itemNumber = ""
},
["0808"] = {
pdfOffset = "-250",
publicationDate = "November, 1942",
itemNumber = ""
},
["0809"] = {
pdfOffset = "-286",
publicationDate = "December, 1942",
itemNumber = ""
},
["0810"] = {
pdfOffset = "-322",
publicationDate = "January, 1943",
itemNumber = ""
},
["0811"] = {
pdfOffset = "-358",
publicationDate = "February, 1943",
itemNumber = ""
},
["0812"] = {
pdfOffset = "-394",
publicationDate = "March, 1943",
itemNumber = ""
},
["0901"] = {
pdfOffset = "2",
publicationDate = "April, 1943",
itemNumber = ""
},
["0902"] = {
pdfOffset = "-34",
publicationDate = "May, 1943",
itemNumber = ""
},
["0903"] = {
pdfOffset = "-70",
publicationDate = "June, 1943",
itemNumber = ""
},
["0904"] = {
pdfOffset = "-106",
publicationDate = "July, 1943",
itemNumber = ""
},
["0905"] = {
pdfOffset = "-142",
publicationDate = "August, 1943",
itemNumber = ""
},
["0906"] = {
pdfOffset = "-178",
publicationDate = "September, 1943",
itemNumber = ""
},
["0907"] = {
pdfOffset = "-214",
publicationDate = "October, 1943",
itemNumber = ""
},
["0908"] = {
pdfOffset = "-250",
publicationDate = "November, 1943",
itemNumber = ""
},
["0909"] = {
pdfOffset = "-286",
publicationDate = "December, 1943",
itemNumber = ""
},
["0910"] = {
pdfOffset = "-324",
publicationDate = "January, 1944",
itemNumber = ""
},
["0911"] = {
pdfOffset = "-360",
publicationDate = "February, 1944",
itemNumber = ""
},
["0912"] = {
pdfOffset = "-396",
publicationDate = "March, 1944",
itemNumber = ""
},
["1001"] = {
pdfOffset = "2",
publicationDate = "April, 1944",
itemNumber = ""
},
["1002"] = {
pdfOffset = "-30",
publicationDate = "May, 1944",
itemNumber = ""
},
["1003"] = {
pdfOffset = "-70",
publicationDate = "June, 1944",
itemNumber = ""
},
["1004"] = {
pdfOffset = "-102",
publicationDate = "July, 1944",
itemNumber = ""
},
["1005"] = {
pdfOffset = "-134",
publicationDate = "August, 1944",
itemNumber = ""
},
["1006"] = {
pdfOffset = "-166",
publicationDate = "September, 1944",
itemNumber = ""
},
["1007"] = {
pdfOffset = "-198",
publicationDate = "October, 1944",
itemNumber = ""
},
["1008"] = {
pdfOffset = "-230",
publicationDate = "November, 1944",
itemNumber = ""
},
["1009"] = {
pdfOffset = "-262",
publicationDate = "December, 1944",
itemNumber = ""
},
["1010"] = {
pdfOffset = "-396",
publicationDate = "January, 1945",
itemNumber = ""
},
["1011"] = {
pdfOffset = "-328",
publicationDate = "February, 1945",
itemNumber = ""
},
["1012"] = {
pdfOffset = "-358",
publicationDate = "March, 1945",
itemNumber = ""
},
["1101"] = {
pdfOffset = "2",
publicationDate = "April, 1945",
itemNumber = ""
},
["1102"] = {
pdfOffset = "-30",
publicationDate = "May, 1945",
itemNumber = ""
},
["1103"] = {
pdfOffset = "-62",
publicationDate = "June, 1945",
itemNumber = ""
},
["1104"] = {
pdfOffset = "-94",
publicationDate = "July, 1945",
itemNumber = ""
},
["1105"] = {
pdfOffset = "-126",
publicationDate = "August, 1945",
itemNumber = ""
},
["1106"] = {
pdfOffset = "-158",
publicationDate = "September, 1945",
itemNumber = ""
},
["1107"] = {
pdfOffset = "-190",
publicationDate = "October, 1945",
itemNumber = ""
},
["1108"] = {
pdfOffset = "-222",
publicationDate = "November, 1945",
itemNumber = ""
},
["1109"] = {
pdfOffset = "-254",
publicationDate = "December, 1945",
itemNumber = ""
},
["1110"] = {
pdfOffset = "-286",
publicationDate = "January, 1946",
itemNumber = ""
},
["1111"] = {
pdfOffset = "-318",
publicationDate = "February, 1946",
itemNumber = ""
},
["1112"] = {
pdfOffset = "-350",
publicationDate = "March, 1946",
itemNumber = ""
},
["1201"] = {
pdfOffset = "2",
publicationDate = "April, 1946",
itemNumber = ""
},
["1202"] = {
pdfOffset = "-30",
publicationDate = "May, 1946",
itemNumber = ""
},
["1203"] = {
pdfOffset = "-62",
publicationDate = "June, 1946",
itemNumber = ""
},
["1204"] = {
pdfOffset = "-94",
publicationDate = "July, 1946",
itemNumber = ""
},
["1205"] = {
pdfOffset = "-126",
publicationDate = "August, 1946",
itemNumber = ""
},
["1206"] = {
pdfOffset = "-158",
publicationDate = "September, 1946",
itemNumber = ""
},
["1207"] = {
pdfOffset = "-190",
publicationDate = "October, 1946",
itemNumber = ""
},
["1208"] = {
pdfOffset = "-222",
publicationDate = "November, 1946",
itemNumber = ""
},
["1209"] = {
pdfOffset = "-254",
publicationDate = "December, 1946",
itemNumber = ""
},
["1210"] = {
pdfOffset = "-286",
publicationDate = "January, 1947",
itemNumber = ""
},
["1211"] = {
pdfOffset = "-318",
publicationDate = "February, 1947",
itemNumber = ""
},
["1212"] = {
pdfOffset = "-350",
publicationDate = "March, 1947",
itemNumber = ""
},
["1301"] = {
pdfOffset = "2",
publicationDate = "April, 1947",
itemNumber = ""
},
["1302"] = {
pdfOffset = "-34",
publicationDate = "May, 1947",
itemNumber = ""
},
["1303"] = {
pdfOffset = "-70",
publicationDate = "June, 1947",
itemNumber = ""
},
["1304"] = {
pdfOffset = "-106",
publicationDate = "July, 1947",
itemNumber = ""
},
["1305"] = {
pdfOffset = "-142",
publicationDate = "August, 1947",
itemNumber = ""
},
["1306"] = {
pdfOffset = "-178",
publicationDate = "September, 1947",
itemNumber = ""
},
["1307"] = {
pdfOffset = "-214",
publicationDate = "October, 1947",
itemNumber = ""
},
["1308"] = {
pdfOffset = "-250",
publicationDate = "November, 1947",
itemNumber = ""
},
["1309"] = {
pdfOffset = "-250",
publicationDate = "December, 1947",
itemNumber = ""
},
["1310"] = {
pdfOffset = "-312",
publicationDate = "January, 1948",
itemNumber = ""
},
["1311"] = {
pdfOffset = "-358",
publicationDate = "February, 1948",
itemNumber = ""
},
["1312"] = {
pdfOffset = "-394",
publicationDate = "March, 1948",
itemNumber = ""
},
["1401"] = {
pdfOffset = "2",
publicationDate = "April, 1948",
itemNumber = ""
},
["1402"] = {
pdfOffset = "-34",
publicationDate = "May, 1948",
itemNumber = ""
},
["1403"] = {
pdfOffset = "-70",
publicationDate = "June, 1948",
itemNumber = ""
},
["1404"] = {
pdfOffset = "-106",
publicationDate = "July, 1948",
itemNumber = ""
},
["1405"] = {
pdfOffset = "-142",
publicationDate = "August, 1948",
itemNumber = ""
},
["1406"] = {
pdfOffset = "-178",
publicationDate = "September, 1948",
itemNumber = ""
},
["1407"] = {
pdfOffset = "-214",
publicationDate = "October, 1948",
itemNumber = ""
},
["1408"] = {
pdfOffset = "-250",
publicationDate = "November, 1948",
itemNumber = ""
},
["1409"] = {
pdfOffset = "-286",
publicationDate = "December, 1948",
itemNumber = ""
},
["1410"] = {
pdfOffset = "-322",
publicationDate = "January, 1949",
itemNumber = ""
},
["1411"] = {
pdfOffset = "-358",
publicationDate = "February, 1949",
itemNumber = ""
},
["1412"] = {
pdfOffset = "-394",
publicationDate = "March, 1949",
itemNumber = ""
}
}
-- Function to generate padded keys (No change needed)
function getPaddedKey(vol, iss)
local volPadded = string.format("%02d", vol)
local issPadded = string.format("%02d", iss)
return volPadded .. issPadded
end
-- Accept the input as the volume/issue number, return date published
function module.publicationDate(frame)
local volNumber = tonumber(frame.args[1])
local issNumber = tonumber(frame.args[2])
local key = getPaddedKey(volNumber, issNumber)
if combined_map[key] then
return combined_map[key].publicationDate
else
return nil -- or some default value or error message
end
end
-- Accept the input as volume number, return pdf page number offset
function module.pdfOffset(frame)
local volumeNumber = tonumber(frame.args[1])
local issueNumber = tonumber(frame.args[2])
local key = getPaddedKey(volumeNumber, issueNumber)
if combined_map[key] then
return combined_map[key].pdfOffset
else
return nil -- or some default value or error message
end
end
-- BEGIN SECTION WHICH RETURNS AN ARTICLE OR AUTHOR BY VOL/ISSUE/PAGE NUMBER --
-- Usage: [[Template:Citewo]]
-- Internal function to fetch article IDs from an issue item
function module.fetchArticleIDs(issueItemID)
local issueItem = mw.wikibase.getEntity(issueItemID)
local articleIDs = {}
if not issueItem or not issueItem.claims then
return articleIDs
end
local articlesPropertyID = 'P4'
local articles = issueItem.claims[articlesPropertyID]
if not articles then
return articleIDs
end
for _, articleSnak in ipairs(articles) do
if articleSnak.mainsnak and articleSnak.mainsnak.datavalue then
local articleID = articleSnak.mainsnak.datavalue.value.id
table.insert(articleIDs, articleID)
end
end
return articleIDs
end
-- Internal function to parse a page range string
function module.parsePageRange(pageRange)
local startPage, endPage = pageRange:match("(%d+)-?(%d*)")
startPage = tonumber(startPage)
endPage = (endPage ~= "" and tonumber(endPage)) or startPage
return startPage, endPage
end
-- Internal function to fetch article page ranges from a list of article IDs
function module.fetchArticlePageRanges(articleIDs)
local articlePageRanges = {}
for _, articleID in ipairs(articleIDs) do
local articleItem = mw.wikibase.getEntity(articleID)
if articleItem and articleItem.claims then
local pagesPropertyID = 'P6'
local pagesClaims = articleItem.claims[pagesPropertyID]
if pagesClaims then
for _, pagesSnak in ipairs(pagesClaims) do
if pagesSnak.mainsnak and pagesSnak.mainsnak.datavalue then
local pageRange = pagesSnak.mainsnak.datavalue.value
local startPage, endPage = module.parsePageRange(pageRange)
table.insert(articlePageRanges, {id = articleID, startPage = startPage, endPage = endPage})
end
end
end
end
end
return articlePageRanges
end
-- Function to find an article by page number
function module.findArticleByPageNumber(articlePageRanges, queriedPage)
local primaryMatch = nil
local secondaryMatch = nil
-- Check for Article Start
for _, article in ipairs(articlePageRanges) do
if article.startPage == queriedPage then
primaryMatch = article.id
break
elseif queriedPage >= article.startPage and queriedPage <= article.endPage then
secondaryMatch = article.id
end
end
-- Return primary match or secondary match
return primaryMatch or secondaryMatch
end
-- Internal function to get the article ID based on volume, issue, and page
function module.getArticleIDByPage(vol, iss, page)
local mapKey = string.format("%02d%02d", tonumber(vol), tonumber(iss))
local issueItemID = combined_map[mapKey] and combined_map[mapKey].itemNumber
if not issueItemID then
return nil, "Issue item ID not found for the given volume and issue."
end
local articleIDs = module.fetchArticleIDs(issueItemID)
local articlePageRanges = module.fetchArticlePageRanges(articleIDs)
local articleID = module.findArticleByPageNumber(articlePageRanges, page)
return articleID
end
-- Function to fetch the author of an article item
function module.fetchArticleAuthor(articleID)
local articleItem = mw.wikibase.getEntity(articleID)
if articleItem and articleItem.claims then
local authorPropertyID = 'P10' -- Replace with the actual property ID for "author"
local authorClaims = articleItem.claims[authorPropertyID]
-- Check for author
if authorClaims then
for _, authorSnak in ipairs(authorClaims) do
if authorSnak.mainsnak and authorSnak.mainsnak.datavalue then
-- Assuming the author is stored as an item
local authorID = authorSnak.mainsnak.datavalue.value.id
local authorItem = mw.wikibase.getEntity(authorID)
if authorItem then
local authorName = authorItem.labels.en.value -- Assuming the name is in English
return authorName
end
end
end
end
-- Check for editorial (Q19)
local editorialPropertyID = 'P12'
local editorialClaims = articleItem.claims[editorialPropertyID]
if editorialClaims then
for _, editorialSnak in ipairs(editorialClaims) do
if editorialSnak.mainsnak and editorialSnak.mainsnak.datavalue then
local editorialID = editorialSnak.mainsnak.datavalue.value.id
if editorialID == "Q19" then -- Assuming Q19 is the ID for "editorial"
return "Editorial"
end
end
end
end
end
return 'Unknown Author'
end
-- External function to be invoked by templates to get article name by page number
function module.getArticleByPage(frame)
local vol = frame.args.vol
local iss = frame.args.iss
local page = tonumber(frame.args.page)
local articleID, errMsg = module.getArticleIDByPage(vol, iss, page)
if not articleID then
return errMsg or "No article found on page " .. tostring(page)
end
local articleItem = mw.wikibase.getEntity(articleID)
local articleName = articleItem and articleItem.labels and articleItem.labels.en and articleItem.labels.en.value or 'Unknown Article Name'
return articleName
end
-- External function to get article author by page number
function module.getAuthorByPage(frame)
local vol = frame.args.vol
local iss = frame.args.iss
local page = tonumber(frame.args.page)
local articleID, errMsg = module.getArticleIDByPage(vol, iss, page)
if not articleID then
return errMsg or "No article found on page " .. tostring(page)
end
return module.fetchArticleAuthor(articleID)
end
-- END SECTION WHICH RETURNS AN ARTICLE OR AUTHOR BY VOL/ISSUE/PAGE NUMBER --
--External function to check if itemNumber exists given vol/iss/page
function module.checkItemNumber(frame)
local vol = frame.args.vol
local iss = frame.args.iss
local mapKey = string.format("%02d%02d", tonumber(vol), tonumber(iss))
local item = combined_map[mapKey]
if item and item.itemNumber ~= "" then
return "true" -- itemNumber exists and is not empty
else
return "false" -- itemNumber does not exist or is empty
end
end
-- External function to retrieve a list of article titles for a given volume and issue
function module.getArticleTitles(frame)
local vol = frame.args.vol
local iss = frame.args.iss
local mapKey = string.format("%02d%02d", tonumber(vol), tonumber(iss))
local issueItemID = combined_map[mapKey] and combined_map[mapKey].itemNumber
if not issueItemID then
return "Issue item ID not found for the given volume and issue."
end
local articleIDs = module.fetchArticleIDs(issueItemID)
local articleTitles = {}
for _, articleID in ipairs(articleIDs) do
local articleItem = mw.wikibase.getEntity(articleID)
local articleTitle = articleItem and articleItem.labels and articleItem.labels.en and articleItem.labels.en.value or 'Unknown Article Title'
table.insert(articleTitles, articleTitle)
end
return table.concat(articleTitles, ", ")
end
return module