some more fixes. almost ready for testing?

This commit is contained in:
dreamer 2020-09-22 13:14:56 +02:00
parent 0dbd400227
commit 034fa82dc5
3 changed files with 28 additions and 15 deletions

View File

@ -27,8 +27,9 @@ app:match("/spl/:station", function(self)
-- info_url=%U1& -- info_url=%U1&
-- img_url=%U2& -- img_url=%U2&
-- time=%h& -- time=%h&
-- date=%d&
-- artist_name=%a&track_name=%t&release_name=%Tlabel=%L&year=%Y&country=%O&info_url=%U1&img_url=%U2&time=%h& -- artist_name=%a&track_name=%t&release_name=%Tlabel=%L&year=%Y&country=%O&info_url=%U1&img_url=%U2&time=%h&date=%d&
-- ----- -- -- ----- --
-- setup -- -- setup --
@ -57,9 +58,10 @@ app:match("/spl/:station", function(self)
local release_country = self.params.country local release_country = self.params.country
local release_label = self.params.label local release_label = self.params.label
local airtime_spl = self.params.time local airtime = self.params.time
local airdate = self.params.date
-- we have to split the `hr:min:sec` string from SPL -- we have to split the `hr:min:sec` and `month/day/year` strings from SPL
local function Split(s, delimiter) local function Split(s, delimiter)
local result = {} local result = {}
for match in (s..delimiter):gmatch("(.-)"..delimiter) do for match in (s..delimiter):gmatch("(.-)"..delimiter) do
@ -68,9 +70,11 @@ app:match("/spl/:station", function(self)
return result return result
end end
local split_airtime = Split(airtime_spl, ":") local split_airtime = Split(airtime, ":")
local airtime_hr, airtime_min, airtime_sec = split_airtime[1], split_airtime[2], split_airtime[3] local airtime_hr, airtime_min, airtime_sec = split_airtime[1], split_airtime[2], split_airtime[3]
local airtime_stamp = os.time{year=os.date("%Y"), month=os.date("%m"), day=os.date("%d"), hour=airtime_hr, min=airtime_min, sec=airtime_sec} local split_airdate = Split(airdate, "/")
local airdate_month, airdate_day, airdate_year = split_airdate[1], split_airdate[2], split_airdate[3]
local airtime_stamp = os.time{year=airdate_year, month=airdate_month, day=airdate_day, hour=airtime_hr, min=airtime_min, sec=airtime_sec}
-- ------- -- -- ------- --
@ -108,24 +112,33 @@ app:match("/spl/:station", function(self)
end end
-- track_artist -- track_artist
local track_artist = models.TrackArtists:find({ track=track["id"], artist=artist["id"] }) local track_artist = models.Trackartists:find({ track=track["id"], artist=artist["id"] })
if not track_artist then if not track_artist then
print("new track artist") print("new track artist")
track_artist = models.TrackArtists:create({ track_artist = models.Trackartists:create({
track=track["id"], track=track["id"],
artist=artist["id"] artist=artist["id"]
}) })
end end
-- airtime -- airtime
local airtime = models.Airtimes:create({ local airtime = models.Airtimes:find({
airtime = db.format_date(airtime_stamp), airtime = db.format_date(airtime_stamp),
tracks = track["id"], tracks = track["id"],
stations = station["id"] stations = station["id"]
}) })
if not airtime then
airtime = models.Airtimes:create({
airtime = db.format_date(airtime_stamp),
tracks = track["id"],
stations = station["id"]
})
else
print("already have this airtime! wtf??")
end
-- release -- release
if release_name.len() > 0 then if release_name:len() > 0 then
release = models.Releases:find({ name=release_name }) release = models.Releases:find({ name=release_name })
if not release then if not release then
print("new release: " .. release_name) print("new release: " .. release_name)
@ -140,9 +153,9 @@ app:match("/spl/:station", function(self)
print("old release.") print("old release.")
end end
local track_release = models.TrackReleases:find({ track=track["id"], release=release["id"] }) local track_release = models.Trackreleases:find({ track=track["id"], release=release["id"] })
if not track_release then if not track_release then
track_release = models.TrackReleases:create({ track=track["id"], release=release["id"] }) track_release = models.Trackreleases:create({ track=track["id"], release=release["id"] })
end end
else else

View File

@ -1,7 +1,7 @@
local Model = require("lapis.db.model").Model local Model = require("lapis.db.model").Model
-- track_artists -- track_artists
local TrackArtists = Model:extend("track_artists", { local Trackartists = Model:extend("track_artists", {
timestamp = true, timestamp = true,
relations = { relations = {
{"track", belongs_to = "Tracks"}, {"track", belongs_to = "Tracks"},
@ -9,4 +9,4 @@ local TrackArtists = Model:extend("track_artists", {
} }
}) })
return TrackArtists return Trackartists

View File

@ -1,7 +1,7 @@
local Model = require("lapis.db.model").Model local Model = require("lapis.db.model").Model
-- track_releases -- track_releases
local TrackReleases = Model:extend("track_releases", { local Trackreleases = Model:extend("track_releases", {
timestamp = true, timestamp = true,
relations = { relations = {
{"track", belongs_to = "Tracks"}, {"track", belongs_to = "Tracks"},
@ -9,4 +9,4 @@ local TrackReleases = Model:extend("track_releases", {
} }
}) })
return TrackReleases return Trackreleases