package commands import ( "golang.org/x/text/language" "golang.org/x/text/message" "gopkg.in/telebot.v3" "me.thuanle/bbot/internal/configs/tele" "me.thuanle/bbot/internal/data" "me.thuanle/bbot/internal/helper/binancex" "me.thuanle/bbot/internal/services/tele/chat" "me.thuanle/bbot/internal/services/tele/view" "strings" ) func showStickerMode(context telebot.Context, token string) { token = strings.ToUpper(token) stickerIdx, ok := tele.Token2StickerIdxMap[token] if !ok { return } stickers, err := context.Bot().StickerSet(tele.StickerSet) if err == nil && stickers != nil { _ = context.Reply(&stickers.Stickers[stickerIdx]) } } func OnTokenInfoByToken(context telebot.Context, token string) error { symbols := binancex.Token2Symbols(token) if len(symbols) == 0 { return nil } showStickerMode(context, token) fp, fundRate, fundTime, ok := data.Market.GetFuturePrice(symbols[0]) marginRates := data.Market.GetMarginInterestRates() tokenInterestRate := marginRates[strings.ToUpper(token)] if !ok { return nil } sSymbol := binancex.Future2SpotSymbol(symbols[0]) sp, _ := data.Market.GetSpotPrice(sSymbol) _ = chat.ReplyMessage(context, view.RenderOnPriceMessage(symbols[0], sp, fp, fundRate, fundTime, tokenInterestRate)) if strings.ToUpper(token) == "ETH" { baseAmount := 14. basePrice := 2500.0 baseTotal := baseAmount * basePrice curTotal := baseAmount * sp mFmt := message.NewPrinter(language.AmericanEnglish) msg := mFmt.Sprintf( "🎉∑ Bắc Kiều Foy's USDT: %.0f\n"+ "🎊 Bắc Kiều Foy's lợi nhuận: %.0f", curTotal, curTotal-baseTotal, ) _ = chat.ReplyMessage(context, msg) } return nil } func OnTokenInfo(context telebot.Context) error { text := strings.ToLower(context.Text()) return OnTokenInfoByToken(context, text) }