c7128ff516
1. Add GetAllPremiumIndex() to fetch all futures data in one call, used by GetTopPrices instead of per-symbol sequential calls. 2. Add ADMIN_CHAT_ID env check to /refresh command to restrict access to authorized users only. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
33 lines
993 B
Go
33 lines
993 B
Go
package commands
|
|
|
|
import (
|
|
"os"
|
|
"strconv"
|
|
|
|
"gopkg.in/telebot.v3"
|
|
"me.thuanle/bbot/internal/configs/key"
|
|
"me.thuanle/bbot/internal/data"
|
|
"me.thuanle/bbot/internal/services/controllers"
|
|
"me.thuanle/bbot/internal/services/tele/chat"
|
|
"me.thuanle/bbot/internal/services/tele/view"
|
|
)
|
|
|
|
func OnGetTopPrices(context telebot.Context) error {
|
|
sym, price, rate := controllers.GetTopPrices()
|
|
return chat.ReplyMessagePre(context, view.RenderOnGetTopPricesMessage(sym, price, rate))
|
|
}
|
|
|
|
func OnGetTopFundingFee(context telebot.Context) error {
|
|
fee, float64s, cds := controllers.GetTopFundingFee()
|
|
return chat.ReplyMessagePre(context, view.RenderOnGetTopFundingFeeMessage(fee, float64s, cds))
|
|
}
|
|
|
|
func OnRefreshPairCache(context telebot.Context) error {
|
|
adminID, _ := strconv.ParseInt(os.Getenv(key.AdminChatID), 10, 64)
|
|
if adminID != 0 && context.Sender().ID != adminID {
|
|
return nil
|
|
}
|
|
data.Market.RefreshTradingPairCache()
|
|
return chat.ReplyMessage(context, "Trading pair cache refreshed")
|
|
}
|