52 lines
1.3 KiB
Go
52 lines
1.3 KiB
Go
package commands
|
|
|
|
import (
|
|
"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))
|
|
|
|
return nil
|
|
}
|
|
|
|
func OnTokenInfo(context telebot.Context) error {
|
|
text := strings.ToLower(context.Text())
|
|
|
|
return OnTokenInfoByToken(context, text)
|
|
}
|