Add more stats to embed
This commit is contained in:
parent
64bdd47aed
commit
adcae1cbc8
35
main.js
35
main.js
|
@ -96,22 +96,41 @@ function updateEnvValue(key, value) {
|
|||
|
||||
function createStatsEmbed(tokenData = {}) {
|
||||
const formatNumber = (num) => new Intl.NumberFormat().format(num);
|
||||
const formatPercentage = (num) => `${num.toFixed(2)}%`;
|
||||
|
||||
const marketCapFormatted = tokenData.marketCap ? `$${formatNumber(tokenData.marketCap)}` : 'N/A';
|
||||
const priceFormatted = tokenData.price ? `$${formatNumber(tokenData.price)}` : 'N/A';
|
||||
const liquidityFormatted = tokenData.liquidity ? `$${formatNumber(tokenData.liquidity)}` : 'N/A';
|
||||
const priceChangeFormatted = tokenData.priceChange ? `${formatNumber(tokenData.priceChange)}%` : 'N/A';
|
||||
const priceChange5mFormatted = tokenData.priceChange5m ? formatPercentage(tokenData.priceChange5m) : 'N/A';
|
||||
const priceChange1hrFormatted = tokenData.priceChange1hr ? formatPercentage(tokenData.priceChange1hr) : 'N/A';
|
||||
const priceChange24hrFormatted = tokenData.priceChange24hr ? formatPercentage(tokenData.priceChange24hr) : 'N/A';
|
||||
|
||||
const calculateDollarChange = (price, percentageChange) => {
|
||||
if (price && percentageChange) {
|
||||
const dollarChange = (parseFloat(percentageChange) / 100) * parseFloat(price);
|
||||
return `$${parseFloat(dollarChange).toFixed(8)}`;
|
||||
}
|
||||
return 'N/A';
|
||||
};
|
||||
|
||||
const dollarChange1hr = calculateDollarChange(tokenData.price, tokenData.priceChange1hr);
|
||||
const dollarChange24hr = calculateDollarChange(tokenData.price, tokenData.priceChange24hr);
|
||||
|
||||
const randomColor = Math.floor(Math.random() * 16777215).toString(16);
|
||||
|
||||
const embed = new EmbedBuilder()
|
||||
.setTitle(`${tokenData.name} $${tokenData.symbol} Token Stats`)
|
||||
.setURL(`https://dexscreener.com/solana/${currentToken}`)
|
||||
.setColor('#0099ff')
|
||||
.setColor(`#${randomColor}`)
|
||||
.setThumbnail(tokenData.imageUrl)
|
||||
.addFields(
|
||||
{ name: 'Market Cap', value: marketCapFormatted, inline: true },
|
||||
{ name: 'Price (USD)', value: `$${tokenData.price || 'N/A'}`, inline: true },
|
||||
{ name: 'Price (USD)', value: priceFormatted, inline: true },
|
||||
{ name: 'Liquidity (USD)', value: liquidityFormatted, inline: true },
|
||||
{ name: 'Status', value: tokenData.profitStatus ? 'Making Money 📈💰' : 'Losing Money 📉😡', inline: false },
|
||||
{ name: 'Price Change (5 Min)', value: priceChangeFormatted, inline: true }
|
||||
{ name: 'Price Change (5 M)', value: `${priceChange5mFormatted} (${calculateDollarChange(tokenData.price, tokenData.priceChange)})`, inline: true },
|
||||
{ name: 'Price Change (1 H)', value: `${priceChange1hrFormatted} (${dollarChange1hr})`, inline: true },
|
||||
{ name: 'Price Change (24 H)', value: `${priceChange24hrFormatted} (${dollarChange24hr})`, inline: true }
|
||||
);
|
||||
return embed;
|
||||
}
|
||||
|
@ -255,19 +274,25 @@ const checkStatusAndUpdateOBS = async () => {
|
|||
|
||||
const tokenData = {
|
||||
name: pair.baseToken.name,
|
||||
imageUrl: pair.info.imageUrl,
|
||||
symbol: pair.baseToken.symbol,
|
||||
marketCap: pair.fdv,
|
||||
price: pair.priceUsd,
|
||||
liquidity: pair.liquidity.usd,
|
||||
profitStatus: pair.priceChange.m5 > 0,
|
||||
priceChange: pair.priceChange.m5
|
||||
priceChange: pair.priceChange.m5,
|
||||
priceChange1hr: pair.priceChange.h1,
|
||||
priceChange24hr: pair.priceChange.h24
|
||||
};
|
||||
|
||||
obsVisibilityState.makingMoney = tokenData.profitStatus;
|
||||
|
||||
const priceFormatted = tokenData.price ? `$${parseFloat(tokenData.price).toFixed(8)}` : 'N/A';
|
||||
|
||||
console.log(`Price Change (Last 1 Hour): ${pair.priceChange.h1}%`);
|
||||
console.log(`Price Change (Last 5 Minutes): ${pair.priceChange.m5}%`);
|
||||
console.log(`Price Change (Last 24 Hours): ${pair.priceChange.h24}%`);
|
||||
|
||||
console.log('Making Money:', tokenData.profitStatus);
|
||||
|
||||
setSourceVisibility("TextGreen", tokenData.profitStatus);
|
||||
|
|
Loading…
Reference in New Issue