PhantomCaleb (talk | contribs) mNo edit summary |
PhantomCaleb (talk | contribs) m (Protected "Module:Franchise/Cache": Critical wiki page ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))) |
||
(23 intermediate revisions by the same user not shown) | |||
Line 3: | Line 3: | ||
local utilsTable = require("Module:UtilsTable") |
local utilsTable = require("Module:UtilsTable") |
||
− | local |
+ | 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, authors, basedOn" |
||
− | local gameFields = utilsTable.concat(commonFields, {"graphics", "family", "remakeOf", "supersededBy"}) |
||
+ | local tvFields = "canonOrder, code, article, shortName, link, display, logo, releaseDate, canonicity, type" |
||
− | local comicFields = utilsTable.concat(commonFields, {"phraseLink", "authors", "basedOn"}) |
||
+ | local compilationFields = "code, article, shortName, link, display, logo, releaseDate, canonicity, type, titles" |
||
+ | local groupFields= "code, article, shortName, link, display, logo, releaseDate, canonicity, games" |
||
− | local games = utilsCargo.query(" |
+ | local games = utilsCargo.query("Games", gameFields, { sortBy = "canonOrder"}) |
− | local |
+ | local books = utilsCargo.query("Books", bookFields, { sortBy = "canonOrder"}) |
+ | local tvShows = utilsCargo.query("TelevisionShows", tvFields, { sortBy = "canonOrder"}) |
||
+ | local compilations = utilsCargo.query("Compilations", compilationFields, { sortBy = "releaseDate"}) |
||
+ | local groups = utilsCargo.query("GameGroups", groupFields, { sortBy = "releaseDate"}) |
||
+ | -- Cargo isn't sorting properly for some reason |
||
+ | groups = utilsTable.sortBy(groups, "releaseDate") |
||
+ | compilations = utilsTable.sortBy(compilations, "releaseDate") |
||
local codes = {} |
local codes = {} |
||
+ | local gameCodes = {} |
||
local titlesByCode = {} |
local titlesByCode = {} |
||
local remakes = {} |
local remakes = {} |
||
Line 16: | Line 25: | ||
for _, game in ipairs(games) do |
for _, game in ipairs(games) do |
||
codes[tonumber(game.canonOrder)] = game.code |
codes[tonumber(game.canonOrder)] = game.code |
||
⚫ | |||
titlesByCode[string.lower(game.code)] = game |
titlesByCode[string.lower(game.code)] = game |
||
if utilsString.notEmpty(game.remakeOf) then |
if utilsString.notEmpty(game.remakeOf) then |
||
− | remakes[string.lower(game.remakeOf)] = utilsTable.concat(remakes[game.remakeOf], game.code) |
+ | remakes[string.lower(game.remakeOf)] = utilsTable.concat(remakes[string.lower(game.remakeOf)], game.code) |
end |
end |
||
end |
end |
||
+ | gameCodes = utilsTable.compact(gameCodes) |
||
⚫ | |||
+ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
+ | codes[tonumber(book.canonOrder)] = book.code |
||
⚫ | |||
end |
end |
||
end |
end |
||
+ | |||
+ | for _, tvShow in ipairs(tvShows) do |
||
+ | codes[tonumber(tvShow.canonOrder)] = tvShow.code |
||
+ | titlesByCode[string.lower(tvShow.code)] = tvShow |
||
+ | end |
||
+ | |||
+ | for _, compilation in ipairs(compilations) do |
||
+ | titlesByCode[string.lower(compilation.code)] = compilation |
||
+ | end |
||
+ | |||
+ | for _, group in ipairs(groups) do |
||
+ | titlesByCode[string.lower(group.code)] = group |
||
+ | end |
||
+ | |||
codes.reference = "[[Data:Franchise]]" |
codes.reference = "[[Data:Franchise]]" |
||
+ | gameCodes.reference = "[[Data:Franchise]]" |
||
return { |
return { |
||
enum = codes, |
enum = codes, |
||
+ | enumGames = gameCodes, |
||
+ | games = games, |
||
titlesByCode = titlesByCode, |
titlesByCode = titlesByCode, |
||
remakes = remakes, |
remakes = remakes, |
||
+ | compilations = compilations, |
||
+ | groups = groups, |
||
} |
} |
Revision as of 18:36, 4 August 2020
Lua error: Error: Table Compilations not found..
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, authors, basedOn"
local tvFields = "canonOrder, code, article, shortName, link, display, logo, releaseDate, canonicity, type"
local compilationFields = "code, article, shortName, link, display, logo, releaseDate, canonicity, type, titles"
local groupFields= "code, article, shortName, link, display, logo, releaseDate, canonicity, games"
local games = utilsCargo.query("Games", gameFields, { sortBy = "canonOrder"})
local books = utilsCargo.query("Books", bookFields, { sortBy = "canonOrder"})
local tvShows = utilsCargo.query("TelevisionShows", tvFields, { sortBy = "canonOrder"})
local compilations = utilsCargo.query("Compilations", compilationFields, { sortBy = "releaseDate"})
local groups = utilsCargo.query("GameGroups", groupFields, { sortBy = "releaseDate"})
-- Cargo isn't sorting properly for some reason
groups = utilsTable.sortBy(groups, "releaseDate")
compilations = utilsTable.sortBy(compilations, "releaseDate")
local codes = {}
local gameCodes = {}
local titlesByCode = {}
local remakes = {}
for _, game in ipairs(games) do
codes[tonumber(game.canonOrder)] = game.code
gameCodes[tonumber(game.canonOrder)] = game.code
titlesByCode[string.lower(game.code)] = game
if utilsString.notEmpty(game.remakeOf) then
remakes[string.lower(game.remakeOf)] = utilsTable.concat(remakes[string.lower(game.remakeOf)], game.code)
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.canonOrder)] = book.code
titlesByCode[string.lower(book.code)] = book
end
end
for _, tvShow in ipairs(tvShows) do
codes[tonumber(tvShow.canonOrder)] = tvShow.code
titlesByCode[string.lower(tvShow.code)] = tvShow
end
for _, compilation in ipairs(compilations) do
titlesByCode[string.lower(compilation.code)] = compilation
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,
compilations = compilations,
groups = groups,
}