laniakea v0.6
This commit is contained in:
@@ -14,16 +14,16 @@ import (
|
||||
|
||||
func RegisterAdmin(b *laniakea.Bot) {
|
||||
p := laniakea.NewPlugin("Admin")
|
||||
p.Command(uploadPhoto, "uploadPhoto")
|
||||
p.Command(emojiId, "emojiId")
|
||||
p.Command(getProxy, "proxy")
|
||||
p.Command(execSql, "sql")
|
||||
p.AddCommand(laniakea.NewCommand(uploadPhoto, "uploadPhoto").SkipCommandAutoGen())
|
||||
p.AddCommand(laniakea.NewCommand(emojiId, "emojiId").SkipCommandAutoGen())
|
||||
p.AddCommand(laniakea.NewCommand(getProxy, "proxy").SkipCommandAutoGen())
|
||||
p.AddCommand(laniakea.NewCommand(execSql, "sql").SkipCommandAutoGen())
|
||||
|
||||
p.AddMiddleware(AdminMiddleware())
|
||||
b.AddPlugins(p.Build())
|
||||
b.AddPlugins(p)
|
||||
}
|
||||
func AdminMiddleware() *laniakea.PluginMiddleware {
|
||||
m := laniakea.NewPluginMiddleware(func(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) bool {
|
||||
func AdminMiddleware() laniakea.Middleware {
|
||||
m := laniakea.NewMiddleware("AdminMiddleware", func(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) bool {
|
||||
rep := psql.NewUserRepository(db)
|
||||
u, err := rep.GetById(ctx.FromID)
|
||||
if err != nil {
|
||||
@@ -31,7 +31,7 @@ func AdminMiddleware() *laniakea.PluginMiddleware {
|
||||
}
|
||||
return u.Group.IsAdmin
|
||||
})
|
||||
return m
|
||||
return *m
|
||||
}
|
||||
|
||||
func execSql(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
|
||||
@@ -11,8 +11,8 @@ import (
|
||||
|
||||
func RegisterAi(bot *laniakea.Bot) {
|
||||
p := laniakea.NewPlugin("AI")
|
||||
p.Command(gpt, "gpt")
|
||||
bot.AddPlugins(p.Build())
|
||||
p.AddCommand(p.NewCommand(gpt, "gpt").SkipCommandAutoGen())
|
||||
bot.AddPlugins(p)
|
||||
}
|
||||
|
||||
func gpt(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
|
||||
@@ -15,22 +15,29 @@ import (
|
||||
)
|
||||
|
||||
func RegisterEconomy(bot *laniakea.Bot) {
|
||||
economy := laniakea.NewPlugin("Economy")
|
||||
economy.Command(profile, "profile", "профиль")
|
||||
economy.Command(work, "work", "работать")
|
||||
economy.Command(collect, "collect", "собрать")
|
||||
economy.Command(code, "code", "код")
|
||||
p := laniakea.NewPlugin("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())
|
||||
|
||||
economy.Command(vacancies, "vacancies", "вакансии")
|
||||
economy.Command(getAJob, "getajob", "устроиться")
|
||||
p.AddCommand(p.NewCommand(vacancies, "vacancies"))
|
||||
p.AddCommand(p.NewCommand(vacancies, "вакансии").SkipCommandAutoGen())
|
||||
p.AddCommand(p.NewCommand(getAJob, "getajob"))
|
||||
p.AddCommand(p.NewCommand(getAJob, "устроиться").SkipCommandAutoGen())
|
||||
|
||||
economy.Command(aboutGroup, "group", "о группе")
|
||||
p.AddCommand(p.NewCommand(aboutGroup, "group"))
|
||||
p.AddCommand(p.NewCommand(aboutGroup, "о группе").SkipCommandAutoGen())
|
||||
|
||||
bot.AddRunner(laniakea.NewRunner(
|
||||
"economy.PassiveIncome", passiveIncome,
|
||||
).Timeout(time.Minute).Build())
|
||||
|
||||
bot.AddPlugins(economy.Build())
|
||||
bot.AddPlugins(p)
|
||||
}
|
||||
|
||||
func passiveIncome(b *laniakea.Bot) error {
|
||||
@@ -383,12 +390,15 @@ func aboutGroup(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
if group.IsVip {
|
||||
out = append(out, "🎏Доступ к ВИП функциям: ✅")
|
||||
}
|
||||
if group.IsPremium {
|
||||
out = append(out, "🎏Доступ к премиум функциям: ✅")
|
||||
}
|
||||
if group.IsTester {
|
||||
out = append(out, "🔓Бета-тестер: ✅")
|
||||
}
|
||||
if group.IsAdmin {
|
||||
out = append(out, "🖥️Доступ к админ функциям: ✅")
|
||||
}
|
||||
if group.IsVip {
|
||||
out = append(out, "🔓Бета-тестер: ✅")
|
||||
}
|
||||
|
||||
ctx.Answer(strings.Join(out, "\n"))
|
||||
}
|
||||
|
||||
@@ -8,9 +8,9 @@ import (
|
||||
|
||||
func RegisterFun(bot *laniakea.Bot) {
|
||||
p := laniakea.NewPlugin("Fun")
|
||||
p.Command(beautyFont, "bf")
|
||||
p.Command(beautyFontHeart, "bfh")
|
||||
bot.AddPlugins(p.Build())
|
||||
p.AddCommand(p.NewCommand(beautyFont, "bf"))
|
||||
p.AddCommand(p.NewCommand(beautyFontHeart, "bfh"))
|
||||
bot.AddPlugins(p)
|
||||
}
|
||||
|
||||
var ligatures = map[string]string{
|
||||
|
||||
@@ -16,13 +16,13 @@ import (
|
||||
|
||||
func RegisterLogs(bot *laniakea.Bot) {
|
||||
p := laniakea.NewPlugin("Logs")
|
||||
p.Command(getLogs, "logs")
|
||||
p.Command(getMsgLogs, "msglogs")
|
||||
p.AddCommand(p.NewCommand(getLogs, "logs").SkipCommandAutoGen())
|
||||
p.AddCommand(p.NewCommand(getMsgLogs, "msglogs").SkipCommandAutoGen())
|
||||
p.AddMiddleware(AdminMiddleware())
|
||||
bot.AddPlugins(p.Build())
|
||||
bot.AddPlugins(p)
|
||||
}
|
||||
func InitLogMiddleware() laniakea.Middleware {
|
||||
return laniakea.NewMiddleware("LogMiddleware", logMiddleware).SetAsync(true).Build()
|
||||
return *laniakea.NewMiddleware("LogMiddleware", logMiddleware).SetAsync(true)
|
||||
}
|
||||
|
||||
func getLogs(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
@@ -61,9 +61,9 @@ func encodeLogs[T comparable](logs extypes.Slice[T]) extypes.Slice[string] {
|
||||
return out
|
||||
}
|
||||
|
||||
func logMiddleware(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
func logMiddleware(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) bool {
|
||||
if ctx.Msg == nil {
|
||||
return
|
||||
return true
|
||||
}
|
||||
entry := &mdb.MessageLogEntry{
|
||||
MessageID: ctx.Msg.MessageID,
|
||||
@@ -76,6 +76,7 @@ func logMiddleware(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
if err != nil {
|
||||
ctx.Bot.Logger().Errorln(err)
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
type DatabaseWriter struct {
|
||||
|
||||
@@ -4,5 +4,5 @@ import "git.nix13.pw/scuroneko/laniakea"
|
||||
|
||||
func RegisterRelations(b *laniakea.Bot) {
|
||||
p := laniakea.NewPlugin("Relations")
|
||||
b.AddPlugins(p.Build())
|
||||
b.AddPlugins(p)
|
||||
}
|
||||
|
||||
@@ -21,30 +21,36 @@ import (
|
||||
|
||||
func RegisterRP(bot *laniakea.Bot) {
|
||||
rp := laniakea.NewPlugin("RP")
|
||||
rp.Command(rpUserPromptSet, "rpuserpset")
|
||||
rp.Command(rpInfo, "rp", "рп")
|
||||
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(rpModelList, "rp.model_list")
|
||||
rp.Payload(rpModelSet, "rp.model_set")
|
||||
rp.Payload(rpScenarioList, "rp.scenario_list")
|
||||
rp.Payload(rpSettingList, "rp.setting_list")
|
||||
rp.Payload(chatStat, "rp.chat_stat")
|
||||
rp.Payload(newChatStage1, "rp.new_chat_s1")
|
||||
rp.Payload(newChatStage2, "rp.new_chat_s2")
|
||||
rp.Payload(newChat, "rp.new_chat")
|
||||
rp.Command(generate, "g", "gen", "г")
|
||||
rp.Payload(compress, "rp.compress_chat")
|
||||
rp.Payload(regenerateResponse, "rp.regenerate")
|
||||
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(
|
||||
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"))
|
||||
|
||||
rp.Payload(compressSettingStage1, "rp.compress_setting_s1")
|
||||
rp.Payload(compressSettingStage2, "rp.compress_setting_s2")
|
||||
rp.Payload(compressSetting, "rp.compress_setting")
|
||||
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"))
|
||||
|
||||
bot.AddPlugins(rp.Build())
|
||||
bot.AddPlugins(rp)
|
||||
}
|
||||
|
||||
func rpInfo(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
@@ -899,6 +905,7 @@ func compressSettingStage1(ctx *laniakea.MsgContext, _ *laniakea.DatabaseContext
|
||||
kb := laniakea.NewInlineKeyboard(2)
|
||||
kb.AddCallbackButton("По сообщениям", "rp.compress_setting_s2", "messages")
|
||||
kb.AddCallbackButton("По токенам", "rp.compress_setting_s2", "tokens")
|
||||
kb.AddCallbackButton("Отключить", "rp.compress_setting", "none", 0)
|
||||
kb.AddLine().AddCallbackButton("На главную", "rp.info")
|
||||
|
||||
out := []string{
|
||||
|
||||
@@ -11,10 +11,11 @@ import (
|
||||
|
||||
func RegisterService(bot *laniakea.Bot) {
|
||||
p := laniakea.NewPlugin("service")
|
||||
p.Payload(generalClose, "general.close")
|
||||
p.AddPayload(p.NewCommand(generalClose, "general.close"))
|
||||
|
||||
p.Command(about, "about", "о боте")
|
||||
bot.AddPlugins(p.Build())
|
||||
p.AddCommand(p.NewCommand(about, "about"))
|
||||
p.AddCommand(p.NewCommand(about, "о боте").SkipCommandAutoGen())
|
||||
bot.AddPlugins(p)
|
||||
}
|
||||
|
||||
func about(ctx *laniakea.MsgContext, _ *laniakea.DatabaseContext) {
|
||||
|
||||
@@ -14,22 +14,26 @@ import (
|
||||
)
|
||||
|
||||
func RegisterWaifus(bot *laniakea.Bot) {
|
||||
waifus := laniakea.NewPlugin("Waifus")
|
||||
p := laniakea.NewPlugin("Waifus")
|
||||
|
||||
waifus.Command(myWaifu, "mywaifu", "моивайфу")
|
||||
waifus.Command(waifuList, "wlist", "waifulist", "влист", "вайфулист")
|
||||
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())
|
||||
|
||||
waifus.Payload(myWaifu, "waifu.my")
|
||||
waifus.Payload(waifuList, "waifu.list")
|
||||
waifus.Payload(waifuSell, "waifu.sell")
|
||||
waifus.Payload(buyWaifu, "waifu.buy")
|
||||
waifus.Payload(waifuInfo, "waifu.info")
|
||||
waifus.Payload(waifuSearch, "waifu.search")
|
||||
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"))
|
||||
|
||||
waifus.Payload(waifuNotImplemented, "waifu.confirm_buy")
|
||||
waifus.Payload(waifuNotImplemented, "waifu.confirm_sell")
|
||||
p.AddPayload(p.NewCommand(waifuNotImplemented, "waifu.confirm_buy"))
|
||||
p.AddPayload(p.NewCommand(waifuNotImplemented, "waifu.confirm_sell"))
|
||||
|
||||
bot.AddPlugins(waifus.Build())
|
||||
bot.AddPlugins(p)
|
||||
}
|
||||
|
||||
func myWaifu(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
|
||||
Reference in New Issue
Block a user