Fix 1 day timer & handle failure
This commit is contained in:
parent
3b794d89ef
commit
cddc77e520
11
main.js
11
main.js
|
@ -38,26 +38,29 @@ async function fetchSolanaPrice() {
|
||||||
try {
|
try {
|
||||||
const fetch = (await import('node-fetch')).default;
|
const fetch = (await import('node-fetch')).default;
|
||||||
const response = await fetch(cryptocompareApiUrl);
|
const response = await fetch(cryptocompareApiUrl);
|
||||||
|
if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`);
|
||||||
const data = await response.json();
|
const data = await response.json();
|
||||||
return parseFloat(data.USD).toFixed(2);
|
return parseFloat(data.USD).toFixed(2);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Error fetching Solana price:', error);
|
console.error('Error fetching Solana price:', error);
|
||||||
|
setTimeout(fetchSolanaPriceAndUpdateHistory, 5 * 60 * 1000);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function pruneOldData() {
|
function pruneOldData() {
|
||||||
|
|
||||||
const sixHoursInMilliseconds = 6 * 60 * 60 * 1000;
|
const sixHoursInMilliseconds = 6 * 60 * 60 * 1000;
|
||||||
const oneDayInMilliseconds = 24 * 60 * 60 * 1000;
|
const oneDayInMilliseconds = 24 * 60 * 60 * 1000;
|
||||||
const cutoffTime6Hours = Date.now() - sixHoursInMilliseconds;
|
|
||||||
const cutoffTime1Day = Date.now() - oneDayInMilliseconds;
|
const cutoffTime1Day = Date.now() - oneDayInMilliseconds;
|
||||||
|
|
||||||
priceHistory.prices = priceHistory.prices.filter(pricePoint => pricePoint.time > cutoffTime1Day);
|
priceHistory.prices = priceHistory.prices.filter(pricePoint => pricePoint.time > cutoffTime1Day);
|
||||||
|
|
||||||
if (priceHistory.prices.length < 360) {
|
if (priceHistory.prices.length < (sixHoursInMilliseconds / (60 * 1000))) {
|
||||||
console.warn("Warning: Not enough data points for accurate 6-hour calculations.");
|
console.warn("Warning: Not enough data points for accurate 6-hour calculations.");
|
||||||
}
|
}
|
||||||
|
if (priceHistory.prices.length < (oneDayInMilliseconds / (60 * 1000))) {
|
||||||
|
console.warn("Warning: Not enough data points for accurate 1-day calculations.");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async function fetchSolanaPriceAndUpdateHistory() {
|
async function fetchSolanaPriceAndUpdateHistory() {
|
||||||
|
@ -121,6 +124,8 @@ function immediatePriceCheckAndAnnounce() {
|
||||||
const oneDayAgoPrice = parseFloat(findPriceAgo(1440).price);
|
const oneDayAgoPrice = parseFloat(findPriceAgo(1440).price);
|
||||||
oneDayChange.percent = ((latestPrice - oneDayAgoPrice) / oneDayAgoPrice) * 100;
|
oneDayChange.percent = ((latestPrice - oneDayAgoPrice) / oneDayAgoPrice) * 100;
|
||||||
oneDayChange.dollar = latestPrice - oneDayAgoPrice;
|
oneDayChange.dollar = latestPrice - oneDayAgoPrice;
|
||||||
|
} else {
|
||||||
|
console.log("Insufficient data for 1-day change calculation.");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (priceHistory.prices.length >= 360) {
|
if (priceHistory.prices.length >= 360) {
|
||||||
|
|
Loading…
Reference in New Issue