63 lines
1.9 KiB
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 |