mirror of https://github.com/DJ2LS/FreeDATA.git
Merge branch 'develop' into ls-norm
commit
c1097c162b
|
|
@ -10,12 +10,12 @@ jobs:
|
|||
uses: actions/checkout@v5
|
||||
|
||||
- name: Set up Python 3.13
|
||||
uses: actions/setup-python@v5
|
||||
uses: actions/setup-python@v6
|
||||
with:
|
||||
python-version: "3.13"
|
||||
|
||||
- name: Install Node.js, NPM and Yarn
|
||||
uses: actions/setup-node@v4
|
||||
uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version: 24
|
||||
|
||||
|
|
@ -35,7 +35,7 @@ jobs:
|
|||
- name: Install Python dependencies
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install -r requirements.txt
|
||||
pip install .[nuitka]
|
||||
|
||||
- name: Build binaries
|
||||
working-directory: freedata_server
|
||||
|
|
@ -114,7 +114,7 @@ jobs:
|
|||
|
||||
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@v5
|
||||
with:
|
||||
name: 'FreeDATA-x86_64.AppImage'
|
||||
path: FreeDATA-x86_64.AppImage
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ jobs:
|
|||
|
||||
# Upload the image tarball as an artifact.
|
||||
- name: Upload Docker image artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@v5
|
||||
with:
|
||||
name: freedata-image
|
||||
path: freedata.tar
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ jobs:
|
|||
uses: actions/checkout@v5
|
||||
|
||||
- name: Set up Python 3.13
|
||||
uses: actions/setup-python@v5
|
||||
uses: actions/setup-python@v6
|
||||
with:
|
||||
python-version: "3.13"
|
||||
|
||||
|
|
@ -18,7 +18,7 @@ jobs:
|
|||
run: choco install nsis
|
||||
|
||||
- name: Install Node.js, NPM and Yarn
|
||||
uses: actions/setup-node@v4
|
||||
uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version: 24
|
||||
|
||||
|
|
@ -34,7 +34,7 @@ jobs:
|
|||
- name: Install Python dependencies
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install -r requirements.txt
|
||||
pip install .[nuitka]
|
||||
|
||||
- uses: robinraju/release-downloader@v1.12
|
||||
with:
|
||||
|
|
@ -92,7 +92,7 @@ jobs:
|
|||
run: ls -R
|
||||
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@v5
|
||||
with:
|
||||
name: 'FreeDATA-Installer'
|
||||
path: ./FreeDATA-Installer.exe
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ jobs:
|
|||
repository: DJ2LS/FreeDATA
|
||||
|
||||
- name: Install Node.js, NPM and Yarn
|
||||
uses: actions/setup-node@v4
|
||||
uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version: 24
|
||||
|
||||
|
|
@ -43,7 +43,7 @@ jobs:
|
|||
npm run build
|
||||
|
||||
- name: Set up Python 3.13
|
||||
uses: actions/setup-python@v5
|
||||
uses: actions/setup-python@v6
|
||||
with:
|
||||
python-version: "3.13"
|
||||
|
||||
|
|
@ -62,7 +62,7 @@ jobs:
|
|||
- name: Install Python dependencies
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install -r requirements.txt
|
||||
pip install .[nuitka]
|
||||
|
||||
- name: Add MacOS certs
|
||||
if: ${{startsWith(matrix.os, 'macos')}}
|
||||
|
|
@ -117,7 +117,7 @@ jobs:
|
|||
run: ls -R
|
||||
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@v5
|
||||
with:
|
||||
name: '${{ matrix.zip_name }}'
|
||||
path: ./freedata_server/server.dist/${{ matrix.zip_name }}.zip
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ jobs:
|
|||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v3
|
||||
uses: github/codeql-action/init@v4
|
||||
with:
|
||||
languages: ${{ matrix.language }}
|
||||
# If you wish to specify custom queries, you can do so here or in a config file.
|
||||
|
|
@ -56,7 +56,7 @@ jobs:
|
|||
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
||||
# If this step fails, then you should remove it and run the build manually (see below)
|
||||
- name: Autobuild
|
||||
uses: github/codeql-action/autobuild@v3
|
||||
uses: github/codeql-action/autobuild@v4
|
||||
|
||||
# ℹ️ Command-line programs to run using the OS shell.
|
||||
# 📚 https://git.io/JvXDl
|
||||
|
|
@ -70,4 +70,4 @@ jobs:
|
|||
# make release
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@v3
|
||||
uses: github/codeql-action/analyze@v4
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ jobs:
|
|||
steps:
|
||||
- uses: actions/checkout@v5
|
||||
- name: Install Node.js, NPM and Yarn
|
||||
uses: actions/setup-node@v4
|
||||
uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ jobs:
|
|||
- uses: actions/checkout@v5
|
||||
|
||||
- name: Set up Python ${{ matrix.python-version }}
|
||||
uses: actions/setup-python@v5
|
||||
uses: actions/setup-python@v6
|
||||
with:
|
||||
python-version: ${{ matrix.python-version }}
|
||||
|
||||
|
|
@ -42,7 +42,7 @@ jobs:
|
|||
- name: Install python packages
|
||||
shell: bash
|
||||
run: |
|
||||
pip3 install -r requirements.txt
|
||||
pip install .[test]
|
||||
|
||||
- name: run config tests
|
||||
shell: bash
|
||||
|
|
|
|||
|
|
@ -8,12 +8,12 @@ jobs:
|
|||
- uses: actions/checkout@v5
|
||||
|
||||
- name: Set up Python 3.13
|
||||
uses: actions/setup-python@v5
|
||||
uses: actions/setup-python@v6
|
||||
with:
|
||||
python-version: "3.13"
|
||||
|
||||
- name: Install Node.js, NPM and Yarn
|
||||
uses: actions/setup-node@v4
|
||||
uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version: 24
|
||||
|
||||
|
|
@ -24,8 +24,7 @@ jobs:
|
|||
- name: Install Python dependencies
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install -r requirements.txt
|
||||
pip install wheel
|
||||
pip install .[build]
|
||||
|
||||
- name: Build GUI
|
||||
working-directory: freedata_gui
|
||||
|
|
@ -35,7 +34,7 @@ jobs:
|
|||
|
||||
- name: Build package
|
||||
run: |
|
||||
python setup.py sdist bdist_wheel
|
||||
python -m build
|
||||
|
||||
- name: Publish to PyPI
|
||||
uses: pypa/gh-action-pypi-publish@v1.13.0
|
||||
|
|
|
|||
|
|
@ -35,3 +35,7 @@ venv_3.11/
|
|||
venv/
|
||||
test_venv/
|
||||
freedata_server/lib/codec2/codec2/
|
||||
|
||||
# `python -m build` artifacts
|
||||
/dist/
|
||||
/*.egg-info/
|
||||
|
|
|
|||
|
|
@ -40,8 +40,7 @@ ADD https://github.com/DJ2LS/FreeDATA.git#v0.16.10-alpha ./
|
|||
RUN python3 -m venv /app/FreeDATA/venv
|
||||
ENV PATH="/app/FreeDATA/venv/bin:$PATH"
|
||||
|
||||
RUN pip install --no-cache-dir --upgrade pip wheel && \
|
||||
pip install --no-cache-dir -r requirements.txt
|
||||
RUN pip install --no-cache-dir --upgrade pip .
|
||||
|
||||
WORKDIR /app/FreeDATA/freedata_server/lib
|
||||
|
||||
|
|
|
|||
|
|
@ -22,4 +22,4 @@ npm run build
|
|||
|
||||
```
|
||||
npm run lint
|
||||
```
|
||||
```
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
"bootstrap-vue-next": "^0.40.4",
|
||||
"chart.js": "^4.5.0",
|
||||
"chartjs-plugin-annotation": "^3.1.0",
|
||||
"core-js": "^3.45.1",
|
||||
"core-js": "^3.46.0",
|
||||
"d3": "^7.9.0",
|
||||
"dompurify": "^3.2.7",
|
||||
"gettext-parser": "^8.0.0",
|
||||
|
|
@ -33,11 +33,11 @@
|
|||
"vuemoji-picker": "^0.3.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.28.4",
|
||||
"@babel/eslint-parser": "^7.28.4",
|
||||
"@babel/core": "^7.28.5",
|
||||
"@babel/eslint-parser": "^7.28.5",
|
||||
"@eslint/js": "^9.35.0",
|
||||
"@vue/cli-service": "~5.0.9",
|
||||
"eslint": "^9.35.0",
|
||||
"eslint": "^9.39.0",
|
||||
"eslint-plugin-vue": "^10.4.0",
|
||||
"globals": "^16.4.0"
|
||||
}
|
||||
|
|
@ -83,21 +83,21 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@babel/core": {
|
||||
"version": "7.28.4",
|
||||
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.4.tgz",
|
||||
"integrity": "sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==",
|
||||
"version": "7.28.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.5.tgz",
|
||||
"integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/code-frame": "^7.27.1",
|
||||
"@babel/generator": "^7.28.3",
|
||||
"@babel/generator": "^7.28.5",
|
||||
"@babel/helper-compilation-targets": "^7.27.2",
|
||||
"@babel/helper-module-transforms": "^7.28.3",
|
||||
"@babel/helpers": "^7.28.4",
|
||||
"@babel/parser": "^7.28.4",
|
||||
"@babel/parser": "^7.28.5",
|
||||
"@babel/template": "^7.27.2",
|
||||
"@babel/traverse": "^7.28.4",
|
||||
"@babel/types": "^7.28.4",
|
||||
"@babel/traverse": "^7.28.5",
|
||||
"@babel/types": "^7.28.5",
|
||||
"@jridgewell/remapping": "^2.3.5",
|
||||
"convert-source-map": "^2.0.0",
|
||||
"debug": "^4.1.0",
|
||||
|
|
@ -114,9 +114,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@babel/eslint-parser": {
|
||||
"version": "7.28.4",
|
||||
"resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.28.4.tgz",
|
||||
"integrity": "sha512-Aa+yDiH87980jR6zvRfFuCR1+dLb00vBydhTL+zI992Rz/wQhSvuxjmOOuJOgO3XmakO6RykRGD2S1mq1AtgHA==",
|
||||
"version": "7.28.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.28.5.tgz",
|
||||
"integrity": "sha512-fcdRcWahONYo+JRnJg1/AekOacGvKx12Gu0qXJXFi2WBqQA1i7+O5PaxRB7kxE/Op94dExnCiiar6T09pvdHpA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
|
|
@ -133,14 +133,14 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@babel/generator": {
|
||||
"version": "7.28.3",
|
||||
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.3.tgz",
|
||||
"integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==",
|
||||
"version": "7.28.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.5.tgz",
|
||||
"integrity": "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/parser": "^7.28.3",
|
||||
"@babel/types": "^7.28.2",
|
||||
"@babel/parser": "^7.28.5",
|
||||
"@babel/types": "^7.28.5",
|
||||
"@jridgewell/gen-mapping": "^0.3.12",
|
||||
"@jridgewell/trace-mapping": "^0.3.28",
|
||||
"jsesc": "^3.0.2"
|
||||
|
|
@ -218,9 +218,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@babel/helper-validator-identifier": {
|
||||
"version": "7.27.1",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz",
|
||||
"integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==",
|
||||
"version": "7.28.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz",
|
||||
"integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
|
|
@ -251,12 +251,12 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@babel/parser": {
|
||||
"version": "7.28.4",
|
||||
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.4.tgz",
|
||||
"integrity": "sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==",
|
||||
"version": "7.28.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz",
|
||||
"integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/types": "^7.28.4"
|
||||
"@babel/types": "^7.28.5"
|
||||
},
|
||||
"bin": {
|
||||
"parser": "bin/babel-parser.js"
|
||||
|
|
@ -290,18 +290,18 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@babel/traverse": {
|
||||
"version": "7.28.4",
|
||||
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.4.tgz",
|
||||
"integrity": "sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==",
|
||||
"version": "7.28.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.5.tgz",
|
||||
"integrity": "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/code-frame": "^7.27.1",
|
||||
"@babel/generator": "^7.28.3",
|
||||
"@babel/generator": "^7.28.5",
|
||||
"@babel/helper-globals": "^7.28.0",
|
||||
"@babel/parser": "^7.28.4",
|
||||
"@babel/parser": "^7.28.5",
|
||||
"@babel/template": "^7.27.2",
|
||||
"@babel/types": "^7.28.4",
|
||||
"@babel/types": "^7.28.5",
|
||||
"debug": "^4.3.1"
|
||||
},
|
||||
"engines": {
|
||||
|
|
@ -309,13 +309,13 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@babel/types": {
|
||||
"version": "7.28.4",
|
||||
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.4.tgz",
|
||||
"integrity": "sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==",
|
||||
"version": "7.28.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz",
|
||||
"integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/helper-string-parser": "^7.27.1",
|
||||
"@babel/helper-validator-identifier": "^7.27.1"
|
||||
"@babel/helper-validator-identifier": "^7.28.5"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
|
|
@ -374,13 +374,13 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@eslint/config-array": {
|
||||
"version": "0.21.0",
|
||||
"resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.0.tgz",
|
||||
"integrity": "sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==",
|
||||
"version": "0.21.1",
|
||||
"resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.1.tgz",
|
||||
"integrity": "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"@eslint/object-schema": "^2.1.6",
|
||||
"@eslint/object-schema": "^2.1.7",
|
||||
"debug": "^4.3.1",
|
||||
"minimatch": "^3.1.2"
|
||||
},
|
||||
|
|
@ -389,22 +389,22 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@eslint/config-helpers": {
|
||||
"version": "0.4.0",
|
||||
"resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.0.tgz",
|
||||
"integrity": "sha512-WUFvV4WoIwW8Bv0KeKCIIEgdSiFOsulyN0xrMu+7z43q/hkOLXjvb5u7UC9jDxvRzcrbEmuZBX5yJZz1741jog==",
|
||||
"version": "0.4.2",
|
||||
"resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz",
|
||||
"integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"@eslint/core": "^0.16.0"
|
||||
"@eslint/core": "^0.17.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@eslint/core": {
|
||||
"version": "0.16.0",
|
||||
"resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.16.0.tgz",
|
||||
"integrity": "sha512-nmC8/totwobIiFcGkDza3GIKfAw1+hLiYVrh3I1nIomQ8PEr5cxg34jnkmGawul/ep52wGRAcyeDCNtWKSOj4Q==",
|
||||
"version": "0.17.0",
|
||||
"resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz",
|
||||
"integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
|
|
@ -452,9 +452,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@eslint/js": {
|
||||
"version": "9.37.0",
|
||||
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.37.0.tgz",
|
||||
"integrity": "sha512-jaS+NJ+hximswBG6pjNX0uEJZkrT0zwpVi3BA3vX22aFGjJjmgSTSmPpZCRKmoBL5VY/M6p0xsSJx7rk7sy5gg==",
|
||||
"version": "9.39.0",
|
||||
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.0.tgz",
|
||||
"integrity": "sha512-BIhe0sW91JGPiaF1mOuPy5v8NflqfjIcDNpC+LbW9f609WVRX1rArrhi6Z2ymvrAry9jw+5POTj4t2t62o8Bmw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
|
|
@ -465,9 +465,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@eslint/object-schema": {
|
||||
"version": "2.1.6",
|
||||
"resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz",
|
||||
"integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==",
|
||||
"version": "2.1.7",
|
||||
"resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz",
|
||||
"integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"engines": {
|
||||
|
|
@ -475,13 +475,13 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@eslint/plugin-kit": {
|
||||
"version": "0.4.0",
|
||||
"resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.0.tgz",
|
||||
"integrity": "sha512-sB5uyeq+dwCWyPi31B2gQlVlo+j5brPlWx4yZBrEaRo/nhdDE8Xke1gsGgtiBdaBTxuTkceLVuVt/pclrasb0A==",
|
||||
"version": "0.4.1",
|
||||
"resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz",
|
||||
"integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"@eslint/core": "^0.16.0",
|
||||
"@eslint/core": "^0.17.0",
|
||||
"levn": "^0.4.1"
|
||||
},
|
||||
"engines": {
|
||||
|
|
@ -2881,9 +2881,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/core-js": {
|
||||
"version": "3.45.1",
|
||||
"resolved": "https://registry.npmjs.org/core-js/-/core-js-3.45.1.tgz",
|
||||
"integrity": "sha512-L4NPsJlCfZsPeXukyzHFlg/i7IIVwHSItR0wg0FLNqYClJ4MQYTYLbC7EkjKYRLZF2iof2MUgN0EGy7MdQFChg==",
|
||||
"version": "3.46.0",
|
||||
"resolved": "https://registry.npmjs.org/core-js/-/core-js-3.46.0.tgz",
|
||||
"integrity": "sha512-vDMm9B0xnqqZ8uSBpZ8sNtRtOdmfShrvT6h2TuQGLs0Is+cR0DYbj/KWP6ALVNbWPpqA/qPLoOuppJN07humpA==",
|
||||
"hasInstallScript": true,
|
||||
"license": "MIT",
|
||||
"funding": {
|
||||
|
|
@ -4167,25 +4167,24 @@
|
|||
}
|
||||
},
|
||||
"node_modules/eslint": {
|
||||
"version": "9.37.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint/-/eslint-9.37.0.tgz",
|
||||
"integrity": "sha512-XyLmROnACWqSxiGYArdef1fItQd47weqB7iwtfr9JHwRrqIXZdcFMvvEcL9xHCmL0SNsOvF0c42lWyM1U5dgig==",
|
||||
"version": "9.39.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.0.tgz",
|
||||
"integrity": "sha512-iy2GE3MHrYTL5lrCtMZ0X1KLEKKUjmK0kzwcnefhR66txcEmXZD2YWgR5GNdcEwkNx3a0siYkSvl0vIC+Svjmg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@eslint-community/eslint-utils": "^4.8.0",
|
||||
"@eslint-community/regexpp": "^4.12.1",
|
||||
"@eslint/config-array": "^0.21.0",
|
||||
"@eslint/config-helpers": "^0.4.0",
|
||||
"@eslint/core": "^0.16.0",
|
||||
"@eslint/config-array": "^0.21.1",
|
||||
"@eslint/config-helpers": "^0.4.2",
|
||||
"@eslint/core": "^0.17.0",
|
||||
"@eslint/eslintrc": "^3.3.1",
|
||||
"@eslint/js": "9.37.0",
|
||||
"@eslint/plugin-kit": "^0.4.0",
|
||||
"@eslint/js": "9.39.0",
|
||||
"@eslint/plugin-kit": "^0.4.1",
|
||||
"@humanfs/node": "^0.16.6",
|
||||
"@humanwhocodes/module-importer": "^1.0.1",
|
||||
"@humanwhocodes/retry": "^0.4.2",
|
||||
"@types/estree": "^1.0.6",
|
||||
"@types/json-schema": "^7.0.15",
|
||||
"ajv": "^6.12.4",
|
||||
"chalk": "^4.0.0",
|
||||
"cross-spawn": "^7.0.6",
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@
|
|||
"bootstrap-vue-next": "^0.40.4",
|
||||
"chart.js": "^4.5.0",
|
||||
"chartjs-plugin-annotation": "^3.1.0",
|
||||
"core-js": "^3.45.1",
|
||||
"core-js": "^3.46.0",
|
||||
"d3": "^7.9.0",
|
||||
"dompurify": "^3.2.7",
|
||||
"gettext-parser": "^8.0.0",
|
||||
|
|
@ -49,11 +49,11 @@
|
|||
"vuemoji-picker": "^0.3.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.28.4",
|
||||
"@babel/eslint-parser": "^7.28.4",
|
||||
"@babel/core": "^7.28.5",
|
||||
"@babel/eslint-parser": "^7.28.5",
|
||||
"@eslint/js": "^9.35.0",
|
||||
"@vue/cli-service": "~5.0.9",
|
||||
"eslint": "^9.35.0",
|
||||
"eslint": "^9.39.0",
|
||||
"eslint-plugin-vue": "^10.4.0",
|
||||
"globals": "^16.4.0"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -32,7 +32,17 @@ function getDateTime(timestampRaw) {
|
|||
|
||||
function getMaidenheadDistance(dxGrid) {
|
||||
try {
|
||||
return parseInt(distance(settings.remote.STATION.mygrid, dxGrid));
|
||||
const distanceKm = parseInt(distance(settings.remote.STATION.mygrid, dxGrid));
|
||||
|
||||
if (settings.remote.GUI.distance_unit === "mi") {
|
||||
return Math.round(distanceKm * 0.621371)
|
||||
}
|
||||
|
||||
if (settings.remote.GUI.distance_unit === "nm") {
|
||||
return Math.round(distanceKm * 0.539957)
|
||||
}
|
||||
|
||||
return distanceKm;
|
||||
} catch (e) {
|
||||
//
|
||||
}
|
||||
|
|
@ -202,7 +212,7 @@ function transmitPing(callsign) {
|
|||
<td>
|
||||
<small>{{ item.gridsquare }}</small>
|
||||
</td>
|
||||
<td><small>{{ getMaidenheadDistance(item.gridsquare) }} km</small></td>
|
||||
<td><small>{{ getMaidenheadDistance(item.gridsquare) }} {{settings.remote.GUI.distance_unit}}</small></td>
|
||||
<td>
|
||||
<i
|
||||
:class="getActivityInfo(item.activity_type).iconClass"
|
||||
|
|
|
|||
|
|
@ -150,6 +150,37 @@
|
|||
</div>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<!-- Distance Unit Setting -->
|
||||
<div class="input-group input-group-sm mb-1">
|
||||
<span class="input-group-text w-50 text-wrap">
|
||||
{{ $t('settings.gui.distanceunit') }}
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-link p-0 ms-2"
|
||||
data-bs-toggle="tooltip"
|
||||
:title="$t('settings.gui.distanceunit_help')"
|
||||
>
|
||||
<i class="bi bi-question-circle" />
|
||||
</button>
|
||||
</span>
|
||||
<select
|
||||
id="distance_unit_selector"
|
||||
v-model="settings.remote.GUI.distance_unit"
|
||||
class="form-select form-select-sm w-50"
|
||||
@change="onChange"
|
||||
>
|
||||
<option value="km">
|
||||
{{ $t('settings.gui.distanceunitkilometers') }}
|
||||
</option>
|
||||
<option value="mi">
|
||||
{{ $t('settings.gui.distanceunitmiles') }}
|
||||
</option>
|
||||
<option value="nm">
|
||||
{{ $t('settings.gui.distanceunitnauticalmiles') }}
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
|
@ -171,6 +202,10 @@ function saveSettings() {
|
|||
|
||||
export default {
|
||||
data() {
|
||||
// Ensure distance_unit has a default value
|
||||
if (settings.remote.GUI.distance_unit !== "km" || settings.remote.GUI.distance_unit !== "mi") {
|
||||
settings.remote.GUI.distance_unit = "km";
|
||||
}
|
||||
return {
|
||||
availableLanguages, // imported from i18next configuration
|
||||
settings,
|
||||
|
|
|
|||
|
|
@ -211,7 +211,12 @@
|
|||
"selectlanguage": "Zvolte jazyk",
|
||||
"selectlanguage_help": "Nastaví preferovaný jazyk pro GUI",
|
||||
"waterfalltheme": "Téma vodopádu",
|
||||
"waterfalltheme_help": "Nastaví barevné téma pro vodopád"
|
||||
"waterfalltheme_help": "Nastaví barevné téma pro vodopád",
|
||||
"distanceunit": "Jednotka vzdálenosti",
|
||||
"distanceunit_help": "Vyberte preferovanou jednotku vzdálenosti",
|
||||
"distanceunitkilometers": "Kilometry",
|
||||
"distanceunitmiles": "Míle",
|
||||
"distanceunitnauticalmiles": "Námořní míle"
|
||||
},
|
||||
"station": {
|
||||
"introduction": "Nastavení stanice, volací značka, lokátor a základní chování.\n",
|
||||
|
|
|
|||
|
|
@ -254,7 +254,12 @@
|
|||
"colormode_help": "Farbmodus der GUI einstellen",
|
||||
"colormodelight": "hell",
|
||||
"colormodedark": "dunkel",
|
||||
"colormodeauto": "auto"
|
||||
"colormodeauto": "auto",
|
||||
"distanceunit": "Entfernungseinheit",
|
||||
"distanceunit_help": "Wählen Sie die bevorzugte Entfernungseinheit aus",
|
||||
"distanceunitkilometers": "Kilometer",
|
||||
"distanceunitmiles": "Meilen",
|
||||
"distanceunitnauticalmiles": "Nautische Meilen"
|
||||
},
|
||||
"station": {
|
||||
"introduction": "Stationsbezogene Einstellungen, wie das Ändern des Rufzeichens, des Standorts und des allgemeinen Verhaltens.",
|
||||
|
|
|
|||
|
|
@ -254,7 +254,12 @@
|
|||
"colormode_help": "Set the GUI color mode",
|
||||
"colormodelight": "light",
|
||||
"colormodedark": "dark",
|
||||
"colormodeauto": "auto"
|
||||
"colormodeauto": "auto",
|
||||
"distanceunit": "Distance Unit",
|
||||
"distanceunit_help": "Select the preferred distance unit",
|
||||
"distanceunitkilometers": "Kilometers",
|
||||
"distanceunitmiles": "Miles",
|
||||
"distanceunitnauticalmiles": "Nautical Miles"
|
||||
},
|
||||
"station": {
|
||||
"introduction": "Station related settings, like changing your callsign, location and general behaviour.",
|
||||
|
|
@ -373,8 +378,8 @@
|
|||
"hamlibrigctlddatabits": "Data bits",
|
||||
"hamlibrigctlddatabits_help": "Choose the number of data bits",
|
||||
"hamlibrigctldstopbits": "Stop bits",
|
||||
"hamlibrigctldstopbits_help": "Set the baud rate for serial communication",
|
||||
"hamlibrigctldhandshake": "Choose the number of stop bits",
|
||||
"hamlibrigctldstopbits_help": "Choose the number of stop bits",
|
||||
"hamlibrigctldhandshake": "Choose the handshake method",
|
||||
"hamlibrigctldhandshake_help": "Set the serial handshake method",
|
||||
"hamlibrigctldpttdeviceport": "PTT device port",
|
||||
"hamlibrigctldpttdeviceport_help": "Select the port used for PTT control",
|
||||
|
|
@ -384,7 +389,7 @@
|
|||
"hamlibrigctlddcd_help": "Select the Data Carrier Detect method",
|
||||
"hamlibrigctlddtr": "DTR",
|
||||
"hamlibrigctlddtr_help": "Set the DTR line state",
|
||||
"hamlibrigctldrts": "RTS",
|
||||
"hamlibrigctldrts": "RTS",
|
||||
"hamlibrigctldrts_help": "Set the RTS line state",
|
||||
"hamlibrigctldcommand": "Rigctld command",
|
||||
"hamlibrigctldcommand_help": "Auto-populated command based on settings",
|
||||
|
|
|
|||
|
|
@ -231,7 +231,12 @@
|
|||
"colormode_help": "Definisci il colore della GUI",
|
||||
"colormodelight": "light",
|
||||
"colormodedark": "dark",
|
||||
"colormodeauto": "auto"
|
||||
"colormodeauto": "auto",
|
||||
"distanceunit": "Unità di distanza",
|
||||
"distanceunit_help": "Seleziona l'unità di distanza preferita",
|
||||
"distanceunitkilometers": "Chilometri",
|
||||
"distanceunitmiles": "Miglia",
|
||||
"distanceunitnauticalmiles": "Miglia nautiche"
|
||||
},
|
||||
"station": {
|
||||
"introduction": "Configurazione relativa alla stazione, quale nominativo, localizzazione e comportamento generale.",
|
||||
|
|
|
|||
|
|
@ -0,0 +1,385 @@
|
|||
{
|
||||
"general": {
|
||||
"bytes": "Bytes",
|
||||
"size": "Grootte",
|
||||
"speed": "Snelheid",
|
||||
"statistics": "Statistieken",
|
||||
"duration": "Duur",
|
||||
"chart": "Grafiek",
|
||||
"dxcallsign": "dx roepnaam",
|
||||
"destination": "bestemming",
|
||||
"stop": "Stop",
|
||||
"modem": "Modem",
|
||||
"frequency": "frequentie"
|
||||
},
|
||||
"popups": {
|
||||
"startupfailed": "Modem opstarten mislukt - foutieve configuratie?",
|
||||
"connectedtoserver": "Verbonden met server",
|
||||
"cqreceived": "CQ ontvangen",
|
||||
"gridsquare": "Grid locator",
|
||||
"snr": "SNR",
|
||||
"qrvreceived": "QRV ontvangen",
|
||||
"pingreceived": "PING ontvangen",
|
||||
"pingackreceived": "PING ACK ontvangen",
|
||||
"newtransmissionwith": "Nieuwe verbinding met",
|
||||
"sessionid": "Sessie ID",
|
||||
"totalbytes": "Totaal bytes",
|
||||
"openingtransmissionwith": "Verbinding openen met",
|
||||
"ongoingtransmissionwith": "Lopende verbinding met",
|
||||
"transmittedbytes": "Verzonden bytes",
|
||||
"transmissionabortedwith": "Verbinding AFGEBROKEN met",
|
||||
"state": "Status",
|
||||
"transmissionendedwith": "Verbinding BEËINDIGD met",
|
||||
"bytesperminute": "Bytes per minuut",
|
||||
"transmissionfailedwith": "Verbinding MISLUKT met",
|
||||
"confirmingtransmissionwith": "Verbinding bevestigen met",
|
||||
"receivedbytes": "Ontvangen bytes",
|
||||
"adiflogheader": "ADIF",
|
||||
"adiflogtext1": "QSO met",
|
||||
"adiflogtext2": "toegevoegd aan het logboek.",
|
||||
"adiflogerror": "ADIF exportfout"
|
||||
},
|
||||
"navbar": {
|
||||
"frequency_help": "Wat is de frequentie, Kenneth?",
|
||||
"speedlevel_help": "Snelheidsniveau",
|
||||
"totalbytes_help": "Totaal aantal bytes van verbinding",
|
||||
"connectedstation_help": "Huidige of laatst verbonden station",
|
||||
"from": "van",
|
||||
"to": "naar",
|
||||
"pttstate_help": "PTT triggerstatus",
|
||||
"modemstate_help": "Modemstatus",
|
||||
"bytestransferred": "Bytes overgedragen",
|
||||
"modemcheck": "Gezondheidscontrole",
|
||||
"modemcheck_help": "Controleer FreeDATA status",
|
||||
"home": "Start",
|
||||
"home_help": "Start",
|
||||
"chat": "RF Chat",
|
||||
"chat_help": "RF Chat",
|
||||
"settings": "Instellingen",
|
||||
"settings_help": "Instellingen",
|
||||
"station": "Station",
|
||||
"station_help": "Stel stationsinformatie in"
|
||||
},
|
||||
"grid": {
|
||||
"frequencydescription": "Veelgebruikte frequenties staan hier vermeld, allemaal in USB. Klik gewoon op een item of voer handmatig een frequentie in het tekstvak in om uw radio af te stemmen als radiobesturing is ingeschakeld.",
|
||||
"frequencyselection": "Frequentieselectie",
|
||||
"savepreset": "Preset opslaan",
|
||||
"savepreset_help": "Bewaar de huidige grid indeling als een preset die kan worden hersteld met de herstel preset-knop",
|
||||
"restorepreset": "Preset herstellen",
|
||||
"restorepreset_help": "Herstel uw opgeslagen grid preset (wist het huidige grid)",
|
||||
"cleargrid": "Grid wissen",
|
||||
"cleargrid_help": "Verwijder alle items uit het grid",
|
||||
"gridedit": "grid bewerken",
|
||||
"managegridwidgets": "Grid widgets beheren",
|
||||
"gridwidgetsdescription": "Grid widgets stellen u in staat de weergave aan te passen. U kunt extra widgets toevoegen naar behoefte. U kunt de individuele widgets verplaatsen en de grootte ervan wijzigen!",
|
||||
"fillgrid": "Grid vullen met veelgebruikte widgets",
|
||||
"fillgridsmallscreen": "Grid vullen voor kleine schermen",
|
||||
"activity": "Activiteit",
|
||||
"audio": "Audio",
|
||||
"broadcasts": "Uitzendingen",
|
||||
"radiocontrol": "Radiobesturing/Status",
|
||||
"statistics": "Statistieken",
|
||||
"other": "Overige",
|
||||
"uploadpreset": "Preset uploaden",
|
||||
"uploadpreset_help": "Upload een preset bestand",
|
||||
"downloadpreset": "Preset downloaden",
|
||||
"downloadpreset_help": "Download preset bestand om te delen of op te slaan",
|
||||
"components": {
|
||||
"tune": "Afstemmen",
|
||||
"stop_help": "Sessie afbreken en transmissies stoppen",
|
||||
"transmissioncharts": "Transmissiegrafieken",
|
||||
"scatterdiagram": "Scatterdiagram",
|
||||
"onair": "on air",
|
||||
"ping": "Ping",
|
||||
"ping_help": "Stuur een ping verzoek naar een extern station",
|
||||
"newmessage_help": "Stuur een nieuw bericht naar een extern station",
|
||||
"startnewchat_help": "Start of ga door met een gesprek met een ander station",
|
||||
"heardstations": "Gehoorde stations",
|
||||
"time": "Tijd",
|
||||
"freq": "Freq",
|
||||
"dxcall": "DX roepnaam",
|
||||
"grid": "Grid",
|
||||
"dist": "Afst",
|
||||
"type": "Type",
|
||||
"snr": "SNR",
|
||||
"afk": "AFK?",
|
||||
"audio": "Audio",
|
||||
"broadcasts": "Uitzendingen",
|
||||
"transmitting": "Verzenden...",
|
||||
"pingstation": "PING Station",
|
||||
"sendingcq": "CQ verzenden...",
|
||||
"sendingping": "PING verzenden...",
|
||||
"callcq": "CQ roepen",
|
||||
"cqcqcq": "CQ CQ CQ",
|
||||
"cqcqcq_help": "Stuur een CQ naar de wereld",
|
||||
"togglebeacon": "beacon schakelen",
|
||||
"togglebeacon_help": "Schakel beacon-modus in/uit. Tijdens het zenden van een beacon kunt u ping-verzoeken ontvangen en een datakanaal openen. Als een datakanaal wordt geopend, pauzeert de beacon.",
|
||||
"enablebeacon": "Beacon inschakelen",
|
||||
"awayfromkey": "Afwezig",
|
||||
"radiocontrol": "Radiobesturing",
|
||||
"radiocontrolmode": "Modus",
|
||||
"powerpercent": "% Vermogen",
|
||||
"tuner": "Tuner",
|
||||
"activity": "Activiteit",
|
||||
"beacon": "Beacon",
|
||||
"active": "Actief",
|
||||
"inactive": "Inactief",
|
||||
"connected": "Verbonden",
|
||||
"disconnected": "Niet verbonden",
|
||||
"online": "Online",
|
||||
"offline": "Offline",
|
||||
"received": "ontvangen",
|
||||
"transmitted": "verzonden",
|
||||
"msgstatustransmitting": "verzenden",
|
||||
"msgstatustransmitted": "verzonden",
|
||||
"msgstatusfailed": "mislukt",
|
||||
"msgstatusqueued": "in wachtrij"
|
||||
}
|
||||
},
|
||||
"modals": {
|
||||
"close": "Sluiten",
|
||||
"options": "Opties",
|
||||
"savechanges": "Wijzigingen opslaan",
|
||||
"beaconhistogram": "Baken histogram",
|
||||
"furtheroptions": "Verdere opties",
|
||||
"deletechat": "Chat verwijderen",
|
||||
"startnewchat": "Start een nieuwe chat",
|
||||
"startnewchat2": "Start een nieuwe chat (voer eerst dx roepnaam in)",
|
||||
"newchatline1": "Voer bestemmings roepnaam in",
|
||||
"newchatline2": "Voer een eerste bericht in",
|
||||
"newchatline3": "Klik op START NIEUWE CHAT",
|
||||
"newchatline4": "Controleer het chat-tabblad aan de linkerkant voor berichten",
|
||||
"firstmessage": "Eerste bericht",
|
||||
"audiotuning": "Audio afstemming",
|
||||
"audiotuninginfo": "Pas audioniveaus aan. Waarde in dB. Standaardwaarde is 0",
|
||||
"testframe": "Testframe",
|
||||
"testframetransmit": "Verzenden (5s)",
|
||||
"audiotuningrxlevel": "RX niveau",
|
||||
"audiotuningtxlevel": "TX niveau",
|
||||
"audiotuningtransmitsine": "Sinusgolf verzenden",
|
||||
"audiotuningtransmitsine30s": "Verzenden (max 30s)",
|
||||
"systemcheck": "Systeemcontrole",
|
||||
"reloadgui": "GUI herladen",
|
||||
"network": "Netwerk",
|
||||
"remoteinfo": "Voor bediening op afstand, ga naar instellingen/modem en stel het server-IP in op 0.0.0.0",
|
||||
"apiurl": "API Url",
|
||||
"furthersettings": "Voor verdere instellingen ga naar instellingen/modem",
|
||||
"restartserveronproblem": "In het geval van ongebruikelijke problemen kunt u de interne modem handmatig herladen. Als het probleem aanhoudt, overweeg dan een serverherstart.",
|
||||
"manualmodemrestart": "Handmatige modemherstart",
|
||||
"manualmodemrestart_help": "Herstart de modem. Stel eerst uw audio- en radio-instellingen in!",
|
||||
"radiocontrol": "Radiobesturing",
|
||||
"radiocontrolinfo": "Dit is slechts een snelle instelling! Voor verdere opties, ga naar instellingen/radiobesturing",
|
||||
"rigcontrolmethod": "Radiobesturingsmethode",
|
||||
"rigcontrolmethoddisabled": "Uitgeschakeld (geen radiobesturing; gebruik met VOX)",
|
||||
"rigcontrolmethodserialptt": "Seriële PTT via DTR/RTS",
|
||||
"rigcontrolmethodrigctld": "Rigctld (externe Hamlib instantie)",
|
||||
"rigcontrolmethodrigctldbundle": "Rigctld (interne Hamlib)",
|
||||
"radioport": "Radiopoort",
|
||||
"testhamlib": "Test Hamlib",
|
||||
"systeminfo": "Systeeminformatie",
|
||||
"systeminfoalert": "Deel deze informatie bij het openen van een probleem",
|
||||
"apiinformation": "API informatie",
|
||||
"apiversion": "API versie",
|
||||
"modemversion": "Modemversie",
|
||||
"osinfo": "Besturingssysteeminformatie",
|
||||
"system": "Systeem",
|
||||
"node": "Node",
|
||||
"release": "Release",
|
||||
"version": "Versie",
|
||||
"machine": "Machine",
|
||||
"processor": "Processor",
|
||||
"pythoninformation": "Python informatie",
|
||||
"build": "Build",
|
||||
"compiler": "Compiler",
|
||||
"branch": "Branch",
|
||||
"implementation": "Implementatie",
|
||||
"revision": "Revisie"
|
||||
},
|
||||
"chat": {
|
||||
"startnewchat": "Start een nieuwe chat",
|
||||
"insertemoji": "Emoji invoegen",
|
||||
"entermessage_placeholder": "Bericht - Verzenden met [Enter]",
|
||||
"attempt": "poging",
|
||||
"utc": "UTC",
|
||||
"adif": "ADIF",
|
||||
"new": "nieuw",
|
||||
"selectChat": "Selecteer of maak een chat aan",
|
||||
"noConversations": "Nog geen gesprekken",
|
||||
"loadingMessages": "Berichten laden..."
|
||||
},
|
||||
"settings": {
|
||||
"enable": "Inschakelen",
|
||||
"default": "standaard",
|
||||
"reload": "Herladen",
|
||||
"tabstation": "Station",
|
||||
"tabgui": "GUI",
|
||||
"tabradiocontrol": "Radiobesturing",
|
||||
"tabmodem": "Modem",
|
||||
"tabchat": "Chat",
|
||||
"tabexperimental": "Exp",
|
||||
"tabweb": "Web",
|
||||
"tablinks": "Links",
|
||||
"gui": {
|
||||
"introduction": "GUI gerelateerde instellingen zoals het aanpassen van waterval thema, taal of browsergedrag.",
|
||||
"browserautolaunch": "Browser automatisch starten",
|
||||
"browserautolaunch_help": "Start browser naar GUI URL bij het opstarten van de server",
|
||||
"selectlanguage": "Taal selecteren",
|
||||
"selectlanguage_help": "Selecteer de voorkeurstaal voor de GUI",
|
||||
"waterfalltheme": "Waterval thema",
|
||||
"waterfalltheme_help": "Selecteer kleurenthema voor watervalweergave",
|
||||
"colormode": "Kleurmodus",
|
||||
"colormode_help": "Stel de GUI kleurmodus in",
|
||||
"colormodelight": "licht",
|
||||
"colormodedark": "donker",
|
||||
"colormodeauto": "automatisch",
|
||||
"distanceunit": "Afstandeenheid",
|
||||
"distanceunit_help": "Selecteer de voorkeurseenheid voor afstanden",
|
||||
"distanceunitkilometers": "Kilometers",
|
||||
"distanceunitmiles": "Mijlen",
|
||||
"distanceunitnauticalmiles": "Nautische Mijlen"
|
||||
},
|
||||
"station": {
|
||||
"introduction": "Station gerelateerde instellingen, zoals het wijzigen van uw roepnaam, locatie en algemeen gedrag.",
|
||||
"callsign": "Roepnaam",
|
||||
"callsign_help": "Voer een geldige roepnaam in (max 7 tekens, geen speciale tekens)",
|
||||
"callsign_placeholder": "Voer uw roepnaam in en sla deze op",
|
||||
"callsignssid": "Roepnaam SSID",
|
||||
"callsignssid_help": "Stel een SSID in voor dit station",
|
||||
"locator": "Grid-locator / Maidenhead",
|
||||
"locator_help": "Voer een grid-locator in (max 6 tekens; korter wordt willekeurig gemaakt)",
|
||||
"locator_error": "Voer een correcte grid-locator in, zoals JN12ea of JN12!",
|
||||
"locator_placeholder": "Uw grid-locator",
|
||||
"respondtocq": "Reageer op CQ oproepen met een QRV antwoord",
|
||||
"respondtocq_help": "QRV antwoord verzonden met willekeurige vertraging",
|
||||
"enablecallsignblacklist": "Roepnaam zwarte lijst inschakelen",
|
||||
"enablecallsignblacklist_help": "Negeer verzoeken van roepnamen op de zwarte lijst",
|
||||
"callsignblacklist": "Roepnaam zwarte lijst",
|
||||
"callsignblacklist_placeholder": "Lijst van roepnamen",
|
||||
"callsignblacklist_help": "Eén roepnaam per regel"
|
||||
},
|
||||
"chat": {
|
||||
"introduction": "Berichtgerelateerde instellingen, zoals het inschakelen van automatische berichtherhaling en het configureren van ADIF logboek verbinding.",
|
||||
"enablemessageautorepeat": "Automatische berichtherhaling inschakelen",
|
||||
"enablemessageautorepeat_help": "Bericht opnieuw verzenden bij baken",
|
||||
"enableadifloggingudp": "ADIF logging via UDP inschakelen",
|
||||
"enableadifloggingudp_help": "ADIF logging via UDP in plaats van TCP",
|
||||
"adifloggingudphost": "ADIF logging UDP host",
|
||||
"adifloggingudphost_help": "ADIF serverhost, bijv. 127.0.0.1",
|
||||
"adifloggingudphost_placeholder": "Voer ADIF serverhost in",
|
||||
"adifloggingudpport": "ADIF logging UDP poort",
|
||||
"adifloggingudpport_help": "ADIF-serverpoort, bijv. 2237",
|
||||
"adifloggingudpport_placeholder": "Voer ADIF-serverpoort in",
|
||||
"adifloggingwavelog": "Logging via Wavelog API inschakelen",
|
||||
"enableadifloggingwavelog_help": "Schakel ADIF logging via Wavelog in",
|
||||
"adifloggingwaveloghost": "Wavelog API host",
|
||||
"adifloggingwaveloghost_placeholder": "Voer host in",
|
||||
"adifloggingwaveloghost_help": "Wavelog API serverhost, bijv. 127.0.0.1",
|
||||
"adifloggingwavelogapi": "Wavelog API sleutel",
|
||||
"adifloggingwavelogapi_placeholder": "Voer API sleutel in",
|
||||
"adifloggingwavelogapi_help": "Voer Wavelog API sleutel in"
|
||||
},
|
||||
"modem": {
|
||||
"introduction": "Modem- en audiogerelateerde instellingen, inclusief het starten/stoppen van de modem, het configureren van audioapparaten en het aanpassen van audioniveaus.",
|
||||
"serverrestart_notification": "Instellingen in ROOD vereisen een serverherstart!",
|
||||
"restartserver": "Handmatige modembesturing",
|
||||
"restartserver_help": "Start of stop de modem. Zorg ervoor dat uw audio- en radio-instellingen eerst zijn geconfigureerd.",
|
||||
"modemport": "Modempoort",
|
||||
"modemport_help": "Stel de modempoort in. Een serverherstart is vereist",
|
||||
"modemhost": "Modemhost",
|
||||
"modemhost_help": "Stel het modemhostadres in. Een serverherstart is vereist",
|
||||
"audioinputdevice": "Audio invoerapparaat",
|
||||
"audioinputdevice_help": "Selecteer uw microfoon- of lijninvoerapparaat",
|
||||
"audiooutputdevice": "Audio uitvoerapparaat",
|
||||
"audiooutputdevice_help": "Selecteer uw luidspreker- of lijnuitvoerapparaat",
|
||||
"rxaudiolevel": "RX audioniveau",
|
||||
"rxaudiolevel_help": "Aanpassen om de ontvangst audioversterking in te stellen",
|
||||
"txaudiolevel": "TX audioniveau",
|
||||
"txaudiolevel_help": "Aanpassen om de zend audioversterking in te stellen",
|
||||
"txdelay": "TX vertraging in ms",
|
||||
"txdelay_help": "Vertraging voor het verzenden, in milliseconden",
|
||||
"maximumbandwidth": "Maximaal gebruikte bandbreedte",
|
||||
"maximumbandwidth_help": "Selecteer de maximale bandbreedte die de modem zal gebruiken",
|
||||
"enabletxautoadjust": "Automatisch TX audioniveau",
|
||||
"enablerxautoadjust": "Automatisch RX audioniveau",
|
||||
"enabletxautoadjust_help": "Stel TX audioniveau automatisch in op hoogst mogelijke waarde",
|
||||
"enablerxautoadjust_help": "Stel RX audioniveau automatisch in op hoogst mogelijke waarde"
|
||||
},
|
||||
"web": {
|
||||
"introduction": "Explorer gerelateerde instellingen, inclusief het inschakelen van Explorer publicatie en Explorer statistiekenpublicatie.",
|
||||
"description": "Publiceer informatie zoals uw frequentie of gehoorde stations naar https://explorer.freedata.app, zodat andere gebruikers de status van uw station kunnen zien. Het publiceren van statistieken is momenteel in ontwikkeling en kan defect zijn.",
|
||||
"enableexplorer": "Stationdetails publiceren",
|
||||
"enableexplorer_help": "Deel de status van uw station met de FreeDATA webservice",
|
||||
"enablestats": "Statistieken publiceren",
|
||||
"enablestats_help": "Deel de statistieken van uw station met de FreeDATA webservice"
|
||||
},
|
||||
"exp": {
|
||||
"introduction": "Waarschuwing: Deze functies kunnen onvolledig zijn. Ze zijn ALLEEN voor ervaren gebruikers!",
|
||||
"info": "Info: Geen functies gepubliceerd om te testen",
|
||||
"enableringbuffer": "Ringbuffer inschakelen",
|
||||
"enableringbuffer_help": "Schakel een experimentele ringbuffer in die efficiënter kan zijn op minder krachtige CPU's",
|
||||
"enablevhf": "VHF mode inschakelen -- alleen CQ voor nu --",
|
||||
"enablevhf_help": "Schakel experimentele VHF mode in voor testen en experimenteren"
|
||||
},
|
||||
"radio": {
|
||||
"introduction": "Radiobesturingsgerelateerde instellingen, inclusief het selecteren van uw radiobesturingsmethode en het configureren van specifieke instellingen.",
|
||||
"info": "Selecteer eerst radiobesturing.",
|
||||
"rigcontroltype": "Radiobesturing",
|
||||
"rigcontroltype_help": "Kies hoe de software uw radio bestuurt",
|
||||
"tabhamlib": "Hamlib",
|
||||
"tabserial": "Serieel",
|
||||
"tabflrig": "flrig",
|
||||
"serialpttcomport": "PTT COM poort",
|
||||
"serialpttcomport_help": "Selecteer de seriële poort die is aangesloten op uw radio voor PTT besturing",
|
||||
"serialpttcustomcomport": "PTT aangepaste COM poort",
|
||||
"serialpttcustomcomport_help": "Overschrijf de seriële poort van uw radio als deze niet hierboven wordt vermeld",
|
||||
"serialpttviadtr": "PTT via DTR",
|
||||
"serialpttviadtr_help": "Configureer DTR lijngedrag voor PTT besturing",
|
||||
"serialpttviarts": "PTT via RTS",
|
||||
"serialpttviarts_help": "Configureer RTS lijngedrag voor PTT besturing",
|
||||
"hamlibrigctldenablevfo": "Rigctld VFO parameter",
|
||||
"hamlibrigctldenablevfo_help": "Schakel VFO ondersteuning in rigctld in",
|
||||
"hamlibrigctldhost": "Rigctld IP",
|
||||
"hamlibrigctldhost_help": "Voer het IP adres van de rigctld server in",
|
||||
"hamlibrigctldhost_placeholder": "Voer Rigctld IP in",
|
||||
"hamlibrigctldport": "Rigctld poort",
|
||||
"hamlibrigctldport_help": "Voer het poortnummer van de rigctld server in",
|
||||
"hamlibrigctldport_placeholder": "Voer Rigctld poort in",
|
||||
"hamlibrigctldradiomodel": "Radiomodel",
|
||||
"hamlibrigctldradiomodel_help": "Selecteer uw radiomodel voor radiobesturing",
|
||||
"hamlibrigctldcomport": "Radio COM poort",
|
||||
"hamlibrigctldcomport_help": "Selecteer de seriële poort die is aangesloten op uw radio",
|
||||
"hamlibrigctldcustomcomport": "Radio aangepaste COM-poort",
|
||||
"hamlibrigctldcustomcomport_help": "Overschrijf de seriële poort van uw radio als deze niet hierboven wordt vermeld",
|
||||
"hamlibrigctldserialspeed": "Seriële snelheid",
|
||||
"hamlibrigctldserialspeed_help": "Stel de baudrate in voor seriële communicatie",
|
||||
"hamlibrigctlddatabits": "Databits",
|
||||
"hamlibrigctlddatabits_help": "Kies het aantal databits",
|
||||
"hamlibrigctldstopbits": "Stopbits",
|
||||
"hamlibrigctldstopbits_help": "Kies het aantal stopbits",
|
||||
"hamlibrigctldhandshake": "Kies de handshake methode",
|
||||
"hamlibrigctldhandshake_help": "Stel de seriële handshake methode in",
|
||||
"hamlibrigctldpttdeviceport": "PTT apparaatpoort",
|
||||
"hamlibrigctldpttdeviceport_help": "Selecteer de poort die wordt gebruikt voor PTT besturing",
|
||||
"hamlibrigctldptttype": "PTT type",
|
||||
"hamlibrigctldptttype_help": "Selecteer de methode voor PTT besturing",
|
||||
"hamlibrigctlddcd": "DCD",
|
||||
"hamlibrigctlddcd_help": "Selecteer de Data Carrier Detect methode",
|
||||
"hamlibrigctlddtr": "DTR",
|
||||
"hamlibrigctlddtr_help": "Stel de DTR lijnstatus in",
|
||||
"hamlibrigctldrts": "RTS",
|
||||
"hamlibrigctldrts_help": "Stel de RTS lijnstatus in",
|
||||
"hamlibrigctldcommand": "Rigctld commando",
|
||||
"hamlibrigctldcommand_help": "Automatisch ingevuld commando op basis van instellingen",
|
||||
"hamlibrigctldcommand_placeholder": "Automatisch ingevuld op basis van bovenstaande instellingen",
|
||||
"hamlibrigctldcustomarguments": "Rigctld aangepaste argumenten",
|
||||
"hamlibrigctldcustomarguments_help": "Extra argumenten voor rigctld (meestal niet nodig)",
|
||||
"hamlibrigctldcustomarguments_placeholder": "Optionele aangepaste argumenten",
|
||||
"hamlibrigctldpttmode": "PTT modus",
|
||||
"hamlibrigctldpttmode_help": "Stel de PTT modus in, voor sommige radio's is het niet standaard (TX)",
|
||||
"flrigport": "Flrig poort",
|
||||
"flrigport_help": "Stel de poort in waar de flrig server luistert (Standaard: 12345)",
|
||||
"flrighost": "Flrig host",
|
||||
"flrighost_help": "Stel het hostadres van de server in, meestal localhost of 127.0.0.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -228,7 +228,12 @@
|
|||
"colormode_help": "GUI-fargemodus",
|
||||
"colormodelight": "lys",
|
||||
"colormodedark": "mørk",
|
||||
"colormodeauto": "auto"
|
||||
"colormodeauto": "auto",
|
||||
"distanceunit": "Avstandsenhet",
|
||||
"distanceunit_help": "Velg foretrukket avstandsenhet",
|
||||
"distanceunitkilometers": "Kilometer",
|
||||
"distanceunitmiles": "Miles",
|
||||
"distanceunitnauticalmiles": "Nautiske miles"
|
||||
},
|
||||
"station": {
|
||||
"introduction": "Stasjonsrelaterte innstillinger, som å endre kallesignal, plassering og generell oppførsel.",
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ const defaultConfig = {
|
|||
serial_handshake: "",
|
||||
ptt_port: "",
|
||||
ptt_type: "",
|
||||
ptt_mode: "",
|
||||
ptt_mode: "",
|
||||
serial_dcd: "",
|
||||
serial_dtr: "",
|
||||
serial_rts: "",
|
||||
|
|
@ -92,6 +92,7 @@ const defaultConfig = {
|
|||
|
||||
GUI: {
|
||||
auto_run_browser: true,
|
||||
distance_unit: "km",
|
||||
},
|
||||
EXP: {
|
||||
enable_ring_buffer: false,
|
||||
|
|
|
|||
|
|
@ -72,6 +72,7 @@ adif_wavelog_api_key = API-KEY
|
|||
|
||||
[GUI]
|
||||
auto_run_browser = True
|
||||
distance_unit = km
|
||||
|
||||
[EXP]
|
||||
enable_ring_buffer = False
|
||||
|
|
|
|||
|
|
@ -86,6 +86,7 @@ class CONFIG:
|
|||
|
||||
'GUI': {
|
||||
'auto_run_browser': bool,
|
||||
'distance_unit': str,
|
||||
},
|
||||
'EXP': {
|
||||
'enable_ring_buffer': bool,
|
||||
|
|
|
|||
|
|
@ -132,7 +132,7 @@ def open_browser_after_delay(url, delay=2):
|
|||
webbrowser.open(url, new=0, autoraise=True)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
def main():
|
||||
host = ctx.config_manager.config.get('NETWORK', {}).get('modemaddress') or '0.0.0.0'
|
||||
port = int(ctx.config_manager.config.get('NETWORK', {}).get('modemport', 5000))
|
||||
|
||||
|
|
@ -150,3 +150,6 @@ if __name__ == "__main__":
|
|||
threading.Thread(target=open_browser_after_delay, args=(url, 2), daemon=True).start()
|
||||
|
||||
uvicorn.run(app, host=host, port=port, log_config=None, log_level="info")
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(main())
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ keywords = [
|
|||
"freedata",
|
||||
"codec2",
|
||||
]
|
||||
classifier = [
|
||||
classifiers = [
|
||||
# See https://pypi.org/classifiers/
|
||||
"Development Status :: 4 - Beta",
|
||||
"Environment :: Web Environment",
|
||||
|
|
@ -42,8 +42,7 @@ dependencies = [
|
|||
"chardet",
|
||||
"colorama",
|
||||
"ordered-set",
|
||||
"nuitka<=2.7.16",
|
||||
"pyinstaller",
|
||||
"sqlalchemy",
|
||||
"websocket-client",
|
||||
"fastapi[standard]",
|
||||
"uvicorn[standard]",
|
||||
|
|
@ -64,14 +63,34 @@ test = [
|
|||
"pytest-cov",
|
||||
"pytest-rerunfailures",
|
||||
"pick",
|
||||
"sqlalchemy",
|
||||
]
|
||||
dev = [
|
||||
"freedata[test]",
|
||||
"autopep8",
|
||||
"black",
|
||||
"isort",
|
||||
"pycodestyle",
|
||||
]
|
||||
build = [
|
||||
"build",
|
||||
"wheel",
|
||||
]
|
||||
nuitka = [
|
||||
"nuitka<=2.8.4",
|
||||
]
|
||||
|
||||
[tool.setuptools.packages.find]
|
||||
where = [ "." ]
|
||||
exclude = [
|
||||
"tools*",
|
||||
]
|
||||
|
||||
[tool.setuptools.package-data]
|
||||
freedata_server = [ "lib/**/*" ]
|
||||
freedata_gui = [ "dist/**/*" ]
|
||||
|
||||
[tool.setuptools.dynamic]
|
||||
version = { attr = "freedata_server.constants.MODEM_VERSION"}
|
||||
|
||||
[tool.pytest.ini_options]
|
||||
testpaths = [ "tests" ]
|
||||
|
|
|
|||
|
|
@ -8,9 +8,8 @@ requests
|
|||
chardet
|
||||
colorama
|
||||
ordered-set
|
||||
nuitka<=2.7.16
|
||||
pyinstaller
|
||||
websocket-client
|
||||
sqlalchemy
|
||||
fastapi[standard]
|
||||
uvicorn[standard]
|
||||
|
||||
|
|
@ -23,4 +22,8 @@ pytest
|
|||
pytest-cov
|
||||
pytest-rerunfailures
|
||||
pick
|
||||
sqlalchemy
|
||||
|
||||
# Build
|
||||
build
|
||||
wheel
|
||||
nuitka<=2.8.4
|
||||
|
|
|
|||
36
setup.py
36
setup.py
|
|
@ -1,36 +0,0 @@
|
|||
from setuptools import setup, find_packages
|
||||
import freedata_server.constants as constants
|
||||
# Reading requirements.txt for dependencies
|
||||
with open('requirements.txt') as f:
|
||||
required = f.read().splitlines()
|
||||
|
||||
with open("README.md", "r", encoding="utf-8") as fh:
|
||||
long_description = fh.read()
|
||||
|
||||
setup(
|
||||
name='freedata',
|
||||
version=constants.MODEM_VERSION,
|
||||
packages=find_packages(where='.'),
|
||||
package_dir={'': '.'},
|
||||
install_requires=required,
|
||||
python_requires='>=3.10',
|
||||
author='DJ2LS',
|
||||
author_email='dj2ls@proton.me',
|
||||
description='INFO: THIS PACKAGE IS NOT YET WORKING - PLEASE USE THE OFFICIAL SCRIPT BASED SETUP',
|
||||
long_description=long_description,
|
||||
long_description_content_type="text/markdown",
|
||||
url='https://github.com/DJ2LS/FreeDATA',
|
||||
license='GPL3.0',
|
||||
entry_points={
|
||||
'console_scripts': [
|
||||
'freedata=freedata_server.server:main', # Points to the main() function in server.py
|
||||
],
|
||||
},
|
||||
include_package_data=True, # Ensure non-python files are included if specified
|
||||
package_data={
|
||||
# Include all files under any directory within the 'freedata_server' package
|
||||
'freedata_server': ['lib/**/*'], # Recursive include for all files in 'lib' and its subdirectories
|
||||
'freedata_gui': ['dist/**/*'], # gui folder
|
||||
|
||||
},
|
||||
)
|
||||
Loading…
Reference in New Issue