From ac99f7d2fa29ad0d0911e82026074816cad89518 Mon Sep 17 00:00:00 2001 From: dreamer Date: Mon, 12 Oct 2020 12:36:17 +0200 Subject: [PATCH 1/3] correct check of mandatory fields --- code/handlers/splhandler.lua | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/code/handlers/splhandler.lua b/code/handlers/splhandler.lua index 0e1a899..5b64a1b 100644 --- a/code/handlers/splhandler.lua +++ b/code/handlers/splhandler.lua @@ -40,6 +40,7 @@ function Splhandler(self) local request_secret = self.params.secret if station_secret then if station_secret ~= request_secret then + print("secrets not matching") return end end @@ -63,7 +64,8 @@ function Splhandler(self) local airdate = self.params.date -- mandatory -- check mandatory fields - if not artist_name or track_name or airtime or airdate then + if not artist_name or not track_name or not airtime or not airdate then + print("missing mandatory field") return end From f192c402a0df89d4b8ef8e41d54ea055cb20ff7c Mon Sep 17 00:00:00 2001 From: dreamer Date: Mon, 12 Oct 2020 17:39:52 +0200 Subject: [PATCH 2/3] fix delimiter for . --- code/handlers/splhandler.lua | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/code/handlers/splhandler.lua b/code/handlers/splhandler.lua index 5b64a1b..aa27263 100644 --- a/code/handlers/splhandler.lua +++ b/code/handlers/splhandler.lua @@ -1,4 +1,5 @@ local db = require("lapis.db") +local to_json = require("lapis.util").to_json local autoload = require("lapis.util").autoload local models = autoload("models") @@ -72,15 +73,21 @@ function Splhandler(self) -- we have to split the `hr:min:sec` and `month/day/year` strings from SPL local function Split(s, delimiter) local result = {} - for match in (s..delimiter):gmatch("(.-)"..delimiter) do + if delimiter == "." then + for match in string.gmatch(s, "[^%.]+") do table.insert(result, match) + end + else + for match in (s..delimiter):gmatch("(.-)"..delimiter) do + table.insert(result, match) + end end return result end local split_airtime = Split(airtime, ":") local airtime_hr, airtime_min, airtime_sec = split_airtime[1], split_airtime[2], split_airtime[3] - local split_airdate = Split(airdate, "/") + 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} From b85e2429f56c1ae62a52090f9610638c2d55e072 Mon Sep 17 00:00:00 2001 From: dreamer Date: Mon, 12 Oct 2020 17:39:52 +0200 Subject: [PATCH 3/3] fix delimiter for . --- code/handlers/splhandler.lua | 33 ++++++++++++++++++++++++++------- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/code/handlers/splhandler.lua b/code/handlers/splhandler.lua index 5b64a1b..570d291 100644 --- a/code/handlers/splhandler.lua +++ b/code/handlers/splhandler.lua @@ -1,4 +1,5 @@ local db = require("lapis.db") +local to_json = require("lapis.util").to_json local autoload = require("lapis.util").autoload local models = autoload("models") @@ -70,17 +71,35 @@ function Splhandler(self) end -- we have to split the `hr:min:sec` and `month/day/year` strings from SPL - local function Split(s, delimiter) - local result = {} - for match in (s..delimiter):gmatch("(.-)"..delimiter) do - table.insert(result, match) + -- and since SPL uses both "." and "-" for dates .. somehow .. we have to do more dirty tricks .. + local function Split(s, delimiters) + + for i, delimiter in ipairs(delimiters) do + print(delimiter) + local result = {} + + if delimiter == "." then + for match in string.gmatch(s, "[^%.]+") do + table.insert(result, match) + end + else + for match in (s..delimiter):gmatch("(.-)"..delimiter) do + table.insert(result, match) + end + end + + if table.getn(result) == 3 then + return result + else + print("something is wrong: ".. s) + end + end - return result end - local split_airtime = Split(airtime, ":") + local split_airtime = Split(airtime, {":"}) local airtime_hr, airtime_min, airtime_sec = split_airtime[1], split_airtime[2], split_airtime[3] - local split_airdate = Split(airdate, "/") + 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}