(Created page with "local utilsCargo = require("Module:UtilsCargo") local utilsString = require("Module:UtilsString") local utilsTable = require("Module:UtilsTable") local gameFields = "canonOrder, code, article, shortName, link, display, logo, releaseDate, canonicity, type, graphics, family, remakeOf, supersededBy" local bookFields = "canonOrder, code, article, shortName, link, display, logo, releaseDate, canonicity, type, phraseLink, publisher, authors, basedOn" local tvFields = "canonOr...") |
No edit summary |
||
Line 3: | Line 3: | ||
local utilsTable = require("Module:UtilsTable") | local utilsTable = require("Module:UtilsTable") | ||
local gameFields = " | local gameFields = "releaseOrder, code, article, shortName, link, display, logo, releaseDate, canonicity, type, graphics, family, remakeOf, supersededBy" | ||
local bookFields = " | local bookFields = "releaseOrder, code, article, shortName, link, display, logo, releaseDate, canonicity, type, phraseLink, publisher, authors, basedOn" | ||
local tvFields = " | local tvFields = "releaseOrder, code, article, shortName, link, display, logo, releaseDate, canonicity, type" | ||
local nonFictionFields = "code, article, shortName, link, display, logo, releaseDate, canonicity, publisher, titles" | local nonFictionFields = "code, article, shortName, link, display, logo, releaseDate, canonicity, publisher, titles" | ||
local groupFields= "code, article, shortName, link, display, logo, releaseDate, canonicity, games" | local groupFields= "code, article, shortName, link, display, logo, releaseDate, canonicity, games" | ||
local games = utilsCargo.query("Games", gameFields, { sortBy = " | local games = utilsCargo.query("Games", gameFields, { sortBy = "releaseOrder", limit = 200 }) | ||
local books = utilsCargo.query("Books", bookFields, { sortBy = " | local books = utilsCargo.query("Books", bookFields, { sortBy = "releaseOrder" }) | ||
local tvShows = utilsCargo.query("TelevisionShows", tvFields, { sortBy = " | local tvShows = utilsCargo.query("TelevisionShows", tvFields, { sortBy = "releaseOrder" }) | ||
local nonfiction = utilsCargo.query("Nonfiction", nonFictionFields, { sortBy = "releaseDate" }) | local nonfiction = utilsCargo.query("Nonfiction", nonFictionFields, { sortBy = "releaseDate" }) | ||
local groups = utilsCargo.query("GameGroups", groupFields, { sortBy = "releaseDate" }) | local groups = utilsCargo.query("GameGroups", groupFields, { sortBy = "releaseDate" }) | ||
Line 24: | Line 24: | ||
for _, game in ipairs(games) do | for _, game in ipairs(games) do | ||
codes[tonumber(game. | codes[tonumber(game.releaseOrder)] = game.code | ||
gameCodes[tonumber(game. | gameCodes[tonumber(game.releaseOrder)] = game.code | ||
titlesByCode[string.lower(game.code)] = game | titlesByCode[string.lower(game.code)] = game | ||
if game.remakeOf then | if game.remakeOf then | ||
Line 38: | Line 38: | ||
for _, book in ipairs(books) do | for _, book in ipairs(books) do | ||
if utilsString.notEmpty(book.code) then -- workaround for Cargo bug inserting duplicate rows (but without code) | if utilsString.notEmpty(book.code) then -- workaround for Cargo bug inserting duplicate rows (but without code) | ||
codes[tonumber(book. | codes[tonumber(book.releaseOrder)] = book.code | ||
titlesByCode[string.lower(book.code)] = book | titlesByCode[string.lower(book.code)] = book | ||
end | end | ||
Line 44: | Line 44: | ||
for _, tvShow in ipairs(tvShows) do | for _, tvShow in ipairs(tvShows) do | ||
codes[tonumber(tvShow. | codes[tonumber(tvShow.releaseOrder)] = tvShow.code | ||
titlesByCode[string.lower(tvShow.code)] = tvShow | titlesByCode[string.lower(tvShow.code)] = tvShow | ||
end | end |
Revision as of 09:26, 6 August 2024
Documentation for this module may be created at Module:Franchise/Cache/doc
local utilsCargo = require("Module:UtilsCargo") local utilsString = require("Module:UtilsString") local utilsTable = require("Module:UtilsTable") local gameFields = "releaseOrder, code, article, shortName, link, display, logo, releaseDate, canonicity, type, graphics, family, remakeOf, supersededBy" local bookFields = "releaseOrder, code, article, shortName, link, display, logo, releaseDate, canonicity, type, phraseLink, publisher, authors, basedOn" local tvFields = "releaseOrder, code, article, shortName, link, display, logo, releaseDate, canonicity, type" local nonFictionFields = "code, article, shortName, link, display, logo, releaseDate, canonicity, publisher, titles" local groupFields= "code, article, shortName, link, display, logo, releaseDate, canonicity, games" local games = utilsCargo.query("Games", gameFields, { sortBy = "releaseOrder", limit = 200 }) local books = utilsCargo.query("Books", bookFields, { sortBy = "releaseOrder" }) local tvShows = utilsCargo.query("TelevisionShows", tvFields, { sortBy = "releaseOrder" }) local nonfiction = utilsCargo.query("Nonfiction", nonFictionFields, { sortBy = "releaseDate" }) local groups = utilsCargo.query("GameGroups", groupFields, { sortBy = "releaseDate" }) -- Cargo isn't sorting properly for some reason groups = utilsTable.sortBy(groups, "releaseDate") nonfiction = utilsTable.sortBy(nonfiction, "releaseDate") local codes = {} local gameCodes = {} local titlesByCode = {} local remakes = {} for _, game in ipairs(games) do codes[tonumber(game.releaseOrder)] = game.code gameCodes[tonumber(game.releaseOrder)] = game.code titlesByCode[string.lower(game.code)] = game if game.remakeOf then for i, remadeGame in ipairs(utilsString.split(game.remakeOf)) do remadeGame = string.lower(remadeGame) remakes[remadeGame] = utilsTable.concat(remakes[remadeGame], game.code) end end end gameCodes = utilsTable.compact(gameCodes) for _, book in ipairs(books) do if utilsString.notEmpty(book.code) then -- workaround for Cargo bug inserting duplicate rows (but without code) codes[tonumber(book.releaseOrder)] = book.code titlesByCode[string.lower(book.code)] = book end end for _, tvShow in ipairs(tvShows) do codes[tonumber(tvShow.releaseOrder)] = tvShow.code titlesByCode[string.lower(tvShow.code)] = tvShow end for _, book in ipairs(nonfiction) do titlesByCode[string.lower(book.code)] = book end for _, group in ipairs(groups) do titlesByCode[string.lower(group.code)] = group end codes.reference = "[[Data:Franchise]]" gameCodes.reference = "[[Data:Franchise]]" return { enum = codes, enumGames = gameCodes, games = games, titlesByCode = titlesByCode, remakes = remakes, nonfiction = nonfiction, groups = groups, }