Module:Availability

From SPCodex, The Smashing Pumpkins wiki
Revision as of 04:08, 10 June 2020 by MusikAnimal (talk | contribs) (draft)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

This module implements the {{availability}} template, which is placed on every song page. This generates the "Availability" and "Tour stats" sections, as applicable.


local p = {}

function p._main(song)
	local cargo = mw.ext.cargo
	local albums = cargo.query(
		'track_listings, albums, releases',
		"track_listings._pageName=title, releases.released=date, albums.type=type",
		{
			where = "releases.released != '' AND song = \"" .. song .. '"',
			join = 'track_listings._pageName=albums._pageName,albums.name=releases.work',
			groupBy = 'track_listings.work',
			orderBy = 'releases.released ASC'
		}
	)
	local songs = cargo.query(
		'track_listings, songs, releases',
		"track_listings._pageName=title, releases.released=date, songs.type=type",
		{
			where = "releases.released != '' AND song = \"" .. song .. '"',
			join = 'track_listings._pageName=songs._pageName,songs.name=releases.work',
			groupBy = 'track_listings.work',
			orderBy = 'releases.released ASC'
		}
	)

	local releases = {}

	for r = 1, #songs do
		local result = songs[r]
		mw.logObject(result['date'])
	end
end

function p.main(frame)
	local song = frame.args[1]
	return p._main(song)
end

return p