more keyboards
This commit is contained in:
2
laniakea
2
laniakea
Submodule laniakea updated: ce13b19676...7a3e40a74d
@@ -17,22 +17,21 @@ import (
|
|||||||
|
|
||||||
func RegisterRP(bot *laniakea.Bot) {
|
func RegisterRP(bot *laniakea.Bot) {
|
||||||
rp := laniakea.NewPlugin("RP")
|
rp := laniakea.NewPlugin("RP")
|
||||||
rp = rp.Command(rpInfo, "rp", "рп")
|
rp.Command(rpInfo, "rp", "рп")
|
||||||
rp = rp.Payload(rpInfo, "rp.info")
|
rp.Payload(rpInfo, "rp.info")
|
||||||
|
rp.Payload(rpWaifuList, "rp.waifu_list")
|
||||||
|
rp.Payload(rpWaifuSet, "rp.waifu_set")
|
||||||
|
rp.Payload(rpPresetsList, "rp.preset_list")
|
||||||
|
rp.Payload(rpPresetSet, "rp.preset_set")
|
||||||
|
rp.Payload(rpScenarioList, "rp.scenario_list")
|
||||||
|
rp.Payload(rpScenarioSet, "rp.scenario_set")
|
||||||
|
rp.Payload(chatStat, "rp.tokens")
|
||||||
|
rp.Payload(newChat, "rp.new_chat")
|
||||||
|
|
||||||
rp = rp.Payload(rpWaifuList, "rp.waifu_list")
|
rp.Command(rpUserPromptGet, "rpuserpget")
|
||||||
rp = rp.Payload(rpWaifuSet, "rp.waifu_set")
|
rp.Command(rpUserPromptSet, "rpuserpset")
|
||||||
rp = rp.Payload(rpPresetsList, "rp.preset_list")
|
rp.Command(generate, "g", "gen", "г")
|
||||||
rp = rp.Payload(rpPresetSet, "rp.preset_set")
|
rp.Payload(compress, "rp.compress_chat")
|
||||||
rp = rp.Payload(rpScenarioList, "rp.scenario_list")
|
|
||||||
rp = rp.Payload(rpScenarioSet, "rp.scenario_set")
|
|
||||||
rp = rp.Payload(chatStat, "rp.tokens")
|
|
||||||
rp = rp.Payload(newChat, "rp.new_chat")
|
|
||||||
|
|
||||||
rp = rp.Command(rpUserPromptGet, "rpuserpget")
|
|
||||||
rp = rp.Command(rpUserPromptSet, "rpuserpset")
|
|
||||||
rp = rp.Command(generate, "g", "gen", "г")
|
|
||||||
rp = rp.Payload(compress, "rp.compress_chat")
|
|
||||||
|
|
||||||
bot.AddPlugins(rp.Build())
|
bot.AddPlugins(rp.Build())
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,11 +14,21 @@ import (
|
|||||||
func RegisterWaifus(bot *laniakea.Bot) {
|
func RegisterWaifus(bot *laniakea.Bot) {
|
||||||
waifus := laniakea.NewPlugin("Waifus")
|
waifus := laniakea.NewPlugin("Waifus")
|
||||||
|
|
||||||
waifus.Command(myWaifu, "mywaifu", "моивайфу")
|
|
||||||
waifus.Command(sellWaifu, "sellwaifu")
|
waifus.Command(sellWaifu, "sellwaifu")
|
||||||
|
|
||||||
|
waifus.Command(myWaifu, "mywaifu", "моивайфу")
|
||||||
|
waifus.Command(myWaifu, "waifu.my")
|
||||||
|
|
||||||
waifus.Command(waifuList, "wlist", "waifulist", "влист", "вайфулист")
|
waifus.Command(waifuList, "wlist", "waifulist", "влист", "вайфулист")
|
||||||
|
waifus.Payload(waifuList, "waifu.list")
|
||||||
|
|
||||||
waifus.Command(waifuInfo, "winfo", "waifuinfo", "винфо")
|
waifus.Command(waifuInfo, "winfo", "waifuinfo", "винфо")
|
||||||
|
waifus.Payload(waifuInfo, "waifu.info")
|
||||||
|
|
||||||
waifus.Command(waifuSearch, "wsearch", "waifusearch", "впоиск")
|
waifus.Command(waifuSearch, "wsearch", "waifusearch", "впоиск")
|
||||||
|
waifus.Payload(waifuSearch, "waifu.search")
|
||||||
|
|
||||||
|
waifus.Payload(waifuNotImplemented, "waifu.confirm_buy")
|
||||||
|
|
||||||
bot.AddPlugins(waifus.Build())
|
bot.AddPlugins(waifus.Build())
|
||||||
}
|
}
|
||||||
@@ -26,26 +36,34 @@ func RegisterWaifus(bot *laniakea.Bot) {
|
|||||||
func myWaifu(ctx *laniakea.MsgContext, _ *laniakea.DatabaseContext) {
|
func myWaifu(ctx *laniakea.MsgContext, _ *laniakea.DatabaseContext) {
|
||||||
user, err := psql.GetUser(ctx.FromID)
|
user, err := psql.GetUser(ctx.FromID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Answer(err.Error())
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
out := []string{
|
|
||||||
fmt.Sprintf("%s, %s!", user.Greeting, user.Name),
|
|
||||||
"Список твоих вайфу:",
|
|
||||||
}
|
|
||||||
|
|
||||||
waifus, err := psql.GetUserWaifus(user.ID)
|
waifus, err := psql.GetUserWaifus(user.ID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
kb := laniakea.NewInlineKeyboard(2)
|
||||||
|
out := []string{
|
||||||
|
fmt.Sprintf("%s, %s!", user.Greeting, user.Name),
|
||||||
|
"Список твоих вайфу:",
|
||||||
|
}
|
||||||
for _, w := range waifus {
|
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)
|
out = append(out, s)
|
||||||
|
kb.AddCallbackButton(w.Name, "waifu.info", w.ID)
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx.Answer(strings.Join(out, "\n"))
|
kb.AddLine()
|
||||||
|
kb.AddCallbackButton("Искать", "waifu.search")
|
||||||
|
if ctx.CallbackMsgId > 0 {
|
||||||
|
ctx.EditCallback(strings.Join(out, "\n"), kb)
|
||||||
|
} else {
|
||||||
|
ctx.Keyboard(strings.Join(out, "\n"), kb)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func sellWaifu(ctx *laniakea.MsgContext, _ *laniakea.DatabaseContext) {
|
func sellWaifu(ctx *laniakea.MsgContext, _ *laniakea.DatabaseContext) {
|
||||||
@@ -58,33 +76,36 @@ func waifuList(ctx *laniakea.MsgContext, _ *laniakea.DatabaseContext) {
|
|||||||
ctx.Answer(err.Error())
|
ctx.Answer(err.Error())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
var out []string
|
out := make([]string, len(waifus))
|
||||||
|
|
||||||
for _, w := range waifus {
|
kb := laniakea.NewInlineKeyboard(1)
|
||||||
|
for i, w := range waifus {
|
||||||
var owner string
|
var owner string
|
||||||
if w.Owner == nil {
|
if w.Owner == nil {
|
||||||
owner = "нет"
|
owner = "нет"
|
||||||
} else {
|
} else {
|
||||||
owner = w.Owner.Name
|
owner = w.Owner.Name
|
||||||
}
|
}
|
||||||
s := fmt.Sprintf("*%s* из \"*%s*\" (%d☆, ID: %d) Владелец: %v", 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)
|
||||||
out = append(out, s)
|
kb.AddCallbackButton(w.Name, "waifu.info", w.ID)
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx.Answer(strings.Join(out, "\n"))
|
if ctx.CallbackMsgId > 0 {
|
||||||
|
ctx.EditCallback(strings.Join(out, "\n"), kb)
|
||||||
|
} else {
|
||||||
|
ctx.Keyboard(strings.Join(out, "\n"), kb)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func waifuInfo(ctx *laniakea.MsgContext, _ *laniakea.DatabaseContext) {
|
func waifuInfo(ctx *laniakea.MsgContext, _ *laniakea.DatabaseContext) {
|
||||||
rawArgs := strings.TrimSpace(ctx.Text)
|
if len(ctx.Args) != 1 {
|
||||||
args := strings.Split(rawArgs, " ")
|
|
||||||
if len(args) != 1 {
|
|
||||||
ctx.Answer("Не указан ID вайфу!")
|
ctx.Answer("Не указан ID вайфу!")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
waifuId, err := strconv.Atoi(args[0])
|
waifuId, err := strconv.Atoi(ctx.Args[0])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Answer("Во время выполнения команды произошла ошибка!")
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -101,10 +122,16 @@ func waifuInfo(ctx *laniakea.MsgContext, _ *laniakea.DatabaseContext) {
|
|||||||
fmt.Sprintf("Бонус к опыту: x%.2f", waifu.ExpBonus.InexactFloat64()),
|
fmt.Sprintf("Бонус к опыту: x%.2f", waifu.ExpBonus.InexactFloat64()),
|
||||||
fmt.Sprintf("Рыночная стоимость: %s¥", utils.DecimalComma(&waifu.MarketPrice)),
|
fmt.Sprintf("Рыночная стоимость: %s¥", utils.DecimalComma(&waifu.MarketPrice)),
|
||||||
}
|
}
|
||||||
|
kb := laniakea.NewInlineKeyboard(1)
|
||||||
|
if !waifu.OwnerID.Valid {
|
||||||
|
kb.AddCallbackButton("Купить", "waifu.confirm_buy")
|
||||||
|
}
|
||||||
|
|
||||||
|
kb.AddCallbackButton("Назад", "waifu.list")
|
||||||
if len(waifu.Image) > 0 {
|
if len(waifu.Image) > 0 {
|
||||||
ctx.AnswerPhoto(waifu.Image, strings.Join(out, "\n"))
|
ctx.AnswerPhoto(waifu.Image, strings.Join(out, "\n"))
|
||||||
} else {
|
} else {
|
||||||
ctx.Answer(strings.Join(out, "\n"))
|
ctx.EditCallback(strings.Join(out, "\n"), kb)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -115,8 +142,9 @@ func waifuSearch(ctx *laniakea.MsgContext, _ *laniakea.DatabaseContext) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
kb := laniakea.NewInlineKeyboard(2).AddCallbackButton("Мои вайфу", "waifu.my").AddCallbackButton("Все вайфу", "waifu.list")
|
||||||
if time.Now().Before(user.WaifuSearchTime.Add(time.Hour * 4)) {
|
if time.Now().Before(user.WaifuSearchTime.Add(time.Hour * 4)) {
|
||||||
ctx.Answer("Вайфу можно искать раз в 4 часа.")
|
ctx.EditCallback("Вайфу можно искать раз в 4 часа.", kb)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -126,13 +154,13 @@ func waifuSearch(ctx *laniakea.MsgContext, _ *laniakea.DatabaseContext) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
if count == 0 {
|
if count == 0 {
|
||||||
ctx.Answer("Не осталось свободных вайфу... :(\nПопробуй позже или купи на рынке!")
|
ctx.EditCallback("Не осталось свободных вайфу... :(\nПопробуй позже или купи на рынке!", kb)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
rand := utils.RandRange(0, 100)
|
rand := utils.RandRange(0, 100)
|
||||||
if 10 < rand && rand < 90 {
|
if 10 < rand && rand < 90 {
|
||||||
ctx.Answer("Ты ничего не нашел!")
|
ctx.EditCallback("Ты ничего не нашел!", kb)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -144,8 +172,6 @@ func waifuSearch(ctx *laniakea.MsgContext, _ *laniakea.DatabaseContext) {
|
|||||||
rarity = 4
|
rarity = 4
|
||||||
}
|
}
|
||||||
|
|
||||||
fmt.Println(rarity)
|
|
||||||
|
|
||||||
freeWaifus, err = psql.GetFreeWaifusWithRarity(rarity)
|
freeWaifus, err = psql.GetFreeWaifusWithRarity(rarity)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
@@ -153,7 +179,7 @@ func waifuSearch(ctx *laniakea.MsgContext, _ *laniakea.DatabaseContext) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if len(freeWaifus) == 0 {
|
if len(freeWaifus) == 0 {
|
||||||
ctx.Answer("Ты ничего не нашел!")
|
ctx.EditCallback("Ты ничего не нашел!", kb)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -170,6 +196,11 @@ func waifuSearch(ctx *laniakea.MsgContext, _ *laniakea.DatabaseContext) {
|
|||||||
if len(waifu.Image) > 0 {
|
if len(waifu.Image) > 0 {
|
||||||
ctx.AnswerPhoto(waifu.Image, strings.Join(out, "\n"))
|
ctx.AnswerPhoto(waifu.Image, strings.Join(out, "\n"))
|
||||||
} else {
|
} else {
|
||||||
ctx.Answer(strings.Join(out, "\n"))
|
ctx.EditCallback(strings.Join(out, "\n"), kb)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func waifuNotImplemented(ctx *laniakea.MsgContext, _ *laniakea.DatabaseContext) {
|
||||||
|
kb := laniakea.NewInlineKeyboard(2).AddCallbackButton("Мои вайфу", "waifu.my").AddCallbackButton("Все вайфу", "waifu.list")
|
||||||
|
ctx.EditCallback("Данная функция ещё не реализована", kb)
|
||||||
|
}
|
||||||
|
|||||||
@@ -123,7 +123,14 @@ func (o *OpenAIAPI) DoRequest(url string, params any) ([]byte, error) {
|
|||||||
if res.StatusCode == 504 || res.StatusCode == 400 || res.StatusCode == 502 {
|
if res.StatusCode == 504 || res.StatusCode == 400 || res.StatusCode == 502 {
|
||||||
o.Logger.Warn(fmt.Sprintf("[%d] %s", res.StatusCode, res.Status))
|
o.Logger.Warn(fmt.Sprintf("[%d] %s", res.StatusCode, res.Status))
|
||||||
time.Sleep(5 * time.Second)
|
time.Sleep(5 * time.Second)
|
||||||
return o.DoRequest(url, params)
|
res, err = o.client.Do(req)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
defer res.Body.Close()
|
||||||
|
if res.StatusCode == 504 || res.StatusCode == 400 || res.StatusCode == 502 {
|
||||||
|
return nil, fmt.Errorf("[%d] %s", res.StatusCode, res.Status)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
responseBody, err = io.ReadAll(res.Body)
|
responseBody, err = io.ReadAll(res.Body)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
Reference in New Issue
Block a user