use id for foreign keys; add track_artist

This commit is contained in:
dreamer 2020-09-22 09:50:50 +02:00
parent 4ec3e7a26a
commit b5a567e49f

View File

@ -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