mirror of
https://github.com/chuot/rdio-scanner.git
synced 2026-08-13 16:33:01 -06:00
Version 6.2.5
This commit is contained in:
parent
228437cb96
commit
0fbe97469b
|
|
@ -31,6 +31,10 @@ _v6.2.4_
|
|||
- Avoid using setInterval and setTimeout in the webapp.
|
||||
- Fix talkgroup search filter upon new configuration (issue #158).
|
||||
|
||||
_v6.2.5_
|
||||
|
||||
- Fix unnecessary auto populate of unit id/label (issue #160).
|
||||
|
||||
## Version 6.1
|
||||
|
||||
- Calls now support patched talkgroups.
|
||||
|
|
@ -452,7 +456,7 @@ _v4.7.6_
|
|||
|
||||
## Version 4.1
|
||||
|
||||
- New offline playback mode.
|
||||
- New playback mode.
|
||||
|
||||
## Version 4.0
|
||||
|
||||
|
|
|
|||
16
COMPILING.md
16
COMPILING.md
|
|
@ -26,13 +26,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.2.4.zip
|
||||
rdio-scanner-darwin-arm64-v6.2.4.zip
|
||||
rdio-scanner-freebsd-amd64-v6.2.4.zip
|
||||
rdio-scanner-linux-386-v6.2.4.zip
|
||||
rdio-scanner-linux-amd64-v6.2.4.zip
|
||||
rdio-scanner-linux-arm64-v6.2.4.zip
|
||||
rdio-scanner-linux-arm-v6.2.4.zip
|
||||
rdio-scanner-windows-amd64-v6.2.4.zip
|
||||
rdio-scanner-darwin-amd64-v6.2.5.zip
|
||||
rdio-scanner-darwin-arm64-v6.2.5.zip
|
||||
rdio-scanner-freebsd-amd64-v6.2.5.zip
|
||||
rdio-scanner-linux-386-v6.2.5.zip
|
||||
rdio-scanner-linux-amd64-v6.2.5.zip
|
||||
rdio-scanner-linux-arm64-v6.2.5.zip
|
||||
rdio-scanner-linux-arm-v6.2.5.zip
|
||||
rdio-scanner-windows-amd64-v6.2.5.zip
|
||||
|
||||
**Happy Rdio scanning !**
|
||||
4
Makefile
4
Makefile
|
|
@ -16,8 +16,8 @@
|
|||
################################################################################
|
||||
|
||||
app := rdio-scanner
|
||||
date := 2022/04/04
|
||||
ver := 6.2.4
|
||||
date := 2022/04/06
|
||||
ver := 6.2.5
|
||||
|
||||
client := $(wildcard client/*.json client/*.ts)
|
||||
server := $(wildcard server/*.go)
|
||||
|
|
|
|||
932
client/package-lock.json
generated
932
client/package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
|
@ -1,30 +1,30 @@
|
|||
{
|
||||
"author": "Chrystian Huot <chrystian.huot@saubeo.solutions>",
|
||||
"dependencies": {
|
||||
"@angular/animations": "^13.3.0",
|
||||
"@angular/cdk": "^13.3.1",
|
||||
"@angular/common": "~13.3.0",
|
||||
"@angular/compiler": "~13.3.0",
|
||||
"@angular/core": "~13.3.0",
|
||||
"@angular/forms": "~13.3.0",
|
||||
"@angular/material": "^13.3.1",
|
||||
"@angular/platform-browser": "~13.3.0",
|
||||
"@angular/platform-browser-dynamic": "~13.3.0",
|
||||
"@angular/router": "^13.3.0",
|
||||
"@angular/service-worker": "^13.3.0",
|
||||
"@angular/animations": "^13.3.1",
|
||||
"@angular/cdk": "^13.3.2",
|
||||
"@angular/common": "~13.3.1",
|
||||
"@angular/compiler": "~13.3.1",
|
||||
"@angular/core": "~13.3.1",
|
||||
"@angular/forms": "~13.3.1",
|
||||
"@angular/material": "^13.3.2",
|
||||
"@angular/platform-browser": "~13.3.1",
|
||||
"@angular/platform-browser-dynamic": "~13.3.1",
|
||||
"@angular/router": "^13.3.1",
|
||||
"@angular/service-worker": "^13.3.1",
|
||||
"rxjs": "~7.4.0",
|
||||
"tslib": "^2.3.1",
|
||||
"zone.js": "~0.11.5"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@angular-devkit/build-angular": "^13.3.0",
|
||||
"@angular/cli": "^13.3.0",
|
||||
"@angular/compiler-cli": "~13.3.0",
|
||||
"@angular-devkit/build-angular": "^13.3.1",
|
||||
"@angular/cli": "^13.3.1",
|
||||
"@angular/compiler-cli": "~13.3.1",
|
||||
"@types/node": "^17.0.23",
|
||||
"@typescript-eslint/eslint-plugin": "^5.16.0",
|
||||
"@typescript-eslint/parser": "^5.16.0",
|
||||
"@typescript-eslint/eslint-plugin": "^5.18.0",
|
||||
"@typescript-eslint/parser": "^5.18.0",
|
||||
"ajv-keywords": "^5.1.0",
|
||||
"eslint": "^8.11.0",
|
||||
"eslint": "^8.12.0",
|
||||
"ts-node": "~10.7.0",
|
||||
"typescript": "~4.4.4"
|
||||
},
|
||||
|
|
@ -38,5 +38,5 @@
|
|||
"build": "ng build --base-href ./ --configuration production",
|
||||
"start": "ng serve"
|
||||
},
|
||||
"version": "6.2.4"
|
||||
"version": "6.2.5"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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.2.4.zip
|
||||
Archive: /Users/rdio/Downloads/rdio-scanner-darwin-arm64-v6.2.4.zip
|
||||
> ~/Downloads/rdio-scanner-darwin-arm64-v6.2.5.zip
|
||||
Archive: /Users/rdio/Downloads/rdio-scanner-darwin-arm64-v6.2.5.zip
|
||||
inflating: rdio-scanner
|
||||
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 Scanner v6.2.4
|
||||
Rdio Scanner v6.2.5
|
||||
----------------------------------
|
||||
2022/04/04 08:38:06 server started
|
||||
2022/04/04 08:38:06 main interface at http://macos.local:3000
|
||||
2022/04/04 08:38:06 admin interface at http://macos.local:3000/admin
|
||||
2022/04/06 08:38:06 server started
|
||||
2022/04/06 08:38:06 main interface at http://macos.local:3000
|
||||
2022/04/06 08:38:06 admin interface at http://macos.local:3000/admin
|
||||
|
||||
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 Scanner v6.2.4
|
||||
Rdio Scanner v6.2.5
|
||||
----------------------------------
|
||||
2022/04/04 08:48:03 server started
|
||||
2022/04/04 08:48:03 main interface at http://macos.local
|
||||
2022/04/04 08:48:03 admin interface at http://macos.local/admin
|
||||
2022/04/06 08:48:03 server started
|
||||
2022/04/06 08:48:03 main interface at http://macos.local
|
||||
2022/04/06 08:48:03 admin interface at http://macos.local/admin
|
||||
|
||||
## Listening on a SSL port
|
||||
|
||||
|
|
@ -95,12 +95,12 @@ You can use your own SSL certificates that match your domain name with `-ssl_cer
|
|||
> -ssl_key_file mykey.key \
|
||||
> -ssl_listen :443
|
||||
|
||||
Rdio Scanner v6.2.4
|
||||
Rdio Scanner v6.2.5
|
||||
----------------------------------
|
||||
2022/04/04 08:50:58 server started
|
||||
2022/04/04 08:50:58 main interface at http://macos.local
|
||||
2022/04/04 08:50:58 main interface at https://macos.local
|
||||
2022/04/04 08:50:58 admin interface at https://macos.local/admin
|
||||
2022/04/06 08:50:58 server started
|
||||
2022/04/06 08:50:58 main interface at http://macos.local
|
||||
2022/04/06 08:50:58 main interface at https://macos.local
|
||||
2022/04/06 08:50:58 admin interface at https://macos.local/admin
|
||||
|
||||
If you don't want to worry about SSL certificates, you can use the built-in Let's Encrypt auto-cert feature. This requires that you have both port 80 (HTTP) and port 443 (HTTPS) open to the world. Also, your domain name should point to your IP address where [Rdio Scanner](https://github.com/chuot/rdio-scanner/) is running. The advantage of this approach is that everything is done automatically, no certificate request, no certificate renewal.
|
||||
|
||||
|
|
@ -118,7 +118,7 @@ You don't want to have to type everytime a long list of arguments. No problem, y
|
|||
> -ssl_auto_cert mydomain.com \
|
||||
> -ssl_listen :443 \
|
||||
> -config_save
|
||||
2022/04/04 08:52:24 rdio-scanner.ini file created
|
||||
2022/04/06 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.
|
||||
|
||||
|
|
@ -132,12 +132,12 @@ Then simply run [Rdio Scanner](https://github.com/chuot/rdio-scanner) without an
|
|||
|
||||
rdio@macos rdio-scanner % ./rdio-scanner
|
||||
|
||||
Rdio Scanner v6.2.4
|
||||
Rdio Scanner v6.2.5
|
||||
----------------------------------
|
||||
2022/04/04 08:54:08 server started
|
||||
2022/04/04 08:54:08 main interface at http://macos.local
|
||||
2022/04/04 08:54:08 main interface at https://macos.local
|
||||
2022/04/04 08:54:08 admin interface at https://macos.local/admin
|
||||
2022/04/06 08:54:08 server started
|
||||
2022/04/06 08:54:08 main interface at http://macos.local
|
||||
2022/04/06 08:54:08 main interface at https://macos.local
|
||||
2022/04/06 08:54:08 admin interface at https://macos.local/admin
|
||||
|
||||
## Install Rdio Scanner as a service
|
||||
|
||||
|
|
|
|||
|
|
@ -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.2.4.zip
|
||||
Archive: ../rdio-scanner-freebsd-amd64-v6.2.4.zip
|
||||
> ~/rdio-scanner-freebsd-amd64-v6.2.5.zip
|
||||
Archive: ../rdio-scanner-freebsd-amd64-v6.2.5.zip
|
||||
extracting: rdio-scanner
|
||||
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 Scanner v6.2.4
|
||||
Rdio Scanner v6.2.5
|
||||
----------------------------------
|
||||
2022/04/04 08:16:36 server started
|
||||
2022/04/04 08:16:36 main interface at http://pc-freebsd:3000
|
||||
2022/04/04 08:16:36 admin interface at http://pc-freebsd:3000/admin
|
||||
2022/04/06 08:16:36 server started
|
||||
2022/04/06 08:16:36 main interface at http://pc-freebsd:3000
|
||||
2022/04/06 08:16:36 admin interface at http://pc-freebsd:3000/admin
|
||||
|
||||
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:
|
||||
root@pc-freebsd:/home/rdio/rdio-scanner # ./rdio-scanner -listen :80
|
||||
|
||||
Rdio Scanner v6.2.4
|
||||
Rdio Scanner v6.2.5
|
||||
----------------------------------
|
||||
2022/04/04 08:19:38 server started
|
||||
2022/04/04 08:19:38 main interface at http://pc-freebsd
|
||||
2022/04/04 08:19:38 admin interface at http://pc-freebsd/admin
|
||||
2022/04/06 08:19:38 server started
|
||||
2022/04/06 08:19:38 main interface at http://pc-freebsd
|
||||
2022/04/06 08:19:38 admin interface at http://pc-freebsd/admin
|
||||
|
||||
## Listening on a SSL port
|
||||
|
||||
|
|
@ -101,12 +101,12 @@ You can use your own SSL certificates that match your domain name with `-ssl_cer
|
|||
> -ssl_key_file mykey.key \
|
||||
> -ssl_listen :443
|
||||
|
||||
Rdio Scanner v6.2.4
|
||||
Rdio Scanner v6.2.5
|
||||
----------------------------------
|
||||
2022/04/04 10:34:29 server started
|
||||
2022/04/04 10:34:29 main interface at http://pc-freebsd
|
||||
2022/04/04 10:34:29 main interface at https://pc-freebsd
|
||||
2022/04/04 10:34:29 admin interface at https://pc-freebsd/admin
|
||||
2022/04/06 10:34:29 server started
|
||||
2022/04/06 10:34:29 main interface at http://pc-freebsd
|
||||
2022/04/06 10:34:29 main interface at https://pc-freebsd
|
||||
2022/04/06 10:34:29 admin interface at https://pc-freebsd/admin
|
||||
|
||||
If you don't want to worry about SSL certificates, you can use the built-in Let's Encrypt auto-cert feature. This requires that you have both port 80 (HTTP) and port 443 (HTTPS) open to the world. Also, your domain name should point to your IP address where [Rdio Scanner](https://github.com/chuot/rdio-scanner/) is running. The advantage of this approach is that everything is done automatically, no certificate request, no certificate renewal.
|
||||
|
||||
|
|
@ -126,7 +126,7 @@ You don't want to have to type everytime a long list of arguments. No problem, y
|
|||
> -ssl_auto_cert mydomain.com \
|
||||
> -ssl_listen :443 \
|
||||
> -config_save
|
||||
2022/04/04 10:37:00 rdio-scanner.ini file created
|
||||
2022/04/06 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.
|
||||
|
||||
|
|
@ -142,12 +142,12 @@ 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.2.4
|
||||
Rdio Scanner v6.2.5
|
||||
----------------------------------
|
||||
2022/04/04 10:38:28 server started
|
||||
2022/04/04 10:38:29 main interface at http://pc-freebsd
|
||||
2022/04/04 10:38:29 main interface at https://pc-freebsd
|
||||
2022/04/04 10:38:29 admin interface at https://pc-freebsd/admin
|
||||
2022/04/06 10:38:28 server started
|
||||
2022/04/06 10:38:29 main interface at http://pc-freebsd
|
||||
2022/04/06 10:38:29 main interface at https://pc-freebsd
|
||||
2022/04/06 10:38:29 admin interface at https://pc-freebsd/admin
|
||||
|
||||
## Install Rdio Scanner as a service
|
||||
|
||||
|
|
|
|||
|
|
@ -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.2.4.zip
|
||||
Archive: /home/rdio/Downloads/rdio-scanner-linux-amd64-v6.2.4.zip
|
||||
> ~/Downloads/rdio-scanner-linux-amd64-v6.2.5.zip
|
||||
Archive: /home/rdio/Downloads/rdio-scanner-linux-amd64-v6.2.5.zip
|
||||
inflating: rdio-scanner
|
||||
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 Scanner v6.2.4
|
||||
Rdio Scanner v6.2.5
|
||||
----------------------------------
|
||||
2022/04/04 09:11:48 server started
|
||||
2022/04/04 09:11:48 main interface at http://pc-linux:3000
|
||||
2022/04/04 09:11:48 admin interface at http://pc-linux:3000/admin
|
||||
2022/04/06 09:11:48 server started
|
||||
2022/04/06 09:11:48 main interface at http://pc-linux:3000
|
||||
2022/04/06 09:11:48 admin interface at http://pc-linux:3000/admin
|
||||
|
||||
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
|
||||
[sudo] password for rdio:
|
||||
|
||||
Rdio Scanner v6.2.4
|
||||
Rdio Scanner v6.2.5
|
||||
----------------------------------
|
||||
2022/04/04 09:14:00 server started
|
||||
2022/04/04 09:14:00 main interface at http://pc-linux
|
||||
2022/04/04 09:14:00 admin interface at http://pc-linux/admin
|
||||
2022/04/06 09:14:00 server started
|
||||
2022/04/06 09:14:00 main interface at http://pc-linux
|
||||
2022/04/06 09:14:00 admin interface at http://pc-linux/admin
|
||||
|
||||
## Listening on a SSL port
|
||||
|
||||
|
|
@ -97,12 +97,12 @@ You can use your own SSL certificates that match your domain name with `-ssl_cer
|
|||
> -ssl_listen :443
|
||||
[sudo] password for rdio:
|
||||
|
||||
Rdio Scanner v6.2.4
|
||||
Rdio Scanner v6.2.5
|
||||
----------------------------------
|
||||
2022/04/04 09:16:47 server started
|
||||
2022/04/04 09:16:47 main interface at http://pc-linux
|
||||
2022/04/04 09:16:47 main interface at https://pc-linux
|
||||
2022/04/04 09:16:47 admin interface at https://pc-linux/admin
|
||||
2022/04/06 09:16:47 server started
|
||||
2022/04/06 09:16:47 main interface at http://pc-linux
|
||||
2022/04/06 09:16:47 main interface at https://pc-linux
|
||||
2022/04/06 09:16:47 admin interface at https://pc-linux/admin
|
||||
|
||||
If you don't want to worry about SSL certificates, you can use the built-in Let's Encrypt auto-cert feature. This requires that you have both port 80 (HTTP) and port 443 (HTTPS) open to the world. Also, your domain name should point to your IP address where [Rdio Scanner](https://github.com/chuot/rdio-scanner/) is running. The advantage of this approach is that everything is done automatically, no certificate request, no certificate renewal.
|
||||
|
||||
|
|
@ -120,7 +120,7 @@ You don't want to have to type everytime a long list of arguments. No problem, y
|
|||
> -ssl_auto_cert mydomain.com \
|
||||
> -ssl_listen :443 \
|
||||
> -config_save
|
||||
2022/04/04 09:19:29 rdio-scanner.ini file created
|
||||
2022/04/06 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.
|
||||
|
||||
|
|
@ -135,12 +135,12 @@ 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.2.4
|
||||
Rdio Scanner v6.2.5
|
||||
----------------------------------
|
||||
2022/04/04 09:20:40 server started
|
||||
2022/04/04 09:20:40 main interface at http://pc-linux
|
||||
2022/04/04 09:20:40 main interface at https://pc-linux
|
||||
2022/04/04 09:20:40 admin interface at https://pc-linux/admin
|
||||
2022/04/06 09:20:40 server started
|
||||
2022/04/06 09:20:40 main interface at http://pc-linux
|
||||
2022/04/06 09:20:40 main interface at https://pc-linux
|
||||
2022/04/06 09:20:40 admin interface at https://pc-linux/admin
|
||||
|
||||
## Install Rdio Scanner as a service
|
||||
|
||||
|
|
|
|||
|
|
@ -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.2.4.zip
|
||||
..\downloads\rdio-scanner-windows-amd64-v6.2.5.zip
|
||||
x rdio-scanner.exe
|
||||
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
|
||||
|
||||
Rdio Scanner v6.2.4
|
||||
Rdio Scanner v6.2.5
|
||||
----------------------------------
|
||||
2022/04/04 13:48:48 server started
|
||||
2022/04/04 13:48:48 main interface at http://pc-windows:3000
|
||||
2022/04/04 13:48:48 admin interface at http://pc-windows:3000/admin
|
||||
2022/04/06 13:48:48 server started
|
||||
2022/04/06 13:48:48 main interface at http://pc-windows:3000
|
||||
2022/04/06 13:48:48 admin interface at http://pc-windows:3000/admin
|
||||
|
||||
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
|
||||
|
||||
Rdio Scanner v6.2.4
|
||||
Rdio Scanner v6.2.5
|
||||
----------------------------------
|
||||
2022/04/04 10:53:31 server started
|
||||
2022/04/04 10:53:31 main interface at http://pc-windows
|
||||
2022/04/04 10:53:31 admin interface at http://pc-windows/admin
|
||||
2022/04/06 10:53:31 server started
|
||||
2022/04/06 10:53:31 main interface at http://pc-windows
|
||||
2022/04/06 10:53:31 admin interface at http://pc-windows/admin
|
||||
|
||||
## Listening on a SSL port
|
||||
|
||||
|
|
@ -96,12 +96,12 @@ You can use your own SSL certificates that match your domain name with `-ssl_cer
|
|||
-ssl_key_file meykey.key ^
|
||||
-ssl_listen :443
|
||||
|
||||
Rdio Scanner v6.2.4
|
||||
Rdio Scanner v6.2.5
|
||||
----------------------------------
|
||||
2022/04/04 11:05:43 server started
|
||||
2022/04/04 11:05:43 main interface at http://pc-windows
|
||||
2022/04/04 11:05:43 main interface at https://pc-windows
|
||||
2022/04/04 11:05:43 admin interface at https://pc-windows/admin
|
||||
2022/04/06 11:05:43 server started
|
||||
2022/04/06 11:05:43 main interface at http://pc-windows
|
||||
2022/04/06 11:05:43 main interface at https://pc-windows
|
||||
2022/04/06 11:05:43 admin interface at https://pc-windows/admin
|
||||
|
||||
If you don't want to worry about SSL certificates, you can use the built-in Let's Encrypt auto-cert feature. This requires that you have both port 80 (HTTP) and port 443 (HTTPS) open to the world. Also, your domain name should point to your IP address where [Rdio Scanner](https://github.com/chuot/rdio-scanner/) is running. The advantage of this approach is that everything is done automatically, no certificate request, no certificate renewal.
|
||||
|
||||
|
|
@ -119,7 +119,7 @@ You don't want to have to type everytime a long list of arguments. No problem, y
|
|||
-ssl_auto_cert mydomain.com ^
|
||||
-ssl_listen :443 ^
|
||||
-config_save
|
||||
2022/04/04 11:08:28 rdio-scanner.ini file created
|
||||
2022/04/06 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.
|
||||
|
||||
|
|
@ -133,12 +133,12 @@ Then simply run [Rdio Scanner](https://github.com/chuot/rdio-scanner) without an
|
|||
|
||||
C:\Users\rdio\rdio-scanner>rdio-scanner
|
||||
|
||||
Rdio Scanner v6.2.4
|
||||
Rdio Scanner v6.2.5
|
||||
----------------------------------
|
||||
2022/04/04 11:11:28 server started
|
||||
2022/04/04 11:11:28 main interface at http://pc-windows
|
||||
2022/04/04 11:11:28 main interface at https://pc-windows
|
||||
2022/04/04 11:11:28 admin interface at https://pc-windows/admin
|
||||
2022/04/06 11:11:28 server started
|
||||
2022/04/06 11:11:28 main interface at http://pc-windows
|
||||
2022/04/06 11:11:28 main interface at https://pc-windows
|
||||
2022/04/06 11:11:28 admin interface at https://pc-windows/admin
|
||||
|
||||
\pagebreak{}
|
||||
|
||||
|
|
|
|||
|
|
@ -45,8 +45,8 @@ The color is _green_ by default, but can be customized by the system or by the t
|
|||
\
|
||||
|
||||
| Button | Description |
|
||||
| -------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
|  | 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. |
|
||||
| ------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
|  | 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 **playback mode**. Disabling **LIVE FEED** will also stop any playing audio and will clear the listening queue. |
|
||||
|  | Temporarily maintain the current system in live feed mode. |
|
||||
|  | Temporarily maintain the current talkgroup in live feed mode. |
|
||||
|  | Replay the current audio from the beginning or the previous one if there is none active. |
|
||||
|
|
@ -54,7 +54,7 @@ The color is _green_ by default, but can be customized by the system or by the t
|
|||
|  | Activate and deactivate the talkgroup from the current or previous audio. |
|
||||
|  | Display the archived audio panel. |
|
||||
|  | Stop playing queue audio. Useful if you have to answer the phone without losing what's queued up for playing. |
|
||||
|  | 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. |
|
||||
|  | Display the systems/talkgroups selection panel where you decide which audio you want to listen to in _LIVE FEED_ mode, not in playback mode. |
|
||||
|
||||
## Select panel
|
||||
|
||||
|
|
@ -83,7 +83,7 @@ The first section concerns group selection. This section can be disabled from th
|
|||
This is much like the group section, but for each system. There is also just two states for each button:
|
||||
|
||||
| Button | State |
|
||||
| -------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
|
||||
| ------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
|
||||
|  | The talkgroup from this system is active. If you press it while it is active, it will make the talkgroup inactive. |
|
||||
|  | The talkgroup from this system is inactive. If you press it while it is inactive, it will make the talkgroup active. |
|
||||
|  | Make inactive every talkgroups from this system. |
|
||||
|
|
@ -100,16 +100,16 @@ This is much like the group section, but for each system. There is also just two
|
|||
This section presents the list of archived audio files stored in the database. Depending on the _LIVE FEED_ mode you are at, the replay function behaves differently:
|
||||
|
||||
| Mode | Function |
|
||||
| ---------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| --------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
|  | while **LIVE FEED** is active, press the **PLAY** button to play this audio file. If another audio file is playing, it will be stopped and the one you just selected will be played instead. After playback finishes, the listening queue will resume as normal. |
|
||||
|  | This is the **offline playback mode** which can be activated only if **LIVE FEED** is inactive. Press the **PLAY** button to play this audio file. After playback is finishes, the next audio file from in list is played. While the audio is playing, pressing the **STOP** button will cancel the offline playback mode. |
|
||||
|  | This is the **playback mode** which can be activated only if **LIVE FEED** is inactive. Press the **PLAY** button to play this audio file. After playback is finishes, the next audio file from in list is played. While the audio is playing, pressing the **STOP** button will cancel the playback mode. |
|
||||
|
||||
\pagebreak{}
|
||||
At the bottom left of this section is the toggle switch which allows you to toggle between play buttons and download buttons. The later ones allows you to download locally the audio file.
|
||||
|
||||
At the bottom right of this section is the _paginator_ to browse the whole database. This _paginator_ is disabled while in offline playback mode.
|
||||
At the bottom right of this section is the _paginator_ to browse the whole database. This _paginator_ is disabled while in playback mode.
|
||||
|
||||
> Note that offline playback mode always requires your web app to be online. It is called like that because it plays archived audio files from the database.
|
||||
> Note that playback mode always requires your web app to be online. It is called like that because it plays archived audio files from the database.
|
||||
|
||||
### Filters section
|
||||
|
||||
|
|
@ -119,6 +119,6 @@ This is the section where you filter the archived audio to a specific date, syst
|
|||
|
||||
There is also a small slider that changes the **PLAY** buttons to **DOWNLOAD** buttons. This allows you to download audio files individually regardless of the playback mode you use.
|
||||
|
||||
> Note that if you change any filter while in offline playback mode, it will deactivate it.
|
||||
> Note that if you change any filter while in playback mode, it will deactivate it.
|
||||
|
||||
\pagebreak{}
|
||||
|
|
@ -313,9 +313,8 @@ func (controller *Controller) IngestCall(call *Call) {
|
|||
|
||||
switch v := call.units.(type) {
|
||||
case *Units:
|
||||
populated = true
|
||||
if v != nil {
|
||||
system.Units.Merge(v)
|
||||
populated = system.Units.Merge(v)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,9 +10,9 @@ require (
|
|||
github.com/google/uuid v1.3.0
|
||||
github.com/gorilla/websocket v1.5.0
|
||||
github.com/kardianos/service v1.2.1
|
||||
golang.org/x/crypto v0.0.0-20220321153916-2c7772ba3064
|
||||
golang.org/x/crypto v0.0.0-20220331220935-ae2d96664a29
|
||||
gopkg.in/ini.v1 v1.66.4
|
||||
modernc.org/sqlite v1.15.4
|
||||
modernc.org/sqlite v1.16.0
|
||||
)
|
||||
|
||||
require (
|
||||
|
|
@ -21,8 +21,8 @@ require (
|
|||
github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0 // indirect
|
||||
github.com/stretchr/testify v1.7.0 // indirect
|
||||
golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3 // indirect
|
||||
golang.org/x/net v0.0.0-20220325170049-de3da57026de // indirect
|
||||
golang.org/x/sys v0.0.0-20220330033206-e17cdc41300f // indirect
|
||||
golang.org/x/net v0.0.0-20220403103023-749bd193bc2b // indirect
|
||||
golang.org/x/sys v0.0.0-20220405210540-1e041c57c461 // indirect
|
||||
golang.org/x/text v0.3.7 // indirect
|
||||
golang.org/x/tools v0.1.10 // indirect
|
||||
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect
|
||||
|
|
|
|||
|
|
@ -38,8 +38,8 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk
|
|||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
||||
golang.org/x/crypto v0.0.0-20220321153916-2c7772ba3064 h1:S25/rfnfsMVgORT4/J61MJ7rdyseOZOyvLIrZEZ7s6s=
|
||||
golang.org/x/crypto v0.0.0-20220321153916-2c7772ba3064/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
|
||||
golang.org/x/crypto v0.0.0-20220331220935-ae2d96664a29 h1:tkVvjkPTB7pnW3jnid7kNyAMPVWllTNOf/qKDze4p9o=
|
||||
golang.org/x/crypto v0.0.0-20220331220935-ae2d96664a29/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
|
||||
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||
golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3 h1:kQgndtyPBW/JIYERgdxfwMYh3AVStj88WQTlNDi2a+o=
|
||||
golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY=
|
||||
|
|
@ -49,8 +49,8 @@ golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwY
|
|||
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||
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-20220325170049-de3da57026de h1:pZB1TWnKi+o4bENlbzAgLrEbY4RMYmUIRobMcSmfeYc=
|
||||
golang.org/x/net v0.0.0-20220325170049-de3da57026de/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
|
||||
golang.org/x/net v0.0.0-20220403103023-749bd193bc2b h1:vI32FkLJNAWtGD4BwkThwEy6XS7ZLLMHkSkYfF8M0W0=
|
||||
golang.org/x/net v0.0.0-20220403103023-749bd193bc2b/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
|
||||
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-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
|
|
@ -68,8 +68,8 @@ golang.org/x/sys v0.0.0-20210902050250-f475640dd07b/go.mod h1:oPkhp1MJrh7nUepCBc
|
|||
golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220330033206-e17cdc41300f h1:rlezHXNlxYWvBCzNses9Dlc7nGFaNMJeqLolcmQSSZY=
|
||||
golang.org/x/sys v0.0.0-20220330033206-e17cdc41300f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220405210540-1e041c57c461 h1:kHVeDEnfKn3T238CvrUcz6KeEsFHVaKh4kMTt6Wsysg=
|
||||
golang.org/x/sys v0.0.0-20220405210540-1e041c57c461/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
|
|
@ -226,8 +226,8 @@ modernc.org/memory v1.0.7/go.mod h1:/0wo5ibyrQiaoUoH7f9D8dnglAmILJ5/cxZlRECf+Nw=
|
|||
modernc.org/opt v0.1.1/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0=
|
||||
modernc.org/opt v0.1.3 h1:3XOZf2yznlhC+ibLltsDGzABUGVx8J6pnFMS3E4dcq4=
|
||||
modernc.org/opt v0.1.3/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0=
|
||||
modernc.org/sqlite v1.15.4 h1:pr3EA3Rety3j1c/9pCyGAe5d3vjF6wQwusHdgGCjIqc=
|
||||
modernc.org/sqlite v1.15.4/go.mod h1:Jwe13ItpESZ+78K5WS6+AjXsUg+JvirsjN3iIDO4C8k=
|
||||
modernc.org/sqlite v1.16.0 h1:DdvOGaWN0y+X7t2L7RUD63gcwbVjYZjcBZnA68g44EI=
|
||||
modernc.org/sqlite v1.16.0/go.mod h1:Jwe13ItpESZ+78K5WS6+AjXsUg+JvirsjN3iIDO4C8k=
|
||||
modernc.org/strutil v1.1.1 h1:xv+J1BXY3Opl2ALrBwyfEikFAj8pmqcpnfmuwUwcozs=
|
||||
modernc.org/strutil v1.1.1/go.mod h1:DE+MQQ/hjKBZS2zNInV5hhcipt5rLPWkmpbGeW5mmdw=
|
||||
modernc.org/tcl v1.11.2 h1:mXpsx3AZqJt83uDiFu9UYQVBjNjaWKGCF1YDSlpCL6Y=
|
||||
|
|
|
|||
|
|
@ -60,21 +60,21 @@ func NewUnits() *Units {
|
|||
}
|
||||
}
|
||||
|
||||
func (units *Units) Add(id uint, label string) *Units {
|
||||
found := false
|
||||
func (units *Units) Add(id uint, label string) (*Units, bool) {
|
||||
added := true
|
||||
|
||||
for _, u := range units.List {
|
||||
if u.Id == id {
|
||||
found = true
|
||||
added = false
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
if !found {
|
||||
if added {
|
||||
units.List = append(units.List, &Unit{Id: id, Label: label})
|
||||
}
|
||||
|
||||
return units
|
||||
return units, added
|
||||
}
|
||||
|
||||
func (units *Units) FromMap(f []interface{}) {
|
||||
|
|
@ -93,13 +93,21 @@ func (units *Units) FromMap(f []interface{}) {
|
|||
}
|
||||
}
|
||||
|
||||
func (u *Units) Merge(units *Units) {
|
||||
func (u *Units) Merge(units *Units) bool {
|
||||
merged := false
|
||||
|
||||
if units != nil {
|
||||
u.mutex.Lock()
|
||||
defer u.mutex.Unlock()
|
||||
|
||||
for _, v := range units.List {
|
||||
u.Add(v.Id, v.Label)
|
||||
if _, added := u.Add(v.Id, v.Label); added {
|
||||
merged = added
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return merged
|
||||
}
|
||||
|
||||
func (units *Units) Read(db *Database, systemId uint) error {
|
||||
|
|
|
|||
|
|
@ -15,4 +15,4 @@
|
|||
|
||||
package main
|
||||
|
||||
const Version = "6.2.4"
|
||||
const Version = "6.2.5"
|
||||
|
|
|
|||
Loading…
Reference in a new issue