// Package wife 抽老婆 package wife import ( "encoding/json" fcext "github.com/FloatTech/floatbox/ctxext" ctrl "github.com/FloatTech/zbpctrl" "github.com/FloatTech/zbputils/control" "github.com/FloatTech/zbputils/ctxext" "github.com/sirupsen/logrus" zero "github.com/wdvxdr1123/ZeroBot" "github.com/wdvxdr1123/ZeroBot/message" ) func init() { engine := control.Register("wife", &ctrl.Options[*zero.Ctx]{ DisableOnDefault: false, Help: "- 抽老婆", Brief: "从老婆库抽每日老婆", PublicDataFolder: "Wife", }).ApplySingle(ctxext.DefaultSingle) cards := []string{} engine.OnFullMatch("抽老婆", fcext.DoOnceOnSuccess( func(ctx *zero.Ctx) bool { data, err := engine.GetLazyData("wife.json", true) if err != nil { ctx.SendChain(message.Text("ERROR: ", err)) return false } err = json.Unmarshal(data, &cards) if err != nil { ctx.SendChain(message.Text("ERROR: ", err)) return false } logrus.Infof("[wife]加载%d个老婆", len(cards)) return true }, )).SetBlock(true). Handle(func(ctx *zero.Ctx) { card := cards[fcext.RandSenderPerDayN(ctx.Event.UserID, len(cards))] data, err := engine.GetLazyData(engine.DataFolder()+"wives/"+card, true) if err != nil { ctx.SendChain( message.At(ctx.Event.UserID), message.Text("今天的二次元老婆是~【", card, "】哒\n【图片下载失败: ", err, "】"), ) return } if id := ctx.SendChain( message.At(ctx.Event.UserID), message.Text("今天的二次元老婆是~【", card, "】哒"), message.ImageBytes(data), ); id.ID() == 0 { ctx.SendChain( message.At(ctx.Event.UserID), message.Text("今天的二次元老婆是~【", card, "】哒\n【图片发送失败, 请联系维护者】"), ) } }) }