many changes

This commit is contained in:
2026-03-12 18:11:27 +03:00
parent c93caeb04f
commit 12c8ce99f0
13 changed files with 132 additions and 155 deletions

View File

@@ -2,7 +2,6 @@ package plugins
import (
"fmt"
"log"
"strconv"
"strings"
"time"
@@ -17,22 +16,22 @@ import (
func RegisterWaifus() *laniakea.Plugin[database.Context] {
p := laniakea.NewPlugin[database.Context]("Waifus")
p.AddCommand(p.NewCommand(myWaifu, "mywaifu"))
p.AddCommand(p.NewCommand(myWaifu, "моивайфу").SkipCommandAutoGen())
p.AddCommand(p.NewCommand(waifuList, "wlist"))
p.AddCommand(p.NewCommand(waifuList, "waifulist"))
p.AddCommand(p.NewCommand(waifuList, "влист").SkipCommandAutoGen())
p.AddCommand(p.NewCommand(waifuList, "вайфулист").SkipCommandAutoGen())
p.NewCommand(myWaifu, "mywaifu").SetDescription("Список твоих вайфу")
p.NewCommand(myWaifu, "моивайфу")
p.NewCommand(waifuList, "wlist").SetDescription("Список всех вайфу")
p.NewCommand(waifuList, "waifulist").SkipCommandAutoGen()
p.NewCommand(waifuList, "влист")
p.NewCommand(waifuList, "вайфулист")
p.AddPayload(p.NewCommand(myWaifu, "waifu.my"))
p.AddPayload(p.NewCommand(waifuList, "waifu.list"))
p.AddPayload(p.NewCommand(waifuSell, "waifu.sell"))
p.AddPayload(p.NewCommand(buyWaifu, "waifu.buy"))
p.AddPayload(p.NewCommand(waifuInfo, "waifu.info"))
p.AddPayload(p.NewCommand(waifuSearch, "waifu.search"))
p.NewPayload(myWaifu, "waifu.my")
p.NewPayload(waifuList, "waifu.list")
p.NewPayload(waifuSell, "waifu.sell")
p.NewPayload(buyWaifu, "waifu.buy")
p.NewPayload(waifuInfo, "waifu.info")
p.NewPayload(waifuSearch, "waifu.search")
p.AddPayload(p.NewCommand(waifuNotImplemented, "waifu.confirm_buy"))
p.AddPayload(p.NewCommand(waifuNotImplemented, "waifu.confirm_sell"))
p.NewPayload(waifuNotImplemented, "waifu.confirm_buy")
p.NewPayload(waifuNotImplemented, "waifu.confirm_sell")
return p
}
@@ -58,7 +57,7 @@ func myWaifu(ctx *laniakea.MsgContext, db *database.Context) {
"Список твоих вайфу:",
}
for _, w := range waifus {
s := fmt.Sprintf("*%s* из \"*%s*\" (%d☆, ID: %d)", w.Name, w.Fandom, w.Rarity, w.ID)
s := fmt.Sprintf("*%s* из \"*%s*\" \\(%d☆, ID: %d\\)", w.Name, w.Fandom, w.Rarity, w.ID)
out = append(out, s)
kb.AddCallbackButton(w.Name, "waifu.info", w.ID)
}
@@ -68,9 +67,9 @@ func myWaifu(ctx *laniakea.MsgContext, db *database.Context) {
kb.AddLine()
kb.AddCallbackButton("Все вайфу", "waifu.list")
if ctx.CallbackMsgId > 0 {
ctx.EditCallback(strings.Join(out, "\n"), kb)
ctx.EditCallbackMarkdown(strings.Join(out, "\n"), kb)
} else {
ctx.Keyboard(strings.Join(out, "\n"), kb)
ctx.KeyboardMarkdown(strings.Join(out, "\n"), kb)
}
}
@@ -91,7 +90,7 @@ func waifuList(ctx *laniakea.MsgContext, db *database.Context) {
} else {
owner = w.Owner.Name
}
out[i] = fmt.Sprintf("*%s* из \"*%s*\" (%d☆, ID: %d) Владелец: *%s*", w.Name, w.Fandom, w.Rarity, w.ID, owner)
out[i] = fmt.Sprintf("*%s* из \"*%s*\" \\(%d☆, ID: %d\\) Владелец: *%s*", w.Name, w.Fandom, w.Rarity, w.ID, owner)
kb.AddCallbackButton(w.Name, "waifu.info", w.ID)
}
kb.AddLine()
@@ -100,12 +99,12 @@ func waifuList(ctx *laniakea.MsgContext, db *database.Context) {
if ctx.CallbackMsgId > 0 {
if len(ctx.Msg.Photo) > 0 {
ctx.CallbackDelete()
ctx.Keyboard(strings.Join(out, "\n"), kb)
ctx.KeyboardMarkdown(strings.Join(out, "\n"), kb)
} else {
ctx.EditCallback(strings.Join(out, "\n"), kb)
ctx.EditCallbackMarkdown(strings.Join(out, "\n"), kb)
}
} else {
ctx.Keyboard(strings.Join(out, "\n"), kb)
ctx.KeyboardMarkdown(strings.Join(out, "\n"), kb)
}
}
@@ -174,8 +173,8 @@ func waifuInfo(ctx *laniakea.MsgContext, db *database.Context) {
out := []string{
fmt.Sprintf("*%s* из \"*%s*\"", waifu.Name, waifu.Fandom),
fmt.Sprintf("Редкость: %d☆", waifu.Rarity),
fmt.Sprintf("Бонус к деньгам: x%.2f", waifu.MoneyBonus.InexactFloat64()),
fmt.Sprintf("Бонус к опыту: x%.2f", waifu.ExpBonus.InexactFloat64()),
laniakea.EscapePunctuation(fmt.Sprintf("Бонус к деньгам: x%.2f", waifu.MoneyBonus.InexactFloat64())),
laniakea.EscapePunctuation(fmt.Sprintf("Бонус к опыту: x%.2f", waifu.ExpBonus.InexactFloat64())),
fmt.Sprintf("Рыночная стоимость: %s¥", utils.DecimalComma(&waifu.MarketPrice)),
}
kb := laniakea.NewInlineKeyboard(2)
@@ -191,10 +190,9 @@ func waifuInfo(ctx *laniakea.MsgContext, db *database.Context) {
kb.AddCallbackButton("Мои вайфу", "waifu.my")
if len(waifu.Image) > 0 {
ctx.CallbackDelete()
log.Println(waifu.Image)
ctx.AnswerPhotoKeyboard(waifu.Image, strings.Join(out, "\n"), kb)
ctx.AnswerPhotoKeyboardMarkdown(waifu.Image, strings.Join(out, "\n"), kb)
} else {
ctx.EditCallback(strings.Join(out, "\n"), kb)
ctx.EditCallbackMarkdown(strings.Join(out, "\n"), kb)
}
ctx.AnswerCbQuery()
}
@@ -209,7 +207,7 @@ func waifuSearch(ctx *laniakea.MsgContext, db *database.Context) {
kb := laniakea.NewInlineKeyboard(2).AddCallbackButton("Мои вайфу", "waifu.my").AddCallbackButton("Все вайфу", "waifu.list")
if time.Now().Before(user.WaifuSearchTime.Add(time.Hour * 4)) {
ctx.EditCallback("Вайфу можно искать раз в 4 часа.", kb)
ctx.EditCallback("Вайфу можно искать раз в 4 часа", kb)
return
}
@@ -220,13 +218,13 @@ func waifuSearch(ctx *laniakea.MsgContext, db *database.Context) {
return
}
if count == 0 {
ctx.EditCallback("Не осталось свободных вайфу... :(\nПопробуй позже или купи на рынке!", kb)
ctx.EditCallbackMarkdown("Не осталось свободных вайфу… :\\(\nПопробуй позже или купи на рынке\\!", kb)
return
}
rand := utils.RandRange(0, 100)
if 10 < rand && rand < 90 {
ctx.EditCallback("Ты ничего не нашел!", kb)
ctx.EditCallback("Ты ничего не нашёл\\!", kb)
return
}
@@ -245,7 +243,7 @@ func waifuSearch(ctx *laniakea.MsgContext, db *database.Context) {
}
if len(freeWaifus) == 0 {
ctx.EditCallback("Ты ничего не нашел!", kb)
ctx.EditCallback("Ты ничего не нашёл\\!", kb)
return
}
@@ -260,9 +258,9 @@ func waifuSearch(ctx *laniakea.MsgContext, db *database.Context) {
fmt.Sprintf("Рыночная стоимость: %s¥", utils.DecimalComma(&waifu.MarketPrice)),
}
if len(waifu.Image) > 0 {
ctx.AnswerPhoto(waifu.Image, strings.Join(out, "\n"))
ctx.AnswerPhotoMarkdown(waifu.Image, strings.Join(out, "\n"))
} else {
ctx.EditCallback(strings.Join(out, "\n"), kb)
ctx.EditCallbackMarkdown(strings.Join(out, "\n"), kb)
}
}