diff --git a/code/app.lua b/code/app.lua index 9b96950..376eac4 100644 --- a/code/app.lua +++ b/code/app.lua @@ -79,7 +79,7 @@ app:match("/spl/:station", function(self) -- queries -- -- ------- -- - artist = models.Artists:find({ name = artist_name }) + artist = models.Artists:find({ name=artist_name }) if not artist then print("new artist: " .. artist_name) artist = models.Artists:create({ @@ -91,11 +91,11 @@ app:match("/spl/:station", function(self) -- make a unique name/identifier for the track using a combination of artist_name and track_name -- in lower-case and spaces removed - local unique_track_name = artist_name + track_name - unique_track_name = unique_track_name:lower() - unique_track_name = unique_track_name:gsub("%s+", "") + local unique_track_name = artist_name + track_name -- add artist + unique_track_name = unique_track_name:lower() -- all to lowercase + unique_track_name = unique_track_name:gsub("%s+", "") -- remove spaces - track = models.Tracks:find({ unique_name = unique_track_name }) + track = models.Tracks:find({ unique_name=unique_track_name }) if not track then print("new track: " .. track_name) track = models.Tracks:create({ @@ -109,6 +109,16 @@ app:match("/spl/:station", function(self) print("old track.") end + -- track_artist + local track_artist = models.TrackArtists:find({ track=track["id"], artist=artist["id"] }) + if not track_artist then + print("new track artist") + track_artist = models.TrackArtists:create({ + track=track["id"], + artist=artist["id"] + }) + end + -- airtime local airtime = models.Airtimes:create({ airtime = db.format_date(airtime_stamp), @@ -116,8 +126,9 @@ app:match("/spl/:station", function(self) stations = station["id"] }) + -- release if release_name.len() > 0 then - release = models.Releases:find({ name = release_name }) + release = models.Releases:find({ name=release_name }) if not release then print("new release: " .. release_name) release = models.Releases:create({ @@ -131,9 +142,9 @@ app:match("/spl/:station", function(self) print("old release.") end - local track_release = models.TrackReleases:find({ track = track, release = release }) + local track_release = models.TrackReleases:find({ track=track["id"], release=release["id"] }) if not track_release then - track_release = models.TrackReleases:create({ track = track, release = release }) + track_release = models.TrackReleases:create({ track=track["id"], release=release["id"] }) end else