mirror of
https://github.com/warengroup/eximiabots-radiox.git
synced 2024-11-10 05:00:18 +00:00
Update fetch function in Stations class
This commit is contained in:
parent
e229b91812
commit
7f791e0075
@ -17,7 +17,11 @@ module.exports = class Stations extends Array {
|
|||||||
if(list){
|
if(list){
|
||||||
this.length = 0;
|
this.length = 0;
|
||||||
list.forEach(station => {
|
list.forEach(station => {
|
||||||
this.push(station);
|
try {
|
||||||
|
this.push(station);
|
||||||
|
} catch (error) {
|
||||||
|
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
if(options.show){
|
if(options.show){
|
||||||
@ -27,6 +31,16 @@ module.exports = class Stations extends Array {
|
|||||||
});
|
});
|
||||||
console.log("\n");
|
console.log("\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
list.forEach(async station => {
|
||||||
|
try {
|
||||||
|
let stationTest = await fetch(station.stream[station.stream.default]);
|
||||||
|
if(stationTest.ok === true) return;
|
||||||
|
this.splice(this.indexOf(station),1);
|
||||||
|
} catch (error) {
|
||||||
|
this.splice(this.indexOf(station),1);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
this.logger('Stations', 'Successfully fetched list');
|
this.logger('Stations', 'Successfully fetched list');
|
||||||
@ -48,64 +62,65 @@ module.exports = class Stations extends Array {
|
|||||||
|
|
||||||
search(key) {
|
search(key) {
|
||||||
if (this === null) return false;
|
if (this === null) return false;
|
||||||
let foundStations = [];
|
|
||||||
if (!key) return false;
|
if (!key) return false;
|
||||||
if (key == "radio") return false;
|
|
||||||
|
|
||||||
this
|
let foundStations = [];
|
||||||
.filter(
|
if (key == "radio") return false;
|
||||||
x => x.name.toUpperCase().includes(key.toUpperCase()) || x === key
|
|
||||||
)
|
|
||||||
.forEach(x =>
|
|
||||||
foundStations.push({ station: x, name: x.name, probability: 100 })
|
|
||||||
);
|
|
||||||
|
|
||||||
if (key.startsWith("radio ")) key = key.slice(6);
|
|
||||||
const probabilityIncrement = 100 / key.split(" ").length / 2;
|
|
||||||
for (let i = 0; i < key.split(" ").length; i++) {
|
|
||||||
this
|
this
|
||||||
.filter(
|
.filter(
|
||||||
x => x.name.toUpperCase().includes(key.split(" ")[i].toUpperCase()) || x === key
|
x => x.name.toUpperCase().includes(key.toUpperCase()) || x === key
|
||||||
)
|
)
|
||||||
.forEach(x =>
|
.forEach(x =>
|
||||||
foundStations.push({ station: x, name: x.name, probability: probabilityIncrement })
|
foundStations.push({ station: x, name: x.name, probability: 100 })
|
||||||
);
|
);
|
||||||
}
|
|
||||||
if (foundStations.length === 0) return false;
|
|
||||||
for (let i = 0; i < foundStations.length; i++) {
|
|
||||||
for (let j = 0; j < foundStations.length; j++) {
|
|
||||||
if (foundStations[i] === foundStations[j] && i !== j) foundStations.splice(i, 1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for (let i = 0; i < foundStations.length; i++) {
|
|
||||||
if (foundStations[i].name.length > key.length) {
|
|
||||||
foundStations[i].probability -=
|
|
||||||
(foundStations[i].name.split(" ").length - key.split(" ").length) *
|
|
||||||
(probabilityIncrement * 0.5);
|
|
||||||
} else if (foundStations[i].name.length === key.length) {
|
|
||||||
foundStations[i].probability += probabilityIncrement * 0.9;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (let j = 0; j < key.split(" ").length; j++) {
|
if (key.startsWith("radio ")) key = key.slice(6);
|
||||||
if (!foundStations[i].name.toUpperCase().includes(key.toUpperCase().split(" ")[j])) {
|
const probabilityIncrement = 100 / key.split(" ").length / 2;
|
||||||
foundStations[i].probability -= probabilityIncrement * 0.5;
|
for (let i = 0; i < key.split(" ").length; i++) {
|
||||||
|
this
|
||||||
|
.filter(
|
||||||
|
x => x.name.toUpperCase().includes(key.split(" ")[i].toUpperCase()) || x === key
|
||||||
|
)
|
||||||
|
.forEach(x =>
|
||||||
|
foundStations.push({ station: x, name: x.name, probability: probabilityIncrement })
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if (foundStations.length === 0) return false;
|
||||||
|
for (let i = 0; i < foundStations.length; i++) {
|
||||||
|
for (let j = 0; j < foundStations.length; j++) {
|
||||||
|
if (foundStations[i] === foundStations[j] && i !== j) foundStations.splice(i, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
for (let i = 0; i < foundStations.length; i++) {
|
||||||
let highestProbabilityStation;
|
if (foundStations[i].name.length > key.length) {
|
||||||
for (let i = 0; i < foundStations.length; i++) {
|
foundStations[i].probability -=
|
||||||
if (
|
(foundStations[i].name.split(" ").length - key.split(" ").length) *
|
||||||
!highestProbabilityStation ||
|
(probabilityIncrement * 0.5);
|
||||||
highestProbabilityStation.probability < foundStations[i].probability
|
} else if (foundStations[i].name.length === key.length) {
|
||||||
)
|
foundStations[i].probability += probabilityIncrement * 0.9;
|
||||||
highestProbabilityStation = foundStations[i];
|
}
|
||||||
if (
|
|
||||||
highestProbabilityStation &&
|
for (let j = 0; j < key.split(" ").length; j++) {
|
||||||
highestProbabilityStation.probability === foundStations[i].probability
|
if (!foundStations[i].name.toUpperCase().includes(key.toUpperCase().split(" ")[j])) {
|
||||||
) {
|
foundStations[i].probability -= probabilityIncrement * 0.5;
|
||||||
highestProbabilityStation = foundStations[i].station;
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
let highestProbabilityStation;
|
||||||
return highestProbabilityStation;
|
for (let i = 0; i < foundStations.length; i++) {
|
||||||
|
if (
|
||||||
|
!highestProbabilityStation ||
|
||||||
|
highestProbabilityStation.probability < foundStations[i].probability
|
||||||
|
)
|
||||||
|
highestProbabilityStation = foundStations[i];
|
||||||
|
if (
|
||||||
|
highestProbabilityStation &&
|
||||||
|
highestProbabilityStation.probability === foundStations[i].probability
|
||||||
|
) {
|
||||||
|
highestProbabilityStation = foundStations[i].station;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return highestProbabilityStation;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user