PreviouslyOnIFM/code/handlers/stationhandler.lua

63 lines
1.9 KiB
Lua

local db = require("lapis.db")
local to_json = require("lapis.util").to_json
local autoload = require("lapis.util").autoload
local preload = require("lapis.db.model").preload
local models = autoload("models")
function Stationhandler(self)
local station_id = self.params.station
local station = models.Stations:find({ station = station_id })
if not station then
print("unknown station: " .. station_id)
else
print("This is: " .. station["name"])
end
local artist = nil
local release = nil
local return_dict = {}
local limit = 10
local offset = 0
-- local airtimes = models.Airtimes:paginated("where station = ? order by airtime desc", station["id"], {
-- per_page = 10,
-- fields = "track, station, airtime",
-- prepare_results = function(airtime)
-- models.Tracks:include_in(airtime, { id="track" })
-- models.Stations:include_in(airtime, { id="station" })
-- return airtime
-- end
-- })
-- airtimes = airtimes:get_page(1)
local airtimes = db.query([[
SELECT airtime, track.name AS track, track.year, track.info_url, track.img_url,
artist.name as artist,
release.name AS release, release.country, release.label AS label
FROM airtimes
INNER JOIN
tracks AS track ON (airtimes.track = track.id)
INNER JOIN
track_artists as track_artist ON (track_artist.track = track.id)
INNER JOIN
artists as artist ON (track_artist.artist = artist.id)
INNER JOIN
track_releases as track_release ON (track_release.track = track.id)
INNER JOIN
releases as release ON (track_release.release = release.id)
WHERE station = ?
ORDER BY airtime
DESC LIMIT ?
OFFSET ?
]], station["id"], limit, offset*limit
)
return { json = airtimes }
end
return Stationhandler