log middleware
This commit is contained in:
@@ -3,6 +3,7 @@ package plugins
|
||||
import (
|
||||
"fmt"
|
||||
"kurumibot/database"
|
||||
"kurumibot/database/psql"
|
||||
"kurumibot/utils"
|
||||
"math"
|
||||
"math/rand/v2"
|
||||
@@ -34,17 +35,17 @@ func RegisterEconomy(bot *laniakea.Bot) {
|
||||
bot.AddPlugins(economy.Build())
|
||||
}
|
||||
|
||||
func about(ctx *laniakea.MsgContext) {
|
||||
func about(msgCtx *laniakea.MsgContext, _ *laniakea.DatabaseContext) {
|
||||
out := []string{
|
||||
"Версия Go: 1.23.4",
|
||||
fmt.Sprintf("Версия laniakea: %s", laniakea.VERSION_STRING),
|
||||
fmt.Sprintf("Go: %s", "1.25.0"),
|
||||
fmt.Sprintf("Версия laniakea: %s", laniakea.VersionString),
|
||||
}
|
||||
ctx.Answer(strings.Join(out, "\n"))
|
||||
msgCtx.Answer(strings.Join(out, "\n"))
|
||||
}
|
||||
|
||||
func passiveIncome(b *laniakea.Bot) {
|
||||
for {
|
||||
users, err := database.GetAllUsers()
|
||||
users, err := psql.GetAllUsers()
|
||||
if err != nil {
|
||||
b.Logger().Error(err)
|
||||
continue
|
||||
@@ -73,7 +74,7 @@ func passiveIncome(b *laniakea.Bot) {
|
||||
btcIncome = btcIncome.Add(user.Miner.Income).Mul(user.Group.Multiplier)
|
||||
}
|
||||
|
||||
waifus, err := database.GetUserWaifus(user.ID)
|
||||
waifus, err := psql.GetUserWaifus(user.ID)
|
||||
if err != nil {
|
||||
b.Logger().Error(err)
|
||||
continue
|
||||
@@ -92,7 +93,7 @@ func passiveIncome(b *laniakea.Bot) {
|
||||
user.MoneyIncome = user.MoneyIncome.Add(moneyIncome)
|
||||
user.BtcIncome = user.BtcIncome.Add(btcIncome)
|
||||
user.IncomeTime = time.Now().Add(-time.Hour * 2)
|
||||
database.Database.Save(user)
|
||||
database.PostgresDatabase.Save(user)
|
||||
|
||||
b.Logger().Debug(fmt.Sprintf("У %d было пассивно собрано. След. сбор через час\n", user.TelegramID))
|
||||
}
|
||||
@@ -101,8 +102,8 @@ func passiveIncome(b *laniakea.Bot) {
|
||||
}
|
||||
}
|
||||
|
||||
func profile(ctx *laniakea.MsgContext) {
|
||||
user, err := database.GetOrCreateUser(ctx.FromID, ctx.Update.Message.From.FirstName)
|
||||
func profile(ctx *laniakea.MsgContext, _ *laniakea.DatabaseContext) {
|
||||
user, err := psql.GetOrCreateUser(ctx.FromID, ctx.Update.Message.From.FirstName)
|
||||
if err != nil {
|
||||
ctx.Answer(err.Error())
|
||||
return
|
||||
@@ -117,7 +118,24 @@ func profile(ctx *laniakea.MsgContext) {
|
||||
if user.Fraction != nil {
|
||||
fraction = user.Fraction.Name
|
||||
}
|
||||
_, needXp := database.CountLevel(user.Exp)
|
||||
|
||||
auto := "нет"
|
||||
if user.Auto != nil {
|
||||
auto = fmt.Sprintf("%s (ID: %d)", user.Auto.Name, user.Auto.ID)
|
||||
}
|
||||
business := "нет"
|
||||
if user.Business != nil {
|
||||
business = fmt.Sprintf("%s (ID: %d)", user.Business.Name, user.Business.ID)
|
||||
}
|
||||
maid := "нет"
|
||||
if user.Maid != nil {
|
||||
maid = fmt.Sprintf("%s (ID: %d)", user.Maid.Name, user.Maid.ID)
|
||||
}
|
||||
miner := "нет"
|
||||
if user.Miner != nil {
|
||||
miner = fmt.Sprintf("%s (ID: %d)", user.Miner.Name, user.Miner.ID)
|
||||
}
|
||||
_, needXp := psql.CountLevel(user.Exp)
|
||||
|
||||
out := []string{
|
||||
fmt.Sprintf("🖤%s, %s🖤", user.Greeting, user.Name),
|
||||
@@ -128,16 +146,16 @@ func profile(ctx *laniakea.MsgContext) {
|
||||
fmt.Sprintf("💡Уровень: %d (%d опыта, %d опыта до повышения)", user.Level, user.Exp, needXp-user.Exp),
|
||||
fmt.Sprintf("💴Баланс: %s¥ %s, %s₿", utils.DecimalComma(&user.Balance), utils.Short(user.Balance.String()), utils.DecimalComma(&user.BTC)),
|
||||
fmt.Sprintf("💼Работа: %s (ID: %d)", user.Work.Name, user.Work.ID),
|
||||
fmt.Sprintf("🚘Авто: %s (ID: %d)", user.Auto.Name, user.Auto.ID),
|
||||
fmt.Sprintf("🏢Бизнес: %s (ID: %d)", user.Business.Name, user.Business.ID),
|
||||
fmt.Sprintf("👩🦳Горничная: %s (ID: %d)", user.Maid.Name, user.Maid.ID),
|
||||
fmt.Sprintf("🖥Майнер: %s (ID: %d)", user.Miner.Name, user.Miner.ID),
|
||||
fmt.Sprintf("🚘Авто: %s", auto),
|
||||
fmt.Sprintf("🏢Бизнес: %s", business),
|
||||
fmt.Sprintf("👩🦳Горничная: %s", maid),
|
||||
fmt.Sprintf("🖥Майнер: %s", miner),
|
||||
}
|
||||
ctx.Answer(strings.Join(out, "\n"))
|
||||
}
|
||||
|
||||
func work(ctx *laniakea.MsgContext) {
|
||||
user, err := database.GetOrCreateUser(ctx.FromID, ctx.Update.Message.From.FirstName)
|
||||
func work(ctx *laniakea.MsgContext, _ *laniakea.DatabaseContext) {
|
||||
user, err := psql.GetOrCreateUser(ctx.FromID, ctx.Update.Message.From.FirstName)
|
||||
if err != nil {
|
||||
ctx.Error(err)
|
||||
return
|
||||
@@ -158,7 +176,7 @@ func work(ctx *laniakea.MsgContext) {
|
||||
// Count money
|
||||
moneyToAdd := work.MoneyIncome.Mul(user.Group.Multiplier)
|
||||
|
||||
waifus, err := database.GetUserWaifus(user.ID)
|
||||
waifus, err := psql.GetUserWaifus(user.ID)
|
||||
if err != nil {
|
||||
ctx.Error(err)
|
||||
return
|
||||
@@ -170,13 +188,17 @@ func work(ctx *laniakea.MsgContext) {
|
||||
user.Exp += int(expToAdd.IntPart())
|
||||
user.Balance = user.Balance.Add(moneyToAdd)
|
||||
user.WorkTime = time.Now()
|
||||
user.Level, _ = database.CountLevel(user.Exp)
|
||||
database.Database.Save(user)
|
||||
ctx.Answer(fmt.Sprintf("Ты заработал %s¥ и %d опыта.\nПриходи через 10 минут.", utils.DecimalComma(&work.MoneyIncome), expToAdd.IntPart()))
|
||||
user.Level, _ = psql.CountLevel(user.Exp)
|
||||
database.PostgresDatabase.Save(user)
|
||||
ctx.Answer(fmt.Sprintf(
|
||||
"Ты заработал %s¥ и %d опыта.\nПриходи через 10 минут.",
|
||||
utils.DecimalComma(&work.MoneyIncome),
|
||||
expToAdd.IntPart(),
|
||||
))
|
||||
}
|
||||
|
||||
func collect(ctx *laniakea.MsgContext) {
|
||||
user, err := database.GetOrCreateUser(ctx.FromID, ctx.Update.Message.From.FirstName)
|
||||
func collect(ctx *laniakea.MsgContext, _ *laniakea.DatabaseContext) {
|
||||
user, err := psql.GetOrCreateUser(ctx.FromID, ctx.Update.Message.From.FirstName)
|
||||
if err != nil {
|
||||
ctx.Error(err)
|
||||
return
|
||||
@@ -212,7 +234,7 @@ func collect(ctx *laniakea.MsgContext) {
|
||||
btcIncome = btcIncome.Add(user.Miner.Income).Mul(user.Group.Multiplier)
|
||||
}
|
||||
|
||||
waifus, err := database.GetUserWaifus(user.ID)
|
||||
waifus, err := psql.GetUserWaifus(user.ID)
|
||||
if err != nil {
|
||||
ctx.Error(err)
|
||||
return
|
||||
@@ -224,7 +246,7 @@ func collect(ctx *laniakea.MsgContext) {
|
||||
btcIncome = btcIncome.Mul(waifu.MoneyBonus)
|
||||
}
|
||||
|
||||
incomeText := []string{}
|
||||
var incomeText []string
|
||||
|
||||
if moneyIncome.IntPart() > 0 {
|
||||
incomeText = append(incomeText, fmt.Sprintf("%s¥", utils.DecimalComma(&moneyIncome)))
|
||||
@@ -236,7 +258,7 @@ func collect(ctx *laniakea.MsgContext) {
|
||||
incomeText = append(incomeText, fmt.Sprintf("%.6f₿", btcIncome.InexactFloat64()))
|
||||
}
|
||||
|
||||
passiveIncomeText := []string{}
|
||||
var passiveIncomeText []string
|
||||
if user.MoneyIncome.IntPart() > 0 {
|
||||
user.Balance = user.Balance.Add(user.MoneyIncome)
|
||||
passiveIncomeText = append(passiveIncomeText, fmt.Sprintf("%s¥", utils.DecimalComma(&user.MoneyIncome)))
|
||||
@@ -255,11 +277,11 @@ func collect(ctx *laniakea.MsgContext) {
|
||||
|
||||
user.Balance = user.Balance.Add(moneyIncome)
|
||||
user.Exp += int(expIncome.IntPart())
|
||||
user.Level, _ = database.CountLevel(user.Exp)
|
||||
user.Level, _ = psql.CountLevel(user.Exp)
|
||||
user.BTC = user.BTC.Add(btcIncome)
|
||||
user.IncomeTime = time.Now()
|
||||
|
||||
database.Database.Save(user)
|
||||
database.PostgresDatabase.Save(user)
|
||||
|
||||
out := []string{
|
||||
fmt.Sprintf("Ты собрал %s.", strings.Join(incomeText, ", ")),
|
||||
@@ -274,12 +296,12 @@ func collect(ctx *laniakea.MsgContext) {
|
||||
ctx.Answer(strings.Join(out, "\n"))
|
||||
}
|
||||
|
||||
func code(ctx *laniakea.MsgContext) {
|
||||
func code(ctx *laniakea.MsgContext, _ *laniakea.DatabaseContext) {
|
||||
// user, err := database.Get
|
||||
}
|
||||
|
||||
func vacancies(ctx *laniakea.MsgContext) {
|
||||
works, err := database.GetAllWorks()
|
||||
func vacancies(ctx *laniakea.MsgContext, _ *laniakea.DatabaseContext) {
|
||||
works, err := psql.GetAllWorks()
|
||||
|
||||
if err != nil {
|
||||
ctx.Error(err)
|
||||
@@ -297,13 +319,13 @@ func vacancies(ctx *laniakea.MsgContext) {
|
||||
ctx.Answer(strings.Join(out, "\n"))
|
||||
}
|
||||
|
||||
func getAJob(ctx *laniakea.MsgContext) {
|
||||
func getAJob(ctx *laniakea.MsgContext, _ *laniakea.DatabaseContext) {
|
||||
if len(ctx.Args) == 0 {
|
||||
ctx.Answer("Недостаточно аргументов")
|
||||
return
|
||||
}
|
||||
|
||||
user, err := database.GetOrCreateUser(ctx.FromID, ctx.Msg.From.FirstName)
|
||||
user, err := psql.GetOrCreateUser(ctx.FromID, ctx.Msg.From.FirstName)
|
||||
if err != nil {
|
||||
ctx.Error(err)
|
||||
return
|
||||
@@ -313,7 +335,7 @@ func getAJob(ctx *laniakea.MsgContext) {
|
||||
ctx.Error(err)
|
||||
return
|
||||
}
|
||||
work, err := database.GetWorkById(workId)
|
||||
work, err := psql.GetWorkById(workId)
|
||||
if err != nil {
|
||||
ctx.Error(err)
|
||||
return
|
||||
@@ -324,12 +346,12 @@ func getAJob(ctx *laniakea.MsgContext) {
|
||||
}
|
||||
user.WorkID = workId
|
||||
user.Work = work
|
||||
database.Database.Save(user)
|
||||
database.PostgresDatabase.Save(user)
|
||||
ctx.Answer("Ты успешно устроился на работу!")
|
||||
}
|
||||
|
||||
func aboutGroup(ctx *laniakea.MsgContext) {
|
||||
user, err := database.GetOrCreateUser(ctx.FromID, ctx.Msg.From.FirstName)
|
||||
func aboutGroup(ctx *laniakea.MsgContext, _ *laniakea.DatabaseContext) {
|
||||
user, err := psql.GetOrCreateUser(ctx.FromID, ctx.Msg.From.FirstName)
|
||||
if err != nil {
|
||||
ctx.Error(err)
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user