Anonymous
×
Create a new article
Write your page title here:
We currently have 97 articles on The Dream Shrine. Type your article name above or click on one of the titles below and start writing!



The Dream Shrine

Module:Franchise/Cache: Difference between revisions

No edit summary
No edit summary
Line 3: Line 3:
local utilsTable = require("Module:UtilsTable")
local utilsTable = require("Module:UtilsTable")


local gameFields = "releaseOrder, code, article, shortName, link, display, logo, releaseDate, canonicity, type, graphics, family, remakeOf, supersededBy"
local gameFields = "releaseOrder, gameCode, 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 bookFields = "releaseOrder, gameCode, 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 tvFields = "releaseOrder, gameCode, article, shortName, link, display, logo, releaseDate, canonicity, type"
local nonFictionFields = "code, article, shortName, link, display, logo, releaseDate, canonicity, publisher, titles"
local nonFictionFields = "gameCode, article, shortName, link, display, logo, releaseDate, canonicity, publisher, titles"
local groupFields=  "code, article, shortName, link, display, logo, releaseDate, canonicity, games"
local groupFields=  "gameCode, article, shortName, link, display, logo, releaseDate, canonicity, games"


local games = utilsCargo.query("Games", gameFields, { sortBy = "releaseOrder", limit = 200 })
local games = utilsCargo.query("Games", gameFields, { sortBy = "releaseOrder", limit = 200 })
Line 24: Line 24:


for _, game in ipairs(games) do
for _, game in ipairs(games) do
codes[tonumber(game.releaseOrder)] = game.code
codes[tonumber(game.releaseOrder)] = game.gameCode
gameCodes[tonumber(game.releaseOrder)] = game.code
gameCodes[tonumber(game.releaseOrder)] = game.gameCode
titlesByCode[string.lower(game.code)] = game
titlesByCode[string.lower(game.gameCode)] = game
if game.remakeOf then
if game.remakeOf then
for i, remadeGame in ipairs(utilsString.split(game.remakeOf)) do
for i, remadeGame in ipairs(utilsString.split(game.remakeOf)) do
remadeGame = string.lower(remadeGame)
remadeGame = string.lower(remadeGame)
remakes[remadeGame] = utilsTable.concat(remakes[remadeGame], game.code)
remakes[remadeGame] = utilsTable.concat(remakes[remadeGame], game.gameCode)
end
end
end
end
Line 37: Line 37:


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.gameCode) then -- workaround for Cargo bug inserting duplicate rows (but without code)  
codes[tonumber(book.releaseOrder)] = book.code
codes[tonumber(book.releaseOrder)] = book.gameCode
titlesByCode[string.lower(book.code)] = book
titlesByCode[string.lower(book.gameCode)] = book
end
end
end
end


for _, tvShow in ipairs(tvShows) do
for _, tvShow in ipairs(tvShows) do
codes[tonumber(tvShow.releaseOrder)] = tvShow.code
codes[tonumber(tvShow.releaseOrder)] = tvShow.gameCode
titlesByCode[string.lower(tvShow.code)] = tvShow
titlesByCode[string.lower(tvShow.gameCode)] = tvShow
end
end


for _, book in ipairs(nonfiction) do
for _, book in ipairs(nonfiction) do
titlesByCode[string.lower(book.code)] = book
titlesByCode[string.lower(book.gameCode)] = book
end
end


for _, group in ipairs(groups) do
for _, group in ipairs(groups) do
titlesByCode[string.lower(group.code)] = group
titlesByCode[string.lower(group.gameCode)] = group
end
end



Revision as of 09:38, 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, gameCode, article, shortName, link, display, logo, releaseDate, canonicity, type, graphics, family, remakeOf, supersededBy"
local bookFields = "releaseOrder, gameCode, article, shortName, link, display, logo, releaseDate, canonicity, type, phraseLink, publisher, authors, basedOn"
local tvFields = "releaseOrder, gameCode, article, shortName, link, display, logo, releaseDate, canonicity, type"
local nonFictionFields = "gameCode, article, shortName, link, display, logo, releaseDate, canonicity, publisher, titles"
local groupFields=  "gameCode, 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.gameCode
	gameCodes[tonumber(game.releaseOrder)] = game.gameCode
	titlesByCode[string.lower(game.gameCode)] = 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.gameCode)
		end
	end
end
gameCodes = utilsTable.compact(gameCodes)

for _, book in ipairs(books) do
	if utilsString.notEmpty(book.gameCode) then -- workaround for Cargo bug inserting duplicate rows (but without code) 
		codes[tonumber(book.releaseOrder)] = book.gameCode
		titlesByCode[string.lower(book.gameCode)] = book
	end
end

for _, tvShow in ipairs(tvShows) do
	codes[tonumber(tvShow.releaseOrder)] = tvShow.gameCode
	titlesByCode[string.lower(tvShow.gameCode)] = tvShow
end

for _, book in ipairs(nonfiction) do
	titlesByCode[string.lower(book.gameCode)] = book
end

for _, group in ipairs(groups) do
	titlesByCode[string.lower(group.gameCode)] = 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,
}