Version 6.1.2

This commit is contained in:
Chrystian Huot 2022-01-05 15:46:35 -05:00
parent 79827e3619
commit 7b527b1b00
25 changed files with 185 additions and 133 deletions

View file

@ -13,6 +13,14 @@ _v6.1.1_
- Fix `unknown datetime format sql.NullString` error. - Fix `unknown datetime format sql.NullString` error.
_v6.1.2_
- Fix image links in webapp.md (issue #76).
- Fix SIGSEGV when trying to autopopulate (issue #77).
- Fix parsing SDRTrunk meta data.
- Dirwatch type trunk-recorder now deletes json files without audio (when deleteAfter is set).
- Add a new `docs/update-from-v5.md` document.
## Version 6.0 ## Version 6.0
- Backend server rewritten in Go for better performance and ease of installation. - Backend server rewritten in Go for better performance and ease of installation.

View file

@ -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. When finished, you will find the precompiled versions for various platforms in the `dist` folder.
rdio-scanner-darwin-amd64-v6.1.1.zip rdio-scanner-darwin-amd64-v6.1.2.zip
rdio-scanner-darwin-arm64-v6.1.1.zip rdio-scanner-darwin-arm64-v6.1.2.zip
rdio-scanner-freebsd-amd64-v6.1.1.zip rdio-scanner-freebsd-amd64-v6.1.2.zip
rdio-scanner-linux-386-v6.1.1.zip rdio-scanner-linux-386-v6.1.2.zip
rdio-scanner-linux-amd64-v6.1.1.zip rdio-scanner-linux-amd64-v6.1.2.zip
rdio-scanner-linux-arm64-v6.1.1.zip rdio-scanner-linux-arm64-v6.1.2.zip
rdio-scanner-linux-arm-v6.1.1.zip rdio-scanner-linux-arm-v6.1.2.zip
rdio-scanner-windows-amd64-v6.1.1.zip rdio-scanner-windows-amd64-v6.1.2.zip
**Happy Rdio scanning !** **Happy Rdio scanning !**

View file

@ -16,8 +16,8 @@
################################################################################ ################################################################################
app := rdio-scanner app := rdio-scanner
date := 2022/01/04 date := 2022/01/05
ver := 6.1.1 ver := 6.1.2
client := $(wildcard client/*.json client/*.ts) client := $(wildcard client/*.json client/*.ts)
server := $(wildcard server/*.go) server := $(wildcard server/*.go)

View file

@ -30,6 +30,8 @@ ALWAYS DOWNLOAD THE LATEST VERSION OF [RDIO SCANNER](https://github.com/chuot/rd
More detailed instructions are available in the `rdio-scanner.pdf` file provided in the precompiled archives. More detailed instructions are available in the `rdio-scanner.pdf` file provided in the precompiled archives.
If you are updating from version 5, please refer to [docs/update-from-v5.md](docs/update-from-v5.md) before proceeding.
# Need help ? # Need help ?
You can ask your questions or post your comments on the [Rdio Scanner Discussions](https://github.com/chuot/rdio-scanner/discussions) at **[https://github.com/chuot/rdio-scanner/discussions](https://github.com/chuot/rdio-scanner/discussions)** or on the [Gitter Rdio Scanner Lobby](https://gitter.im/rdio-scanner/Lobby) at **[https://gitter.im/rdio-scanner/Lobby](https://gitter.im/rdio-scanner/Lobby)**. You can ask your questions or post your comments on the [Rdio Scanner Discussions](https://github.com/chuot/rdio-scanner/discussions) at **[https://github.com/chuot/rdio-scanner/discussions](https://github.com/chuot/rdio-scanner/discussions)** or on the [Gitter Rdio Scanner Lobby](https://gitter.im/rdio-scanner/Lobby) at **[https://gitter.im/rdio-scanner/Lobby](https://gitter.im/rdio-scanner/Lobby)**.

View file

@ -39,5 +39,5 @@
"build": "ng build --base-href ./ --configuration production", "build": "ng build --base-href ./ --configuration production",
"start": "ng serve" "start": "ng serve"
}, },
"version": "6.1.1" "version": "6.1.2"
} }

View file

@ -32,7 +32,7 @@ export class AppUpdateService {
) { ) {
if (swUpdate.isEnabled) { if (swUpdate.isEnabled) {
swUpdate.versionUpdates.subscribe(() => this.prompt()); swUpdate.versionUpdates.subscribe(() => this.prompt());
setInterval(() => swUpdate.checkForUpdate(), 5 * 60 * 1000); setInterval(() => swUpdate.checkForUpdate(), 60 * 60 * 1000);
} }
} }

View file

@ -12,4 +12,8 @@ A: Due to the ACME protocol used by Let's Encrypt, ports 80 and 443 must be open
A: No problem, just drop us a line at **[rdio-scanner@saubeo.solutions](mailto:rdio-scanner@saubeo.solutions)** and we'll make sure to add the relevant information in this document in the next release. In the meantime, You can ask your questions on the [Rdio Scanner Discussions](https://github.com/chuot/rdio-scanner/discussions) at **[https://github.com/chuot/rdio-scanner/discussions](https://github.com/chuot/rdio-scanner/discussions)** or on the [Gitter Rdio Scanner Lobby](https://gitter.im/rdio-scanner/Lobby) at **[https://gitter.im/rdio-scanner/Lobby](https://gitter.im/rdio-scanner/Lobby)**. A: No problem, just drop us a line at **[rdio-scanner@saubeo.solutions](mailto:rdio-scanner@saubeo.solutions)** and we'll make sure to add the relevant information in this document in the next release. In the meantime, You can ask your questions on the [Rdio Scanner Discussions](https://github.com/chuot/rdio-scanner/discussions) at **[https://github.com/chuot/rdio-scanner/discussions](https://github.com/chuot/rdio-scanner/discussions)** or on the [Gitter Rdio Scanner Lobby](https://gitter.im/rdio-scanner/Lobby) at **[https://gitter.im/rdio-scanner/Lobby](https://gitter.im/rdio-scanner/Lobby)**.
**Q: How do I update to version 6 from version 5**
A: First, don't use the update.js script, it won't work since the server portion of version 6 as been completely rewritten in GO. Simply unzip the archive that contains the Rdio Scanner executable and its PDF document to a new folder, then copy the database.sqlite from version 5 to the new folder that contains version 6 and make sure to rename it to _rdio-scanner.db_.
\pagebreak{} \pagebreak{}

View file

@ -42,8 +42,8 @@ ALWAYS DOWNLOAD THE LATEST VERSION OF [RDIO SCANNER](https://github.com/chuot/rd
rdio@macos ~ % mkdir rdio-scanner rdio@macos ~ % mkdir rdio-scanner
rdio@macos ~ % cd rdio-scanner rdio@macos ~ % cd rdio-scanner
rdio@macos rdio-scanner % unzip \ rdio@macos rdio-scanner % unzip \
> ~/Downloads/rdio-scanner-darwin-arm64-v6.1.1.zip > ~/Downloads/rdio-scanner-darwin-arm64-v6.1.2.zip
Archive: /Users/rdio/Downloads/rdio-scanner-darwin-arm64-v6.1.1.zip Archive: /Users/rdio/Downloads/rdio-scanner-darwin-arm64-v6.1.2.zip
inflating: rdio-scanner inflating: rdio-scanner
inflating: rdio-scanner.pdf inflating: rdio-scanner.pdf
@ -51,11 +51,11 @@ ALWAYS DOWNLOAD THE LATEST VERSION OF [RDIO SCANNER](https://github.com/chuot/rd
rdio@macos rdio-scanner % ./rdio-scanner rdio@macos rdio-scanner % ./rdio-scanner
Rdio Scanner v6.1.1 Rdio Scanner v6.1.2
---------------------------------- ----------------------------------
2022/01/04 08:38:06 server started 2022/01/05 08:38:06 server started
2022/01/04 08:38:06 main interface at http://macos.local:3000 2022/01/05 08:38:06 main interface at http://macos.local:3000
2022/01/04 08:38:06 admin interface at http://macos.local:3000/admin 2022/01/05 08:38:06 admin interface at http://macos.local:3000/admin
4. Access the administrative dashboard to finalize the configuration. 4. Access the administrative dashboard to finalize the configuration.
@ -77,11 +77,11 @@ Here we want our [Rdio Scanner](https://guthub.com/chuot/rdio-scanner) instance
rdio@macos rdio-scanner % ./rdio-scanner --listen :80 rdio@macos rdio-scanner % ./rdio-scanner --listen :80
Rdio Scanner v6.1.1 Rdio Scanner v6.1.2
---------------------------------- ----------------------------------
2022/01/04 08:48:03 server started 2022/01/05 08:48:03 server started
2022/01/04 08:48:03 main interface at http://macos.local 2022/01/05 08:48:03 main interface at http://macos.local
2022/01/04 08:48:03 admin interface at http://macos.local/admin 2022/01/05 08:48:03 admin interface at http://macos.local/admin
## Listening with SSL with self-signed certificates ## Listening with SSL with self-signed certificates
@ -90,8 +90,8 @@ It is advised to share your [Rdio Scanner](https://github.com/chuot/rdio-scanner
We can create such self-signed certificates by running [Rdio Scanner](https://github.com/chuot/rdio-scanner) with the **-ssl_create** argument. We can create such self-signed certificates by running [Rdio Scanner](https://github.com/chuot/rdio-scanner) with the **-ssl_create** argument.
rdio@macos rdio-scanner % ./rdio-scanner -ssl_create rdio@macos rdio-scanner % ./rdio-scanner -ssl_create
2022/01/04 08:49:16 generating ssl certificate files 2022/01/05 08:49:16 generating ssl certificate files
2022/01/04 08:49:17 ssl files created 2022/01/05 08:49:17 ssl files created
This has generated these files in the same folder as your [Rdio Scanner](https://github.com/chuot/rdio-scanner) executable. This has generated these files in the same folder as your [Rdio Scanner](https://github.com/chuot/rdio-scanner) executable.
@ -108,12 +108,12 @@ Now we use the self-signed server certificate to run our instance.
> -ssl_key_file server.key \ > -ssl_key_file server.key \
> -ssl_listen :443 > -ssl_listen :443
Rdio Scanner v6.1.1 Rdio Scanner v6.1.2
---------------------------------- ----------------------------------
2022/01/04 08:50:58 server started 2022/01/05 08:50:58 server started
2022/01/04 08:50:58 main interface at http://macos.local 2022/01/05 08:50:58 main interface at http://macos.local
2022/01/04 08:50:58 main interface at https://macos.local 2022/01/05 08:50:58 main interface at https://macos.local
2022/01/04 08:50:58 admin interface at https://macos.local/admin 2022/01/05 08:50:58 admin interface at https://macos.local/admin
## Save your advanced configuration to a config file ## Save your advanced configuration to a config file
@ -125,7 +125,7 @@ You don't want to have to type everytime a long list of arguments. No problem, y
> -ssl_key_file server.key \ > -ssl_key_file server.key \
> -ssl_listen :443 \ > -ssl_listen :443 \
> -config_save > -config_save
2022/01/04 08:52:24 rdio-scanner.ini file created 2022/01/05 08:52:24 rdio-scanner.ini file created
All of your parameters passed as arguments to [Rdio Scanner](https://github.com/chuot/rdio-scanner) have been saved to an INI file which has the same arguments/values list. All of your parameters passed as arguments to [Rdio Scanner](https://github.com/chuot/rdio-scanner) have been saved to an INI file which has the same arguments/values list.
@ -140,12 +140,12 @@ Then simply run [Rdio Scanner](https://github.com/chuot/rdio-scanner) without an
rdio@macos rdio-scanner % ./rdio-scanner rdio@macos rdio-scanner % ./rdio-scanner
Rdio Scanner v6.1.1 Rdio Scanner v6.1.2
---------------------------------- ----------------------------------
2022/01/04 08:54:08 server started 2022/01/05 08:54:08 server started
2022/01/04 08:54:08 main interface at http://macos.local 2022/01/05 08:54:08 main interface at http://macos.local
2022/01/04 08:54:08 main interface at https://macos.local 2022/01/05 08:54:08 main interface at https://macos.local
2022/01/04 08:54:08 admin interface at https://macos.local/admin 2022/01/05 08:54:08 admin interface at https://macos.local/admin
## Install Rdio Scanner as a service ## Install Rdio Scanner as a service

View file

@ -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:~ $ mkdir rdio-scanner
rdio@pc-freebsd:~ $ cd rdio-scanner rdio@pc-freebsd:~ $ cd rdio-scanner
rdio@pc-freebsd:~/rdio-scanner $ unzip \ rdio@pc-freebsd:~/rdio-scanner $ unzip \
> ~/rdio-scanner-freebsd-amd64-v6.1.1.zip > ~/rdio-scanner-freebsd-amd64-v6.1.2.zip
Archive: ../rdio-scanner-freebsd-amd64-v6.1.1.zip Archive: ../rdio-scanner-freebsd-amd64-v6.1.2.zip
extracting: rdio-scanner extracting: rdio-scanner
extracting: rdio-scanner.pdf extracting: rdio-scanner.pdf
@ -51,11 +51,11 @@ ALWAYS DOWNLOAD THE LATEST VERSION OF [RDIO SCANNER](https://github.com/chuot/rd
rdio@pc-freebsd:~/rdio-scanner $ ./rdio-scanner rdio@pc-freebsd:~/rdio-scanner $ ./rdio-scanner
Rdio Scanner v6.1.1 Rdio Scanner v6.1.2
---------------------------------- ----------------------------------
2022/01/04 08:16:36 server started 2022/01/05 08:16:36 server started
2022/01/04 08:16:36 main interface at http://pc-freebsd:3000 2022/01/05 08:16:36 main interface at http://pc-freebsd:3000
2022/01/04 08:16:36 admin interface at http://pc-freebsd:3000/admin 2022/01/05 08:16:36 admin interface at http://pc-freebsd:3000/admin
4. Access the administrative dashboard to finalize the configuration. 4. Access the administrative dashboard to finalize the configuration.
@ -81,11 +81,11 @@ Here we want our [Rdio Scanner](https://guthub.com/chuot/rdio-scanner) instance
Password: Password:
root@pc-freebsd:/home/rdio/rdio-scanner # ./rdio-scanner -listen :80 root@pc-freebsd:/home/rdio/rdio-scanner # ./rdio-scanner -listen :80
Rdio Scanner v6.1.1 Rdio Scanner v6.1.2
---------------------------------- ----------------------------------
2022/01/04 08:19:38 server started 2022/01/05 08:19:38 server started
2022/01/04 08:19:38 main interface at http://pc-freebsd 2022/01/05 08:19:38 main interface at http://pc-freebsd
2022/01/04 08:19:38 admin interface at http://pc-freebsd/admin 2022/01/05 08:19:38 admin interface at http://pc-freebsd/admin
## Listening with SSL with self-signed certificates ## Listening with SSL with self-signed certificates
@ -94,8 +94,8 @@ It is advised to share your [Rdio Scanner](https://github.com/chuot/rdio-scanner
We can create such self-signed certificates by running [Rdio Scanner](https://github.com/chuot/rdio-scanner) with the **-ssl_create** argument. We can create such self-signed certificates by running [Rdio Scanner](https://github.com/chuot/rdio-scanner) with the **-ssl_create** argument.
rdio@pc-freebsd:~/rdio-scanner $ ./rdio-scanner -ssl_create rdio@pc-freebsd:~/rdio-scanner $ ./rdio-scanner -ssl_create
2022/01/04 10:32:17 generating ssl certificate files 2022/01/05 10:32:17 generating ssl certificate files
2022/01/04 10:32:19 ssl files created 2022/01/05 10:32:19 ssl files created
This has generated these files in the same folder as your [Rdio Scanner](https://github.com/chuot/rdio-scanner) executable. This has generated these files in the same folder as your [Rdio Scanner](https://github.com/chuot/rdio-scanner) executable.
@ -114,12 +114,12 @@ Now we use the self-signed server certificate to run our instance.
> -ssl_key_file server.key \ > -ssl_key_file server.key \
> -ssl_listen :443 > -ssl_listen :443
Rdio Scanner v6.1.1 Rdio Scanner v6.1.2
---------------------------------- ----------------------------------
2022/01/04 10:34:29 server started 2022/01/05 10:34:29 server started
2022/01/04 10:34:29 main interface at http://pc-freebsd 2022/01/05 10:34:29 main interface at http://pc-freebsd
2022/01/04 10:34:29 main interface at https://pc-freebsd 2022/01/05 10:34:29 main interface at https://pc-freebsd
2022/01/04 10:34:29 admin interface at https://pc-freebsd/admin 2022/01/05 10:34:29 admin interface at https://pc-freebsd/admin
## Save your advanced configuration to a config file ## Save your advanced configuration to a config file
@ -131,7 +131,7 @@ You don't want to have to type everytime a long list of arguments. No problem, y
> -ssl_key_file server.key \ > -ssl_key_file server.key \
> -ssl_listen :443 \ > -ssl_listen :443 \
> -config_save > -config_save
2022/01/04 10:37:00 rdio-scanner.ini file created 2022/01/05 10:37:00 rdio-scanner.ini file created
All of your parameters passed as arguments to [Rdio Scanner](https://github.com/chuot/rdio-scanner) have been saved to an INI file which has the same arguments/values list. All of your parameters passed as arguments to [Rdio Scanner](https://github.com/chuot/rdio-scanner) have been saved to an INI file which has the same arguments/values list.
@ -148,12 +148,12 @@ Then simply run [Rdio Scanner](https://github.com/chuot/rdio-scanner) without an
Password: Password:
root@pc-freebsd:/home/rdio/rdio-scanner # ./rdio-scanner root@pc-freebsd:/home/rdio/rdio-scanner # ./rdio-scanner
Rdio Scanner v6.1.1 Rdio Scanner v6.1.2
---------------------------------- ----------------------------------
2022/01/04 10:38:28 server started 2022/01/05 10:38:28 server started
2022/01/04 10:38:29 main interface at http://pc-freebsd 2022/01/05 10:38:29 main interface at http://pc-freebsd
2022/01/04 10:38:29 main interface at https://pc-freebsd 2022/01/05 10:38:29 main interface at https://pc-freebsd
2022/01/04 10:38:29 admin interface at https://pc-freebsd/admin 2022/01/05 10:38:29 admin interface at https://pc-freebsd/admin
## Install Rdio Scanner as a service ## Install Rdio Scanner as a service

View file

@ -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 ~]$ mkdir rdio-scanner
[rdio@pc-linux ~]$ cd rdio-scanner [rdio@pc-linux ~]$ cd rdio-scanner
[rdio@pc-linux rdio-scanner]$ unzip \ [rdio@pc-linux rdio-scanner]$ unzip \
> ~/Downloads/rdio-scanner-linux-amd64-v6.1.1.zip > ~/Downloads/rdio-scanner-linux-amd64-v6.1.2.zip
Archive: /home/rdio/Downloads/rdio-scanner-linux-amd64-v6.1.1.zip Archive: /home/rdio/Downloads/rdio-scanner-linux-amd64-v6.1.2.zip
inflating: rdio-scanner inflating: rdio-scanner
inflating: rdio-scanner.pdf inflating: rdio-scanner.pdf
@ -51,11 +51,11 @@ ALWAYS DOWNLOAD THE LATEST VERSION OF [RDIO SCANNER](https://github.com/chuot/rd
[rdio@pc-linux rdio-scanner]$ ./rdio-scanner [rdio@pc-linux rdio-scanner]$ ./rdio-scanner
Rdio Scanner v6.1.1 Rdio Scanner v6.1.2
---------------------------------- ----------------------------------
2022/01/04 09:11:48 server started 2022/01/05 09:11:48 server started
2022/01/04 09:11:48 main interface at http://pc-linux:3000 2022/01/05 09:11:48 main interface at http://pc-linux:3000
2022/01/04 09:11:48 admin interface at http://pc-linux:3000/admin 2022/01/05 09:11:48 admin interface at http://pc-linux:3000/admin
4. Access the administrative dashboard to finalize the configuration. 4. Access the administrative dashboard to finalize the configuration.
@ -78,11 +78,11 @@ Here we want our [Rdio Scanner](https://guthub.com/chuot/rdio-scanner) instance
[rdio@pc-linux rdio-scanner]$ sudo ./rdio-scanner -listen :80 [rdio@pc-linux rdio-scanner]$ sudo ./rdio-scanner -listen :80
[sudo] password for rdio: [sudo] password for rdio:
Rdio Scanner v6.1.1 Rdio Scanner v6.1.2
---------------------------------- ----------------------------------
2022/01/04 09:14:00 server started 2022/01/05 09:14:00 server started
2022/01/04 09:14:00 main interface at http://pc-linux 2022/01/05 09:14:00 main interface at http://pc-linux
2022/01/04 09:14:00 admin interface at http://pc-linux/admin 2022/01/05 09:14:00 admin interface at http://pc-linux/admin
## Listening with SSL with self-signed certificates ## Listening with SSL with self-signed certificates
@ -91,8 +91,8 @@ It is advised to share your [Rdio Scanner](https://github.com/chuot/rdio-scanner
We can create such self-signed certificates by running [Rdio Scanner](https://github.com/chuot/rdio-scanner) with the **-ssl_create** argument. We can create such self-signed certificates by running [Rdio Scanner](https://github.com/chuot/rdio-scanner) with the **-ssl_create** argument.
[rdio@pc-linux rdio-scanner]$ ./rdio-scanner -ssl_create [rdio@pc-linux rdio-scanner]$ ./rdio-scanner -ssl_create
2022/01/04 09:15:03 generating ssl certificate files 2022/01/05 09:15:03 generating ssl certificate files
2022/01/04 09:15:05 ssl files created 2022/01/05 09:15:05 ssl files created
This has generated these files in the same folder as your [Rdio Scanner](https://github.com/chuot/rdio-scanner) executable. This has generated these files in the same folder as your [Rdio Scanner](https://github.com/chuot/rdio-scanner) executable.
@ -110,12 +110,12 @@ Now we use the self-signed server certificate to run our instance.
> -ssl_listen :443 > -ssl_listen :443
[sudo] password for rdio: [sudo] password for rdio:
Rdio Scanner v6.1.1 Rdio Scanner v6.1.2
---------------------------------- ----------------------------------
2022/01/04 09:16:47 server started 2022/01/05 09:16:47 server started
2022/01/04 09:16:47 main interface at http://pc-linux 2022/01/05 09:16:47 main interface at http://pc-linux
2022/01/04 09:16:47 main interface at https://pc-linux 2022/01/05 09:16:47 main interface at https://pc-linux
2022/01/04 09:16:47 admin interface at https://pc-linux/admin 2022/01/05 09:16:47 admin interface at https://pc-linux/admin
## Save your advanced configuration to a config file ## Save your advanced configuration to a config file
@ -127,7 +127,7 @@ You don't want to have to type everytime a long list of arguments. No problem, y
> -ssl_key_file server.key \ > -ssl_key_file server.key \
> -ssl_listen :443 \ > -ssl_listen :443 \
> -config_save > -config_save
2022/01/04 09:19:29 rdio-scanner.ini file created 2022/01/05 09:19:29 rdio-scanner.ini file created
All of your parameters passed as arguments to [Rdio Scanner](https://github.com/chuot/rdio-scanner) have been saved to an INI file which has the same arguments/values list. All of your parameters passed as arguments to [Rdio Scanner](https://github.com/chuot/rdio-scanner) have been saved to an INI file which has the same arguments/values list.
@ -143,12 +143,12 @@ Then simply run [Rdio Scanner](https://github.com/chuot/rdio-scanner) without an
[rdio@pc-linux rdio-scanner]$ sudo ./rdio-scanner [rdio@pc-linux rdio-scanner]$ sudo ./rdio-scanner
[sudo] Mot de passe de rdio : [sudo] Mot de passe de rdio :
Rdio Scanner v6.1.1 Rdio Scanner v6.1.2
---------------------------------- ----------------------------------
2022/01/04 09:20:40 server started 2022/01/05 09:20:40 server started
2022/01/04 09:20:40 main interface at http://pc-linux 2022/01/05 09:20:40 main interface at http://pc-linux
2022/01/04 09:20:40 main interface at https://pc-linux 2022/01/05 09:20:40 main interface at https://pc-linux
2022/01/04 09:20:40 admin interface at https://pc-linux/admin 2022/01/05 09:20:40 admin interface at https://pc-linux/admin
## Install Rdio Scanner as a service ## Install Rdio Scanner as a service

View file

@ -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> cd rdio-scanner
C:\Users\rdio\rdio-scanner> tar -xvf ^ C:\Users\rdio\rdio-scanner> tar -xvf ^
..\downloads\rdio-scanner-windows-amd64-v6.1.1.zip ..\downloads\rdio-scanner-windows-amd64-v6.1.2.zip
x rdio-scanner.exe x rdio-scanner.exe
x rdio-scanner.pdf x rdio-scanner.pdf
@ -52,11 +52,11 @@ ALWAYS DOWNLOAD THE LATEST VERSION OF [RDIO SCANNER](https://github.com/chuot/rd
C:\Users\rdio\rdio-scanner>rdio-scanner C:\Users\rdio\rdio-scanner>rdio-scanner
Rdio Scanner v6.1.1 Rdio Scanner v6.1.2
---------------------------------- ----------------------------------
2022/01/04 13:48:48 server started 2022/01/05 13:48:48 server started
2022/01/04 13:48:48 main interface at http://pc-windows:3000 2022/01/05 13:48:48 main interface at http://pc-windows:3000
2022/01/04 13:48:48 admin interface at http://pc-windows:3000/admin 2022/01/05 13:48:48 admin interface at http://pc-windows:3000/admin
4. Access the administrative dashboard to finalize the configuration. 4. Access the administrative dashboard to finalize the configuration.
@ -78,11 +78,11 @@ Here we want our [Rdio Scanner](https://guthub.com/chuot/rdio-scanner) instance
C:\Users\rdio\rdio-scanner>rdio-scanner -listen :80 C:\Users\rdio\rdio-scanner>rdio-scanner -listen :80
Rdio Scanner v6.1.1 Rdio Scanner v6.1.2
---------------------------------- ----------------------------------
2022/01/04 10:53:31 server started 2022/01/05 10:53:31 server started
2022/01/04 10:53:31 main interface at http://pc-windows 2022/01/05 10:53:31 main interface at http://pc-windows
2022/01/04 10:53:31 admin interface at http://pc-windows/admin 2022/01/05 10:53:31 admin interface at http://pc-windows/admin
## Listening with SSL with self-signed certificates ## Listening with SSL with self-signed certificates
@ -91,8 +91,8 @@ It is advised to share your [Rdio Scanner](https://github.com/chuot/rdio-scanner
We can create such self-signed certificates by running [Rdio Scanner](https://github.com/chuot/rdio-scanner) with the **-ssl_create** argument. We can create such self-signed certificates by running [Rdio Scanner](https://github.com/chuot/rdio-scanner) with the **-ssl_create** argument.
C:\Users\rdio\rdio-scanner>rdio-scanner -ssl_create C:\Users\rdio\rdio-scanner>rdio-scanner -ssl_create
2022/01/04 10:58:51 generating ssl certificate files 2022/01/05 10:58:51 generating ssl certificate files
2022/01/04 10:58:54 ssl files created 2022/01/05 10:58:54 ssl files created
This has generated these files in the same folder as your [Rdio Scanner](https://github.com/chuot/rdio-scanner) executable. This has generated these files in the same folder as your [Rdio Scanner](https://github.com/chuot/rdio-scanner) executable.
@ -109,12 +109,12 @@ Now we use the self-signed server certificate to run our instance.
-ssl_key_file server.key ^ -ssl_key_file server.key ^
-ssl_listen :443 -ssl_listen :443
Rdio Scanner v6.1.1 Rdio Scanner v6.1.2
---------------------------------- ----------------------------------
2022/01/04 11:05:43 server started 2022/01/05 11:05:43 server started
2022/01/04 11:05:43 main interface at http://pc-windows 2022/01/05 11:05:43 main interface at http://pc-windows
2022/01/04 11:05:43 main interface at https://pc-windows 2022/01/05 11:05:43 main interface at https://pc-windows
2022/01/04 11:05:43 admin interface at https://pc-windows/admin 2022/01/05 11:05:43 admin interface at https://pc-windows/admin
## Save your advanced configuration to a config file ## Save your advanced configuration to a config file
@ -126,7 +126,7 @@ You don't want to have to type everytime a long list of arguments. No problem, y
-ssl_key_file server.key ^ -ssl_key_file server.key ^
-ssl_listen :443 ^ -ssl_listen :443 ^
-config_save -config_save
2022/01/04 11:08:28 rdio-scanner.ini file created 2022/01/05 11:08:28 rdio-scanner.ini file created
All of your parameters passed as arguments to [Rdio Scanner](https://github.com/chuot/rdio-scanner) have been saved to an INI file which has the same arguments/values list. All of your parameters passed as arguments to [Rdio Scanner](https://github.com/chuot/rdio-scanner) have been saved to an INI file which has the same arguments/values list.
@ -141,12 +141,12 @@ Then simply run [Rdio Scanner](https://github.com/chuot/rdio-scanner) without an
C:\Users\rdio\rdio-scanner>rdio-scanner C:\Users\rdio\rdio-scanner>rdio-scanner
Rdio Scanner v6.1.1 Rdio Scanner v6.1.2
---------------------------------- ----------------------------------
2022/01/04 11:11:28 server started 2022/01/05 11:11:28 server started
2022/01/04 11:11:28 main interface at http://pc-windows 2022/01/05 11:11:28 main interface at http://pc-windows
2022/01/04 11:11:28 main interface at https://pc-windows 2022/01/05 11:11:28 main interface at https://pc-windows
2022/01/04 11:11:28 admin interface at https://pc-windows/admin 2022/01/05 11:11:28 admin interface at https://pc-windows/admin
\pagebreak{} \pagebreak{}

35
docs/update-from-v5.md Normal file
View file

@ -0,0 +1,35 @@
# Updating from version 5
[Rdio Scanner](https://github.com/chuot/rdio-scanner) has its server component completely rewritten in [GO](https://go.dev). Therefore, it is no longer possible to upgrade to version 6 as with previous versions.
You need to download the latest Rdio Scanner release from the [releases tab](https://github.com/chuot/rdio-scanner/releases) on the [main page](https://github.com/chuot/rdio-scanner).
> REMEMBER TO ALWAYS BACKUP YOUR DATABASE BEFORE ATTEMPTING AN UPDATE.
## Update steps for the standard sqlite database
- Stop your version 5 instance.
- Copy your old version 5 `database.sqlite` to a new folder where version 6 will be installed.
- Rename the database copy to `rdio-scanner.db`, the new default name.
- Run the new version 6 executable to update the database.
- Keep reading the PDF document that comes with the version 6 to make your instance as a service.
## Update steps for mysql/mariadb database
- Stop your version 5 instance.
- Make a backup of your MySQL/MariaDB database.
- Start the new version 6 executable with the proper -db_* arguments, see the `-h` output for more details.
- Keep reading the PDF document that comes with the version 6 to make your instance as a service.
## What if it is too late
Revert back to the latest [version 5.2.9](https://github.com/chuot/rdio-scanner/tree/3f2b184558e82317a010bd667ac3972f30998b1c) with the following commands:
- cd .../rdio-scanner
- git checkout 3f2b184
- cd client
- npm ci
- npm run build
- cd ../server
- npm ci
- restart your Rdio Scanner instance as usual

View file

@ -46,15 +46,15 @@ The color is _green_ by default, but can be customized by the system or by the t
| Button | Description | | Button | Description |
| -------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | -------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ![LIVE FEED](../images/webapp-control-livefeed-partial.png?raw=true) | When active, incoming audio will be played according to the active systems/talkgroups on the **SELECT TG** panel. The LED can also be _yellow_ if playing audio from the archive while **LIVE FEED** is inactive, this is called **offline playback mode**. Disabling **LIVE FEED** will also stop any playing audio and will clear the listening queue. | | ![LIVE FEED](./images/webapp-control-livefeed-partial.png?raw=true) | When active, incoming audio will be played according to the active systems/talkgroups on the **SELECT TG** panel. The LED can also be _yellow_ if playing audio from the archive while **LIVE FEED** is inactive, this is called **offline playback mode**. Disabling **LIVE FEED** will also stop any playing audio and will clear the listening queue. |
| ![HOLD SYS](../images/webapp-control-holdsys.png?raw=true) | Temporarily maintain the current system in live feed mode. | | ![HOLD SYS](./images/webapp-control-holdsys.png?raw=true) | Temporarily maintain the current system in live feed mode. |
| ![HOLD TG](../images/webapp-control-holdtg.png?raw=true) | Temporarily maintain the current talkgroup in live feed mode. | | ![HOLD TG](./images/webapp-control-holdtg.png?raw=true) | Temporarily maintain the current talkgroup in live feed mode. |
| ![REPLAY LAST](../images/webapp-control-replay.png?raw=true) | Replay the current audio from the beginning or the previous one if there is none active. | | ![REPLAY LAST](./images/webapp-control-replay.png?raw=true) | Replay the current audio from the beginning or the previous one if there is none active. |
| ![SKIP NEXT](../images/webapp-control-skip.png?raw=true) | Stop the audio currently playing and play the next one in the listening queue. This is useful when playing boring or encrypted sound. | | ![SKIP NEXT](./images/webapp-control-skip.png?raw=true) | Stop the audio currently playing and play the next one in the listening queue. This is useful when playing boring or encrypted sound. |
| ![AVOID](../images/webapp-control-avoid.png?raw=true) | Activate and deactivate the talkgroup from the current or previous audio. | | ![AVOID](./images/webapp-control-avoid.png?raw=true) | Activate and deactivate the talkgroup from the current or previous audio. |
| ![SEARCH CALL](../images/webapp-control-search.png?raw=true) | Display the archived audio panel. | | ![SEARCH CALL](./images/webapp-control-search.png?raw=true) | Display the archived audio panel. |
| ![PAUSE](../images/webapp-control-pause.png?raw=true) | Stop playing queue audio. Useful if you have to answer the phone without losing what's queued up for playing. | | ![PAUSE](./images/webapp-control-pause.png?raw=true) | Stop playing queue audio. Useful if you have to answer the phone without losing what's queued up for playing. |
| ![SELECT TG](../images/webapp-control-select.png?raw=true) | Display the systems/talkgroups selection panel where you decide which audio you want to listen to in _LIVE FEED_ mode, not in offline playback mode. | | ![SELECT TG](./images/webapp-control-select.png?raw=true) | Display the systems/talkgroups selection panel where you decide which audio you want to listen to in _LIVE FEED_ mode, not in offline playback mode. |
## Select panel ## Select panel
@ -69,7 +69,7 @@ Here you select which systems/talkgroups/groups you want to listen to while in _
The first section concerns group selection. This section can be disabled from the configuration file, but is active by default. Each button has three states: The first section concerns group selection. This section can be disabled from the configuration file, but is active by default. Each button has three states:
| Button | State | | Button | State |
| -------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ![ON](./images/webapp-select-group-on.png?raw=true) | All talkgroups, from any systems, that correspond to this group are actives. If you press it while it is active, it will make these talkgroups inactives. | | ![ON](./images/webapp-select-group-on.png?raw=true) | All talkgroups, from any systems, that correspond to this group are actives. If you press it while it is active, it will make these talkgroups inactives. |
| ![OFF](./images/webapp-select-group-off.png?raw=true) | All talkgroups, from any systems, that correspond to this group are inactives. If you press it while it is inactive, it will make these talkgroups actives. | | ![OFF](./images/webapp-select-group-off.png?raw=true) | All talkgroups, from any systems, that correspond to this group are inactives. If you press it while it is inactive, it will make these talkgroups actives. |
| ![PARTIAL](./images/webapp-select-group-partial.png?raw=true) | Some talkgroups, from any systems, that correspond to this group are actives and some are inactives. If you press it while it is active, it will make all these talkgroups active. | | ![PARTIAL](./images/webapp-select-group-partial.png?raw=true) | Some talkgroups, from any systems, that correspond to this group are actives and some are inactives. If you press it while it is active, it will make all these talkgroups active. |

View file

@ -315,10 +315,13 @@ func (controller *Controller) IngestCall(call *Call) {
system.Talkgroups = append(system.Talkgroups, talkgroup) system.Talkgroups = append(system.Talkgroups, talkgroup)
} }
if controller.Options.AutoPopulate || system.AutoPopulate { if controller.Options.AutoPopulate || (system != nil && system.AutoPopulate) {
switch v := call.units.(type) { switch v := call.units.(type) {
case Units: case Units:
populated = true populated = true
if system.Units == nil {
system.Units = Units{}
}
system.Units.Merge(&v) system.Units.Merge(&v)
} }
} }

View file

@ -296,6 +296,7 @@ func (dirwatch *Dirwatch) ingestTrunkRecorder(p string) error {
if call.IsValid() { if call.IsValid() {
dirwatch.controller.Ingest <- &call dirwatch.controller.Ingest <- &call
}
if dirwatch.DeleteAfter { if dirwatch.DeleteAfter {
if err = os.Remove(p); err != nil { if err = os.Remove(p); err != nil {
@ -305,7 +306,6 @@ func (dirwatch *Dirwatch) ingestTrunkRecorder(p string) error {
return err return err
} }
} }
}
return nil return nil
} }

View file

@ -21,7 +21,7 @@ require (
github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0 // indirect github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0 // indirect
github.com/stretchr/testify v1.7.0 // indirect github.com/stretchr/testify v1.7.0 // indirect
golang.org/x/mod v0.5.1 // indirect golang.org/x/mod v0.5.1 // indirect
golang.org/x/net v0.0.0-20211216030914-fe4d6282115f // indirect golang.org/x/net v0.0.0-20220105145211-5b0dc2dfae98 // indirect
golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e // indirect golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e // indirect
golang.org/x/text v0.3.7 // indirect golang.org/x/text v0.3.7 // indirect
golang.org/x/tools v0.1.8 // indirect golang.org/x/tools v0.1.8 // indirect

View file

@ -47,8 +47,8 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20211216030914-fe4d6282115f h1:hEYJvxw1lSnWIl8X9ofsYMklzaDs90JI2az5YMd4fPM= golang.org/x/net v0.0.0-20220105145211-5b0dc2dfae98 h1:+6WJMRLHlD7X7frgp7TUZ36RnQzSf9wVVTNakEp+nqY=
golang.org/x/net v0.0.0-20211216030914-fe4d6282115f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220105145211-5b0dc2dfae98/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=

View file

@ -161,7 +161,7 @@ func (groups *Groups) Read(db *Database) error {
group := Group{} group := Group{}
if err = rows.Scan(&id, &group.Label); err != nil { if err = rows.Scan(&id, &group.Label); err != nil {
continue break
} }
if id.Valid && id.Float64 > 0 { if id.Valid && id.Float64 > 0 {

View file

@ -218,7 +218,7 @@ func NewLogResults(logOptions *LogOptions, db *Database) (*LogResults, error) {
log := Log{} log := Log{}
if err = rows.Scan(&id, &dateTime, &log.Level, &log.Message); err != nil { if err = rows.Scan(&id, &dateTime, &log.Level, &log.Message); err != nil {
continue break
} }
if id.Valid && id.Float64 > 0 { if id.Valid && id.Float64 > 0 {

View file

@ -73,7 +73,7 @@ func ParseSdrTrunkMeta(call *Call, controller *Controller) error {
} }
} }
s = regexp.MustCompile(`^(?:P:)*([0-9]+)`).FindStringSubmatch(m.Title()) s = regexp.MustCompile(`([0-9]+)`).FindStringSubmatch(m.Title())
if len(s) > 1 && len(s[1]) > 0 { if len(s) > 1 && len(s[1]) > 0 {
if i, err = strconv.Atoi(s[1]); err != nil { if i, err = strconv.Atoi(s[1]); err != nil {
return err return err

View file

@ -275,7 +275,7 @@ func NewSearchResults(searchOptions *SearchOptions, client *Client) (*SearchResu
for rows.Next() { for rows.Next() {
searchResult := SearchResult{} searchResult := SearchResult{}
if err = rows.Scan(&id, &dateTime, &searchResult.System, &searchResult.Talkgroup); err != nil { if err = rows.Scan(&id, &dateTime, &searchResult.System, &searchResult.Talkgroup); err != nil {
continue break
} }
if id.Valid && id.Float64 > 0 { if id.Valid && id.Float64 > 0 {

View file

@ -309,7 +309,7 @@ func (systems *Systems) Read(db *Database) error {
} }
if err = rows.Scan(&rowId, &system.AutoPopulate, &blacklists, &system.Id, &system.Label, &led, &order); err != nil { if err = rows.Scan(&rowId, &system.AutoPopulate, &blacklists, &system.Id, &system.Label, &led, &order); err != nil {
continue break
} }
if rowId.Valid && rowId.Float64 > 0 { if rowId.Valid && rowId.Float64 > 0 {

View file

@ -161,7 +161,7 @@ func (tags *Tags) Read(db *Database) error {
tag := Tag{} tag := Tag{}
if err = rows.Scan(&id, &tag.Label); err != nil { if err = rows.Scan(&id, &tag.Label); err != nil {
continue break
} }
if id.Valid && id.Float64 > 0 { if id.Valid && id.Float64 > 0 {

View file

@ -145,7 +145,7 @@ func (talkgroups *Talkgroups) Read(db *Database, systemId uint) error {
talkgroup := &Talkgroup{} talkgroup := &Talkgroup{}
if err = rows.Scan(&frequency, &talkgroup.GroupId, &talkgroup.Id, &talkgroup.Label, &led, &talkgroup.Name, &talkgroup.Order, &talkgroup.TagId); err != nil { if err = rows.Scan(&frequency, &talkgroup.GroupId, &talkgroup.Id, &talkgroup.Label, &led, &talkgroup.Name, &talkgroup.Order, &talkgroup.TagId); err != nil {
continue break
} }
if frequency.Valid && frequency.Float64 > 0 { if frequency.Valid && frequency.Float64 > 0 {

View file

@ -15,4 +15,4 @@
package main package main
const Version = "6.1.1" const Version = "6.1.2"