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

@@ -17,10 +17,10 @@ import (
func RegisterAdmin() *laniakea.Plugin[database.Context] {
p := laniakea.NewPlugin[database.Context]("Admin")
p.AddCommand(laniakea.NewCommand(uploadPhoto, "uploadPhoto").SkipCommandAutoGen())
p.AddCommand(laniakea.NewCommand(emojiId, "emojiId").SkipCommandAutoGen())
p.AddCommand(laniakea.NewCommand(execSql, "sql").SkipCommandAutoGen())
p.AddCommand(laniakea.NewCommand(test, "test").SkipCommandAutoGen())
p.NewCommand(uploadPhoto, "uploadPhoto").SkipCommandAutoGen()
p.NewCommand(emojiId, "emojiId").SkipCommandAutoGen()
p.NewCommand(execSql, "sql").SkipCommandAutoGen()
p.NewCommand(test, "test").SkipCommandAutoGen()
p.AddMiddleware(AdminMiddleware())
return p
@@ -75,7 +75,7 @@ func execSql(ctx *laniakea.MsgContext, db *database.Context) {
ctx.Error(err)
return
}
ctx.Answerf("`%s`", data)
ctx.AnswerfMarkdown("```json\n%s\n```", data)
}
func emojiId(ctx *laniakea.MsgContext, _ *database.Context) {

View File

@@ -13,8 +13,7 @@ import (
func RegisterAi() *laniakea.Plugin[database.Context] {
p := laniakea.NewPlugin[database.Context]("AI")
p.AddCommand(p.NewCommand(gptTest, "gpt").SkipCommandAutoGen())
//p.AddCommand(p.NewCommand(gptTest, "gpt2").SkipCommandAutoGen())
p.NewCommand(gptTest, "gpt").SkipCommandAutoGen()
return p
}

View File

@@ -9,8 +9,8 @@ import (
func RegisterProxy() *laniakea.Plugin[database.Context] {
p := laniakea.NewPlugin[database.Context]("Proxy")
p.AddCommand(laniakea.NewCommand(getH2Link, "h2link"))
p.AddCommand(laniakea.NewCommand(getProxy, "proxy"))
p.NewCommand(getH2Link, "h2link")
p.NewCommand(getProxy, "proxy")
return p
}

View File

@@ -17,22 +17,22 @@ import (
func RegisterEconomy(bot *laniakea.Bot[database.Context]) *laniakea.Plugin[database.Context] {
p := laniakea.NewPlugin[database.Context]("Economy")
p.AddCommand(p.NewCommand(profile, "profile"))
p.AddCommand(p.NewCommand(profile, "профиль").SkipCommandAutoGen())
p.AddCommand(p.NewCommand(work, "work"))
p.AddCommand(p.NewCommand(work, "работать").SkipCommandAutoGen())
p.AddCommand(p.NewCommand(collect, "collect"))
p.AddCommand(p.NewCommand(collect, "собрать").SkipCommandAutoGen())
p.AddCommand(p.NewCommand(code, "code"))
p.AddCommand(p.NewCommand(code, "код").SkipCommandAutoGen())
p.NewCommand(profile, "profile")
p.NewCommand(profile, "профиль")
p.NewCommand(work, "work")
p.NewCommand(work, "работать")
p.NewCommand(collect, "collect")
p.NewCommand(collect, "собрать")
p.NewCommand(code, "code")
p.NewCommand(code, "код")
p.AddCommand(p.NewCommand(vacancies, "vacancies"))
p.AddCommand(p.NewCommand(vacancies, "вакансии").SkipCommandAutoGen())
p.AddCommand(p.NewCommand(getAJob, "getajob"))
p.AddCommand(p.NewCommand(getAJob, "устроиться").SkipCommandAutoGen())
p.NewCommand(vacancies, "vacancies")
p.NewCommand(vacancies, "вакансии")
p.NewCommand(getAJob, "getajob")
p.NewCommand(getAJob, "устроиться")
p.AddCommand(p.NewCommand(aboutGroup, "group"))
p.AddCommand(p.NewCommand(aboutGroup, "о группе").SkipCommandAutoGen())
p.NewCommand(aboutGroup, "group")
p.NewCommand(aboutGroup, "о группе")
bot.AddRunner(*laniakea.NewRunner[database.Context](
"economy.PassiveIncome", passiveIncome,

View File

@@ -9,8 +9,8 @@ import (
func RegisterFun() *laniakea.Plugin[database.Context] {
p := laniakea.NewPlugin[database.Context]("Fun")
p.AddCommand(p.NewCommand(beautyFont, "bf"))
p.AddCommand(p.NewCommand(beautyFontHeart, "bfh"))
p.NewCommand(beautyFont, "bf")
p.NewCommand(beautyFontHeart, "bfh")
return p
}

View File

@@ -17,8 +17,8 @@ import (
func RegisterLogs() *laniakea.Plugin[database.Context] {
p := laniakea.NewPlugin[database.Context]("Logs")
p.AddCommand(p.NewCommand(getLogs, "logs").SkipCommandAutoGen())
p.AddCommand(p.NewCommand(getMsgLogs, "msglogs").SkipCommandAutoGen())
p.NewCommand(getLogs, "logs").SkipCommandAutoGen()
p.NewCommand(getMsgLogs, "msglogs").SkipCommandAutoGen()
p.AddMiddleware(AdminMiddleware())
return p
}

View File

@@ -26,34 +26,35 @@ import (
func RegisterRP() *laniakea.Plugin[database.Context] {
rp := laniakea.NewPlugin[database.Context]("RP")
rp.AddCommand(rp.NewCommand(rpUserPromptSet, "rpuserpset"))
rp.AddCommand(rp.NewCommand(rpInfo, "rp").SetDescription("РП профиль пользователя"))
rp.AddCommand(rp.NewCommand(rpInfo, "рп").SkipCommandAutoGen())
rp.AddPayload(rp.NewCommand(rpInfo, "rp.info"))
rp.AddPayload(rp.NewCommand(rpWaifuList, "rp.waifu_list"))
rp.AddPayload(rp.NewCommand(rpWaifuSet, "rp.waifu_set"))
rp.AddPayload(rp.NewCommand(rpPresetsList, "rp.preset_list"))
rp.AddPayload(rp.NewCommand(rpPresetSet, "rp.preset_set"))
rp.AddPayload(rp.NewCommand(rpModelList, "rp.model_list"))
rp.AddPayload(rp.NewCommand(rpModelSet, "rp.model_set"))
rp.AddPayload(rp.NewCommand(rpScenarioList, "rp.scenario_list"))
rp.AddPayload(rp.NewCommand(rpSettingList, "rp.setting_list"))
rp.AddPayload(rp.NewCommand(chatStat, "rp.chat_stat"))
rp.AddPayload(rp.NewCommand(newChatStage1, "rp.new_chat_s1"))
rp.AddPayload(rp.NewCommand(newChatStage2, "rp.new_chat_s2"))
rp.AddPayload(rp.NewCommand(newChat, "rp.new_chat"))
rp.AddCommand(rp.NewCommand(
rp.NewCommand(rpUserPromptSet, "rpuserpset")
rp.NewCommand(rpInfo, "rp").SetDescription("РП профиль пользователя")
rp.NewCommand(rpInfo, "рп")
rp.NewPayload(rpInfo, "rp.info")
rp.NewPayload(rpWaifuList, "rp.waifu_list")
rp.NewPayload(rpWaifuSet, "rp.waifu_set")
rp.NewPayload(rpPresetsList, "rp.preset_list")
rp.NewPayload(rpPresetSet, "rp.preset_set")
rp.NewPayload(rpModelList, "rp.model_list")
rp.NewPayload(rpModelSet, "rp.model_set")
rp.NewPayload(rpScenarioList, "rp.scenario_list")
rp.NewPayload(rpSettingList, "rp.setting_list")
rp.NewPayload(chatStat, "rp.chat_stat")
rp.NewPayload(newChatStage1, "rp.new_chat_s1")
rp.NewPayload(newChatStage2, "rp.new_chat_s2")
rp.NewPayload(newChat, "rp.new_chat")
rp.NewCommand(
generate, "g",
*laniakea.NewCommandArg("prompt", laniakea.CommandValueAnyType),
).SetDescription("Генерация РП"))
rp.AddCommand(rp.NewCommand(generate, "gen").SkipCommandAutoGen())
rp.AddCommand(rp.NewCommand(generate, "г").SkipCommandAutoGen())
rp.AddPayload(rp.NewCommand(compress, "rp.compress_chat"))
rp.AddPayload(rp.NewCommand(regenerateResponse, "rp.regenerate"))
).SetDescription("Генерация РП")
rp.NewCommand(generate, "gen").SkipCommandAutoGen()
rp.NewCommand(generate, "г").SkipCommandAutoGen()
rp.NewPayload(compress, "rp.compress_chat")
rp.NewPayload(regenerateResponse, "rp.regenerate")
rp.AddPayload(rp.NewCommand(compressSettingStage1, "rp.compress_setting_s1"))
rp.AddPayload(rp.NewCommand(compressSettingStage2, "rp.compress_setting_s2"))
rp.AddPayload(rp.NewCommand(compressSetting, "rp.compress_setting"))
rp.NewPayload(compressSettingStage1, "rp.compress_setting_s1")
rp.NewPayload(compressSettingStage2, "rp.compress_setting_s2")
rp.NewPayload(compressSetting, "rp.compress_setting")
return rp
}
@@ -171,14 +172,14 @@ func rpWaifuList(ctx *laniakea.MsgContext, db *database.Context) {
owner = waifu.Owner.Name
}
out[i] = fmt.Sprintf(
"*%s* %d\\* из \"%s\" (владелец: %s)",
"*%s* %d из \"%s\" (владелец: %s)",
waifu.Name, waifu.Rarity, waifu.Fandom, owner,
)
kb.AddCallbackButton(waifu.Name, "rp.waifu_set", waifu.ID)
}
kb.AddLine()
kb.AddCallbackButtonStyle("На главную", laniakea.ButtonStyleDanger, "rp.info")
ctx.EditCallback(strings.Join(out, "\n"), kb)
ctx.EditCallbackMarkdown(strings.Join(out, "\n"), kb)
ctx.AnswerCbQuery()
}
func rpWaifuSet(ctx *laniakea.MsgContext, db *database.Context) {
@@ -202,7 +203,7 @@ func rpWaifuSet(ctx *laniakea.MsgContext, db *database.Context) {
kb := laniakea.NewInlineKeyboard(1)
kb.AddCallbackButtonStyle("На главную", laniakea.ButtonStyleSuccess, "rp.info")
ctx.EditCallbackf("Была выбрана вайфу %s", kb, waifu.Name)
ctx.EditCallbackfMarkdown("Была выбрана вайфу *%s*", kb, waifu.Name)
ctx.AnswerCbQuery()
}
@@ -217,7 +218,7 @@ func rpPresetsList(ctx *laniakea.MsgContext, db *database.Context) {
kb := laniakea.NewInlineKeyboard(2)
for i, preset := range presets {
out[i] = fmt.Sprintf(
"*%s* - %s",
"*%s* \\- %s",
laniakea.EscapeMarkdownV2(preset.Name), preset.Description,
)
kb.AddCallbackButton(preset.Name, "rp.preset_set", preset.ID)
@@ -265,12 +266,12 @@ func rpModelList(ctx *laniakea.MsgContext, db *database.Context) {
out := make([]string, len(models))
kb := laniakea.NewInlineKeyboard(2)
for i, model := range models {
out[i] = fmt.Sprintf("*%s* - размер контекста _%dK_", model.Name, model.ContextSize)
out[i] = fmt.Sprintf("*%s* \\- размер контекста _%dK_", laniakea.EscapeMarkdownV2(model.Name), model.ContextSize)
kb.AddCallbackButton(model.Name, "rp.model_set", model.ID)
}
kb.AddLine()
kb.AddCallbackButtonStyle("Назад", laniakea.ButtonStyleDanger, "rp.info")
ctx.EditCallbackMarkdown(laniakea.EscapePunctuation(strings.Join(out, "\n")), kb)
ctx.EditCallbackMarkdown(strings.Join(out, "\n"), kb)
ctx.AnswerCbQuery()
}
func rpModelSet(ctx *laniakea.MsgContext, db *database.Context) {
@@ -308,10 +309,10 @@ func rpScenarioList(ctx *laniakea.MsgContext, db *database.Context) {
out := make([]string, len(scenarios))
kb := laniakea.NewInlineKeyboard(1)
for i, scenario := range scenarios {
out[i] = fmt.Sprintf("*%s* - %s\n", scenario.Name, scenario.Description)
out[i] = fmt.Sprintf("*%s* \\- %s\n", scenario.Name, scenario.Description)
}
kb.AddCallbackButtonStyle("На главную", laniakea.ButtonStyleDanger, "rp.info")
ctx.EditCallbackMarkdown("Список сценариев\n"+laniakea.EscapePunctuation(strings.Join(out, "\n")), kb)
ctx.EditCallbackMarkdown("Список сценариев\n"+strings.Join(out, "\n"), kb)
ctx.AnswerCbQuery()
}
func rpSettingList(ctx *laniakea.MsgContext, db *database.Context) {
@@ -324,11 +325,11 @@ func rpSettingList(ctx *laniakea.MsgContext, db *database.Context) {
out := make([]string, len(settings))
for i, setting := range settings {
out[i] = fmt.Sprintf("*%s* - %s\n", setting.Name, setting.Description)
out[i] = fmt.Sprintf("*%s* \\- %s\n", setting.Name, setting.Description)
}
kb := laniakea.NewInlineKeyboard(1)
kb.AddCallbackButtonStyle("На главную", laniakea.ButtonStyleSuccess, "rp.info")
ctx.EditCallbackMarkdown(laniakea.EscapePunctuation(strings.Join(out, "\n")), kb)
ctx.EditCallbackMarkdown(strings.Join(out, "\n"), kb)
ctx.AnswerCbQuery()
}
@@ -387,13 +388,13 @@ func newChatStage1(ctx *laniakea.MsgContext, db *database.Context) {
}
kb := laniakea.NewInlineKeyboard(2)
for _, setting := range settings {
out = append(out, fmt.Sprintf("*%s* - %s", setting.Name, setting.Description))
out = append(out, fmt.Sprintf("*%s* \\- %s", setting.Name, setting.Description))
kb.AddCallbackButton(setting.Name, "rp.new_chat_s2", setting.ID)
}
kb.AddCallbackButton("Без сеттинга", "rp.new_chat_s2", 0)
kb.AddLine()
kb.AddCallbackButtonStyle("Назад", laniakea.ButtonStyleDanger, "rp.info")
ctx.EditCallbackMarkdown(laniakea.EscapePunctuation(strings.Join(out, "\n")), kb)
ctx.EditCallbackMarkdown(strings.Join(out, "\n"), kb)
ctx.AnswerCbQuery()
}
func newChatStage2(ctx *laniakea.MsgContext, db *database.Context) {
@@ -536,7 +537,7 @@ func newChat(ctx *laniakea.MsgContext, db *database.Context) {
kb := laniakea.NewInlineKeyboard(2)
kb.AddCallbackButtonStyle("На главную", laniakea.ButtonStyleSuccess, "rp.info")
kb.AddCallbackButtonStyle("Закрыть", laniakea.ButtonStyleDanger, "general.close")
ctx.EditCallback("Был создан новый чат. Для общения используй `/г промпт`.", kb)
ctx.EditCallbackMarkdown("Был создан новый чат\\. Для общения используй `/г промпт`", kb)
ctx.AnswerCbQuery()
}
@@ -989,11 +990,11 @@ func compressSettingStage1(ctx *laniakea.MsgContext, _ *database.Context) {
out := []string{
"Выбери метод для определения сжатия",
"*По сообщениям* — чат будет сжиматься после достижения определенного кол-ва сообщений в нём",
"*По токенам* — чат будет сжиматься после достижения определенного кол-ва токенов в нём",
"*По сообщениям* \\— чат будет сжиматься после достижения определенного кол-ва сообщений в нём",
"*По токенам* \\— чат будет сжиматься после достижения определенного кол-ва токенов в нём",
}
ctx.EditCallback(strings.Join(out, "\n"), kb)
ctx.EditCallbackMarkdown(strings.Join(out, "\n"), kb)
}
func compressSettingStage2(ctx *laniakea.MsgContext, _ *database.Context) {
if len(ctx.Args) == 0 {

View File

@@ -14,32 +14,30 @@ func RegisterService() *laniakea.Plugin[database.Context] {
p := laniakea.NewPlugin[database.Context]("service")
p.AddPayload(p.NewCommand(generalClose, "general.close"))
p.AddCommand(p.NewCommand(about, "about"))
p.AddCommand(p.NewCommand(about, "о боте").SkipCommandAutoGen())
p.NewCommand(about, "about")
p.NewCommand(about, "о боте")
return p
}
func about(ctx *laniakea.MsgContext, _ *database.Context) {
formatVersion := func() string {
parts := strings.Split(laniakea.VersionString, "-")
main := parts[0]
if len(parts) > 1 {
beta := strings.Join(strings.Split(parts[1], "."), " ")
return main + " " + beta
v := fmt.Sprintf("%d.%d.%d", laniakea.VersionMajor, laniakea.VersionMinor, laniakea.VersionPatch)
if laniakea.VersionBeta > 0 {
v += fmt.Sprintf(" Beta %d", laniakea.VersionBeta)
}
return main
return v
}
out := []string{
fmt.Sprintf("Версия Go: %s", runtime.Version()[2:]),
fmt.Sprintf("Версия Laniakea: %s", formatVersion()),
fmt.Sprintf("Время сборки: %s", utils.BuildTime),
fmt.Sprintf("Git хеш: %s", utils.GitCommit),
fmt.Sprintf("*Версия Go*: %s", runtime.Version()[2:]),
fmt.Sprintf("*Версия Laniakea*: %s", formatVersion()),
fmt.Sprintf("*Время сборки*: %s", utils.BuildTime),
fmt.Sprintf("*Git хеш*: %s", utils.GitCommit),
}
kb := laniakea.NewInlineKeyboard(2)
kb.AddUrlButtonStyle("Канал", laniakea.ButtonStylePrimary, "https://t.me/ym_gbot_news")
kb.AddUrlButtonStyle("Чат", laniakea.ButtonStylePrimary, "https://t.me/ym_gbot_chat")
ctx.Keyboard(strings.Join(out, "\n"), kb)
ctx.KeyboardMarkdown(laniakea.EscapePunctuation(strings.Join(out, "\n")), kb)
}
func generalClose(ctx *laniakea.MsgContext, _ *database.Context) {

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)
}
}