Module:Sandbox/Gonnym/episodewikidata
Appearance
local getWikiDataValue = require('Module:WikidataIB/sandbox')._getValue
p = {}
local function getPreviousEpisodeFromWikiData()
return getWikiDataValue({"P155", fetchwikidata = "ALL", onlysourced = "no", qid = "Q20785929"})
end
function p.getNextEpisodeFromWikiData()
return getWikiDataValue({"P156", fetchwikidata = "ALL", onlysourced = "no", qid = "Q20785929"})
end
local function getFormattedPreviousEpisodeLink(args)
local previousEpisodeRaw = args.rprev or args.RPrev
local previousEpisode = args.prev or getPreviousEpisodeFromWikiData()
local previousEpisodeLink
if (previousEpisodeRaw) then
previousEpisodeLink = previousEpisodeRaw
elseif (previousEpisode) then
previousEpisodeLink = '"' .. previousEpisode .. '"'
else
previousEpisodeLink = "—"
end
end
local function getFormattedNextEpisodeLink(args)
local nextEpisodeRaw = args.rnext or args.RNext
local nextEpisode = args.next or getNextEpisodeFromWikiData()
local nextEpisodeLink
if (nextEpisodeRaw) then
nextEpisodeLink = nextEpisodeRaw
elseif (nextEpisode) then
nextEpisodeLink = '"' .. nextEpisode .. '"'
else
nextEpisodeLink = "—"
end
end
function p.getEpisodeChronology(frame)
local previousEpisodeLink = getFormattedPreviousEpisodeLink(args)
local nextEpisodeLink = getFormattedNextEpisodeLink(args)
--{{succession links|left=previousEpisodeLink|right=nextEpisodeLink}}
return '! style="width:100%;" ! style="width: 50%; padding: 0.2em 0.1em 0.2em 0; text-align: center;" ! ← \'\'\'Previous\'\'\'<br />' .. previousEpisodeLink .. '! style="width: 50%; padding: 0.2em 0 0.2em 0.1em; text-align: center;" ! \'\'\'Next\'\'\' →<br />' .. nextEpisodeLink
end
local function getHeaderTitle()
local previousEpisode = args.prev or args.rprev or args.RPrev or getPreviousEpisodeFromWikiData()
local nextEpisode = args.next or args.rnext or args.RNext or getNextEpisodeFromWikiData()
if (previousEpisode or nextEpisode) then
return "Episode chronology"
end
end
return p