Compare commits
5 Commits
bc0fc23fb0
...
#17-lintin
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
911142a8aa | ||
| 0ff11589e9 | |||
| a2abe7e71d | |||
| b23a0768e3 | |||
| 27516a0a25 |
28
gitea/workflows/DRBv3_linting.yaml
Normal file
28
gitea/workflows/DRBv3_linting.yaml
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
name: Lint JavaScript/Node.js
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- "*"
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
lint-js:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout Code
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Set up Node.js
|
||||||
|
uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version: '22' # Use your preferred Node.js version
|
||||||
|
|
||||||
|
- name: Install Dependencies
|
||||||
|
run: npm install
|
||||||
|
|
||||||
|
- name: Lint JavaScript/Node.js
|
||||||
|
run: npm run lint
|
||||||
@@ -12,6 +12,7 @@
|
|||||||
"type": "module",
|
"type": "module",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@discordjs/voice": "^0.17.0",
|
"@discordjs/voice": "^0.17.0",
|
||||||
|
"axios": "^1.7.7",
|
||||||
"convert-units": "^2.3.4",
|
"convert-units": "^2.3.4",
|
||||||
"discord.js": "^14.15.3",
|
"discord.js": "^14.15.3",
|
||||||
"dotenv": "^16.4.5",
|
"dotenv": "^16.4.5",
|
||||||
|
|||||||
4
setup.sh
4
setup.sh
@@ -94,8 +94,8 @@ rm -rf /usr/lib/python3.11/EXTERNALLY-MANAGED
|
|||||||
|
|
||||||
# Getting the Python DAB
|
# Getting the Python DAB
|
||||||
echo "Installing PDAB and Dependencies"
|
echo "Installing PDAB and Dependencies"
|
||||||
git clone -b DRBv3 https://git.vpn.cusano.net/logan/Python-Discord-Audio-Bot.git ./discordAudioBot/pdab
|
git clone -b DRBv3 https://git.vpn.cusano.net/logan/Python-Discord-Audio-Bot.git ./pdab
|
||||||
pip3 install -r ./discordAudioBot/pdab/requirements.txt
|
pip3 install -r ./pdab/requirements.txt
|
||||||
|
|
||||||
# Create a systemd service file for the DRB Client
|
# Create a systemd service file for the DRB Client
|
||||||
echo "Adding DRB Node service..."
|
echo "Adding DRB Node service..."
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ let botCallback;
|
|||||||
export const initDiscordBotClient = (clientId, callback, runPDAB = true) => {
|
export const initDiscordBotClient = (clientId, callback, runPDAB = true) => {
|
||||||
botCallback = callback;
|
botCallback = callback;
|
||||||
|
|
||||||
if (runPDAB) launchProcess("python", [join(__dirname, "./pdab/main.py"), process.env.AUDIO_DEVICE_ID, clientId, port], false, false, join(__dirname, "./pdab"));
|
if (runPDAB) launchProcess("python", [join(__dirname, "../../pdab/main.py"), process.env.AUDIO_DEVICE_ID, clientId, port], false, false, join(__dirname, "../../pdab"));
|
||||||
pdabProcess = true; // TODO - Make this more dynamic
|
pdabProcess = true; // TODO - Make this more dynamic
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -11,6 +11,9 @@ dotenv.config();
|
|||||||
let currentSystem = undefined;
|
let currentSystem = undefined;
|
||||||
let crashDetectionInterval; // Variable to store the crash detection interval ID
|
let crashDetectionInterval; // Variable to store the crash detection interval ID
|
||||||
|
|
||||||
|
// Sleep utility to add delays between retries
|
||||||
|
const sleep = (ms) => new Promise(resolve => setTimeout(resolve, ms));
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks the health of the OP25 web portal by making an HTTP HEAD request.
|
* Checks the health of the OP25 web portal by making an HTTP HEAD request.
|
||||||
* If the portal does not respond or there is an issue, retries a specified number of times.
|
* If the portal does not respond or there is an issue, retries a specified number of times.
|
||||||
@@ -25,7 +28,7 @@ const checkServiceHealth = async () => {
|
|||||||
try {
|
try {
|
||||||
log.INFO("Checking OP25 web portal health...");
|
log.INFO("Checking OP25 web portal health...");
|
||||||
// Perform an HTTP HEAD request to the web portal with a 5-second timeout
|
// Perform an HTTP HEAD request to the web portal with a 5-second timeout
|
||||||
await axios.head('http://localhost:8081', { timeout: 5000 });
|
await axios({ method: "get", url: 'http://localhost:8081', timeout: 5000 });
|
||||||
log.INFO("Web portal is healthy.");
|
log.INFO("Web portal is healthy.");
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
if (error.code === 'ECONNABORTED') {
|
if (error.code === 'ECONNABORTED') {
|
||||||
@@ -40,10 +43,13 @@ const checkServiceHealth = async () => {
|
|||||||
|
|
||||||
// Retry mechanism
|
// Retry mechanism
|
||||||
const retryAttempts = 3;
|
const retryAttempts = 3;
|
||||||
|
const delayBetweenRetries = 3000; // 3 seconds delay
|
||||||
|
|
||||||
for (let i = 1; i <= retryAttempts; i++) {
|
for (let i = 1; i <= retryAttempts; i++) {
|
||||||
log.INFO(`Retrying to check web portal health... Attempt ${i}/${retryAttempts}`);
|
log.INFO(`Retrying to check web portal health... Attempt ${i}/${retryAttempts}`);
|
||||||
try {
|
try {
|
||||||
await axios.head('http://localhost:8081', { timeout: 5000 });
|
await sleep(delayBetweenRetries); // Add delay before retrying
|
||||||
|
await axios({ method: "get", url: 'http://localhost:8081', timeout: 5000 });
|
||||||
log.INFO("Web portal is healthy on retry.");
|
log.INFO("Web portal is healthy on retry.");
|
||||||
return;
|
return;
|
||||||
} catch (retryError) {
|
} catch (retryError) {
|
||||||
|
|||||||
Reference in New Issue
Block a user