mirror of
https://github.com/DJ2LS/FreeDATA
synced 2024-05-14 08:04:33 +00:00
implemented auto response
This commit is contained in:
parent
e4642fc49d
commit
080b63191e
|
@ -100,7 +100,7 @@ function saveSettings() {
|
||||||
v-model="settings.enable_auto_retry"
|
v-model="settings.enable_auto_retry"
|
||||||
true-value="True"
|
true-value="True"
|
||||||
false-value="False"
|
false-value="False"
|
||||||
disabled
|
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</label>
|
</label>
|
||||||
|
|
|
@ -14,6 +14,10 @@ const chat = useChatStore(pinia);
|
||||||
import { useStateStore } from "../store/stateStore.js";
|
import { useStateStore } from "../store/stateStore.js";
|
||||||
const state = useStateStore(pinia);
|
const state = useStateStore(pinia);
|
||||||
|
|
||||||
|
import { useSettingsStore } from "../store/settingsStore.js";
|
||||||
|
const settings = useSettingsStore(pinia);
|
||||||
|
|
||||||
|
|
||||||
import { sendMessage, sendBroadcastChannel } from "./sock.js";
|
import { sendMessage, sendBroadcastChannel } from "./sock.js";
|
||||||
import { displayToast } from "./popupHandler.js";
|
import { displayToast } from "./popupHandler.js";
|
||||||
|
|
||||||
|
@ -760,10 +764,6 @@ let newChatObj: beaconDefaultObject = {
|
||||||
snr: obj["snr"], // adding the new field
|
snr: obj["snr"], // adding the new field
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
addObjToDatabase(newChatObj);
|
addObjToDatabase(newChatObj);
|
||||||
|
|
||||||
console.log(obj);
|
console.log(obj);
|
||||||
|
@ -788,6 +788,15 @@ let newChatObj: beaconDefaultObject = {
|
||||||
chat.sorted_beacon_list[dxcallsign].snr.push(snr);
|
chat.sorted_beacon_list[dxcallsign].snr.push(snr);
|
||||||
chat.sorted_beacon_list[dxcallsign].timestamp.push(timestamp);
|
chat.sorted_beacon_list[dxcallsign].timestamp.push(timestamp);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// check if auto retry enabled
|
||||||
|
console.log("-----------------------------------------")
|
||||||
|
console.log(settings.enable_auto_retry.toUpperCase())
|
||||||
|
if (settings.enable_auto_retry.toUpperCase() == "TRUE") {
|
||||||
|
checkForWaitingMessages(dxcallsign);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// function for handling a received message
|
// function for handling a received message
|
||||||
|
@ -927,4 +936,84 @@ console.log(data)
|
||||||
chat.selectedMessageObject = data
|
chat.selectedMessageObject = data
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function getFromDBByFilter(filter) {
|
||||||
|
/*
|
||||||
|
USAGE:
|
||||||
|
|
||||||
|
let filter = {
|
||||||
|
selector: {
|
||||||
|
dxcallsign: dxcall,
|
||||||
|
type: "transmit",
|
||||||
|
status: "failed",
|
||||||
|
//attempt: { $lt: parseInt(config.max_retry_attempts) }
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
getFromDBByFilter(filter)
|
||||||
|
.then(result => {
|
||||||
|
console.log(result)
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
console.log(err)
|
||||||
|
});
|
||||||
|
|
||||||
|
*/
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
console.log(filter);
|
||||||
|
|
||||||
|
db.createIndex({
|
||||||
|
index: {
|
||||||
|
fields: [{ dxcallsign: "asc" }, { type: "asc" }, { status: "asc" }, { timestamp: "asc" }],
|
||||||
|
},
|
||||||
|
})
|
||||||
|
.then(result => {
|
||||||
|
return db.find(filter);
|
||||||
|
})
|
||||||
|
.then(result => {
|
||||||
|
console.log(result);
|
||||||
|
resolve(result);
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
console.log(err);
|
||||||
|
reject(err);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
async function checkForWaitingMessages(dxcall) {
|
||||||
|
|
||||||
|
let filter = {
|
||||||
|
selector: {
|
||||||
|
dxcallsign: dxcall,
|
||||||
|
type: "transmit",
|
||||||
|
status: "failed",
|
||||||
|
//attempt: { $lt: parseInt(config.max_retry_attempts) }
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
getFromDBByFilter(filter)
|
||||||
|
.then(result => {
|
||||||
|
let message = "Found " + result.docs.length + " waiting messages for " + dxcall
|
||||||
|
console.log(message);
|
||||||
|
displayToast("info", "bi bi-info-circle", message, 5000);
|
||||||
|
|
||||||
|
// handle result
|
||||||
|
if (result.docs.length > 0) {
|
||||||
|
// only want to process the first available item object, then return
|
||||||
|
// this ensures, we are only sending one message at once
|
||||||
|
|
||||||
|
if (result.docs[0].attempt < config.max_retry_attempts) {
|
||||||
|
repeatMessageTransmission(result.docs[0].uuid)
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
console.log(err)
|
||||||
|
});
|
||||||
}
|
}
|
Loading…
Reference in a new issue