diff --git a/CHANGELOG.md b/CHANGELOG.md index 0293ead..03e2f84 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,10 @@ - Fix blacklisted talkgroups being created anyway when autopopulate is enabled. - Fix compatibility with mysql/mariadb (default sqlite is still recommended). +_v6.1.1_ + +- Fix `unknown datetime format sql.NullString` error. + ## Version 6.0 - Backend server rewritten in Go for better performance and ease of installation. diff --git a/COMPILING.md b/COMPILING.md index fc63ed8..84a6464 100644 --- a/COMPILING.md +++ b/COMPILING.md @@ -24,13 +24,13 @@ Clone the official repository on your computer and start the build process. When finished, you will find the precompiled versions for various platforms in the `dist` folder. - rdio-scanner-darwin-amd64-v6.1.0.zip - rdio-scanner-darwin-arm64-v6.1.0.zip - rdio-scanner-freebsd-amd64-v6.1.0.zip - rdio-scanner-linux-386-v6.1.0.zip - rdio-scanner-linux-amd64-v6.1.0.zip - rdio-scanner-linux-arm64-v6.1.0.zip - rdio-scanner-linux-arm-v6.1.0.zip - rdio-scanner-windows-amd64-v6.1.0.zip + rdio-scanner-darwin-amd64-v6.1.1.zip + rdio-scanner-darwin-arm64-v6.1.1.zip + rdio-scanner-freebsd-amd64-v6.1.1.zip + rdio-scanner-linux-386-v6.1.1.zip + rdio-scanner-linux-amd64-v6.1.1.zip + rdio-scanner-linux-arm64-v6.1.1.zip + rdio-scanner-linux-arm-v6.1.1.zip + rdio-scanner-windows-amd64-v6.1.1.zip **Happy Rdio scanning !** \ No newline at end of file diff --git a/Makefile b/Makefile index 854546b..e9b5552 100644 --- a/Makefile +++ b/Makefile @@ -17,7 +17,7 @@ app := rdio-scanner date := 2022/01/04 -ver := 6.1.0 +ver := 6.1.1 client := $(wildcard client/*.json client/*.ts) server := $(wildcard server/*.go) diff --git a/client/package.json b/client/package.json index 57ff858..7c662a0 100644 --- a/client/package.json +++ b/client/package.json @@ -39,5 +39,5 @@ "build": "ng build --base-href ./ --configuration production", "start": "ng serve" }, - "version": "6.1.0" + "version": "6.1.1" } diff --git a/docs/platforms/darwin.md b/docs/platforms/darwin.md index fcb1aa0..a6236da 100644 --- a/docs/platforms/darwin.md +++ b/docs/platforms/darwin.md @@ -42,8 +42,8 @@ ALWAYS DOWNLOAD THE LATEST VERSION OF [RDIO SCANNER](https://github.com/chuot/rd rdio@macos ~ % mkdir rdio-scanner rdio@macos ~ % cd rdio-scanner rdio@macos rdio-scanner % unzip \ - > ~/Downloads/rdio-scanner-darwin-arm64-v6.1.0.zip - Archive: /Users/rdio/Downloads/rdio-scanner-darwin-arm64-v6.1.0.zip + > ~/Downloads/rdio-scanner-darwin-arm64-v6.1.1.zip + Archive: /Users/rdio/Downloads/rdio-scanner-darwin-arm64-v6.1.1.zip inflating: rdio-scanner inflating: rdio-scanner.pdf @@ -51,7 +51,7 @@ ALWAYS DOWNLOAD THE LATEST VERSION OF [RDIO SCANNER](https://github.com/chuot/rd rdio@macos rdio-scanner % ./rdio-scanner - Rdio Scanner v6.1.0 + Rdio Scanner v6.1.1 ---------------------------------- 2022/01/04 08:38:06 server started 2022/01/04 08:38:06 main interface at http://macos.local:3000 @@ -77,7 +77,7 @@ Here we want our [Rdio Scanner](https://guthub.com/chuot/rdio-scanner) instance rdio@macos rdio-scanner % ./rdio-scanner --listen :80 - Rdio Scanner v6.1.0 + Rdio Scanner v6.1.1 ---------------------------------- 2022/01/04 08:48:03 server started 2022/01/04 08:48:03 main interface at http://macos.local @@ -108,7 +108,7 @@ Now we use the self-signed server certificate to run our instance. > -ssl_key_file server.key \ > -ssl_listen :443 - Rdio Scanner v6.1.0 + Rdio Scanner v6.1.1 ---------------------------------- 2022/01/04 08:50:58 server started 2022/01/04 08:50:58 main interface at http://macos.local @@ -140,7 +140,7 @@ Then simply run [Rdio Scanner](https://github.com/chuot/rdio-scanner) without an rdio@macos rdio-scanner % ./rdio-scanner - Rdio Scanner v6.1.0 + Rdio Scanner v6.1.1 ---------------------------------- 2022/01/04 08:54:08 server started 2022/01/04 08:54:08 main interface at http://macos.local diff --git a/docs/platforms/freebsd.md b/docs/platforms/freebsd.md index ad81dab..432a32a 100644 --- a/docs/platforms/freebsd.md +++ b/docs/platforms/freebsd.md @@ -42,8 +42,8 @@ ALWAYS DOWNLOAD THE LATEST VERSION OF [RDIO SCANNER](https://github.com/chuot/rd rdio@pc-freebsd:~ $ mkdir rdio-scanner rdio@pc-freebsd:~ $ cd rdio-scanner rdio@pc-freebsd:~/rdio-scanner $ unzip \ - > ~/rdio-scanner-freebsd-amd64-v6.1.0.zip - Archive: ../rdio-scanner-freebsd-amd64-v6.1.0.zip + > ~/rdio-scanner-freebsd-amd64-v6.1.1.zip + Archive: ../rdio-scanner-freebsd-amd64-v6.1.1.zip extracting: rdio-scanner extracting: rdio-scanner.pdf @@ -51,7 +51,7 @@ ALWAYS DOWNLOAD THE LATEST VERSION OF [RDIO SCANNER](https://github.com/chuot/rd rdio@pc-freebsd:~/rdio-scanner $ ./rdio-scanner - Rdio Scanner v6.1.0 + Rdio Scanner v6.1.1 ---------------------------------- 2022/01/04 08:16:36 server started 2022/01/04 08:16:36 main interface at http://pc-freebsd:3000 @@ -81,7 +81,7 @@ Here we want our [Rdio Scanner](https://guthub.com/chuot/rdio-scanner) instance Password: root@pc-freebsd:/home/rdio/rdio-scanner # ./rdio-scanner -listen :80 - Rdio Scanner v6.1.0 + Rdio Scanner v6.1.1 ---------------------------------- 2022/01/04 08:19:38 server started 2022/01/04 08:19:38 main interface at http://pc-freebsd @@ -114,7 +114,7 @@ Now we use the self-signed server certificate to run our instance. > -ssl_key_file server.key \ > -ssl_listen :443 - Rdio Scanner v6.1.0 + Rdio Scanner v6.1.1 ---------------------------------- 2022/01/04 10:34:29 server started 2022/01/04 10:34:29 main interface at http://pc-freebsd @@ -148,7 +148,7 @@ Then simply run [Rdio Scanner](https://github.com/chuot/rdio-scanner) without an Password: root@pc-freebsd:/home/rdio/rdio-scanner # ./rdio-scanner - Rdio Scanner v6.1.0 + Rdio Scanner v6.1.1 ---------------------------------- 2022/01/04 10:38:28 server started 2022/01/04 10:38:29 main interface at http://pc-freebsd diff --git a/docs/platforms/linux.md b/docs/platforms/linux.md index 3739c48..c957816 100644 --- a/docs/platforms/linux.md +++ b/docs/platforms/linux.md @@ -42,8 +42,8 @@ ALWAYS DOWNLOAD THE LATEST VERSION OF [RDIO SCANNER](https://github.com/chuot/rd [rdio@pc-linux ~]$ mkdir rdio-scanner [rdio@pc-linux ~]$ cd rdio-scanner [rdio@pc-linux rdio-scanner]$ unzip \ - > ~/Downloads/rdio-scanner-linux-amd64-v6.1.0.zip - Archive: /home/rdio/Downloads/rdio-scanner-linux-amd64-v6.1.0.zip + > ~/Downloads/rdio-scanner-linux-amd64-v6.1.1.zip + Archive: /home/rdio/Downloads/rdio-scanner-linux-amd64-v6.1.1.zip inflating: rdio-scanner inflating: rdio-scanner.pdf @@ -51,7 +51,7 @@ ALWAYS DOWNLOAD THE LATEST VERSION OF [RDIO SCANNER](https://github.com/chuot/rd [rdio@pc-linux rdio-scanner]$ ./rdio-scanner - Rdio Scanner v6.1.0 + Rdio Scanner v6.1.1 ---------------------------------- 2022/01/04 09:11:48 server started 2022/01/04 09:11:48 main interface at http://pc-linux:3000 @@ -78,7 +78,7 @@ Here we want our [Rdio Scanner](https://guthub.com/chuot/rdio-scanner) instance [rdio@pc-linux rdio-scanner]$ sudo ./rdio-scanner -listen :80 [sudo] password for rdio: - Rdio Scanner v6.1.0 + Rdio Scanner v6.1.1 ---------------------------------- 2022/01/04 09:14:00 server started 2022/01/04 09:14:00 main interface at http://pc-linux @@ -110,7 +110,7 @@ Now we use the self-signed server certificate to run our instance. > -ssl_listen :443 [sudo] password for rdio: - Rdio Scanner v6.1.0 + Rdio Scanner v6.1.1 ---------------------------------- 2022/01/04 09:16:47 server started 2022/01/04 09:16:47 main interface at http://pc-linux @@ -143,7 +143,7 @@ Then simply run [Rdio Scanner](https://github.com/chuot/rdio-scanner) without an [rdio@pc-linux rdio-scanner]$ sudo ./rdio-scanner [sudo] Mot de passe de rdio : - Rdio Scanner v6.1.0 + Rdio Scanner v6.1.1 ---------------------------------- 2022/01/04 09:20:40 server started 2022/01/04 09:20:40 main interface at http://pc-linux diff --git a/docs/platforms/windows.md b/docs/platforms/windows.md index e3ca1b0..1069037 100644 --- a/docs/platforms/windows.md +++ b/docs/platforms/windows.md @@ -44,7 +44,7 @@ ALWAYS DOWNLOAD THE LATEST VERSION OF [RDIO SCANNER](https://github.com/chuot/rd C:\Users\rdio> cd rdio-scanner C:\Users\rdio\rdio-scanner> tar -xvf ^ - ..\downloads\rdio-scanner-windows-amd64-v6.1.0.zip + ..\downloads\rdio-scanner-windows-amd64-v6.1.1.zip x rdio-scanner.exe x rdio-scanner.pdf @@ -52,7 +52,7 @@ ALWAYS DOWNLOAD THE LATEST VERSION OF [RDIO SCANNER](https://github.com/chuot/rd C:\Users\rdio\rdio-scanner>rdio-scanner - Rdio Scanner v6.1.0 + Rdio Scanner v6.1.1 ---------------------------------- 2022/01/04 13:48:48 server started 2022/01/04 13:48:48 main interface at http://pc-windows:3000 @@ -78,7 +78,7 @@ Here we want our [Rdio Scanner](https://guthub.com/chuot/rdio-scanner) instance C:\Users\rdio\rdio-scanner>rdio-scanner -listen :80 - Rdio Scanner v6.1.0 + Rdio Scanner v6.1.1 ---------------------------------- 2022/01/04 10:53:31 server started 2022/01/04 10:53:31 main interface at http://pc-windows @@ -109,7 +109,7 @@ Now we use the self-signed server certificate to run our instance. -ssl_key_file server.key ^ -ssl_listen :443 - Rdio Scanner v6.1.0 + Rdio Scanner v6.1.1 ---------------------------------- 2022/01/04 11:05:43 server started 2022/01/04 11:05:43 main interface at http://pc-windows @@ -141,7 +141,7 @@ Then simply run [Rdio Scanner](https://github.com/chuot/rdio-scanner) without an C:\Users\rdio\rdio-scanner>rdio-scanner - Rdio Scanner v6.1.0 + Rdio Scanner v6.1.1 ---------------------------------- 2022/01/04 11:11:28 server started 2022/01/04 11:11:28 main interface at http://pc-windows diff --git a/server/log.go b/server/log.go index 4de08e0..ff72d0f 100644 --- a/server/log.go +++ b/server/log.go @@ -110,7 +110,7 @@ func NewLogResults(logOptions *LogOptions, db *Database) (*LogResults, error) { ) var ( - dateTime sql.NullString + dateTime interface{} err error id sql.NullFloat64 limit uint @@ -183,12 +183,14 @@ func NewLogResults(logOptions *LogOptions, db *Database) (*LogResults, error) { return nil, formatError(fmt.Errorf("%v, %v", err, query)) } - if dateTime.Valid && len(dateTime.String) > 0 { - if t, err := db.ParseDateTime(dateTime.String); err == nil { - logResults.DateStart = t - } else { - return nil, err - } + if dateTime == nil { + return logResults, nil + } + + if t, err := db.ParseDateTime(dateTime); err == nil { + logResults.DateStart = t + } else { + return nil, err } query = fmt.Sprintf("select `dateTime` from `rdioScannerLogs` where %v order by `dateTime` asc", where) @@ -196,12 +198,10 @@ func NewLogResults(logOptions *LogOptions, db *Database) (*LogResults, error) { return nil, formatError(fmt.Errorf("%v, %v", err, query)) } - if dateTime.Valid && len(dateTime.String) > 0 { - if t, err := db.ParseDateTime(dateTime.String); err == nil { - logResults.DateStop = t - } else { - return nil, err - } + if t, err := db.ParseDateTime(dateTime); err == nil { + logResults.DateStop = t + } else { + return nil, err } query = fmt.Sprintf("select count(*) from `rdioScannerLogs` where %v", where) @@ -225,12 +225,10 @@ func NewLogResults(logOptions *LogOptions, db *Database) (*LogResults, error) { log.Id = uint(id.Float64) } - if dateTime.Valid && len(dateTime.String) > 0 { - if t, err := db.ParseDateTime(dateTime.String); err == nil { - log.DateTime = t - } else { - continue - } + if t, err := db.ParseDateTime(dateTime); err == nil { + log.DateTime = t + } else { + continue } logResults.Logs = append(logResults.Logs, log) diff --git a/server/search.go b/server/search.go index db81d7a..b75853d 100644 --- a/server/search.go +++ b/server/search.go @@ -103,7 +103,7 @@ func NewSearchResults(searchOptions *SearchOptions, client *Client) (*SearchResu ) var ( - dateTime sql.NullString + dateTime interface{} err error id sql.NullFloat64 limit uint @@ -203,21 +203,20 @@ func NewSearchResults(searchOptions *SearchOptions, client *Client) (*SearchResu return nil, formatError(fmt.Errorf("%v, %v", err, query)) } - if dateTime.Valid && len(dateTime.String) > 0 { - if t, err = db.ParseDateTime(dateTime.String); err == nil { - searchResults.DateStart = t - } + if dateTime == nil { + return searchResults, nil } + if t, err = db.ParseDateTime(dateTime); err == nil { + searchResults.DateStart = t + } query = fmt.Sprintf("select `dateTime` from `rdioScannerCalls` where %v order by `dateTime` desc", where) if err = db.Sql.QueryRow(query).Scan(&dateTime); err != nil && err != sql.ErrNoRows { return nil, formatError(fmt.Errorf("%v, %v", err, query)) } - if dateTime.Valid && len(dateTime.String) > 0 { - if t, err = db.ParseDateTime(dateTime); err == nil { - searchResults.DateStop = t - } + if t, err = db.ParseDateTime(dateTime); err == nil { + searchResults.DateStop = t } switch v := searchOptions.Sort.(type) { @@ -283,12 +282,11 @@ func NewSearchResults(searchOptions *SearchOptions, client *Client) (*SearchResu searchResult.Id = uint(id.Float64) } - if dateTime.Valid && len(dateTime.String) > 0 { - if t, err = db.ParseDateTime(dateTime); err == nil { - searchResult.DateTime = t - } else { - continue - } + if t, err = db.ParseDateTime(dateTime); err == nil { + searchResult.DateTime = t + + } else { + continue } searchResults.Results = append(searchResults.Results, searchResult) diff --git a/server/version.go b/server/version.go index 4f6d0e9..2d115d6 100644 --- a/server/version.go +++ b/server/version.go @@ -15,4 +15,4 @@ package main -const Version = "6.1.0" +const Version = "6.1.1"