MCPcopy Index your code
hub / github.com/FloatTech/ZeroBot-Plugin / init

Function init

plugin/nwife/main.go:25–140  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

23)
24
25func init() {
26 engine := control.AutoRegister(&ctrl.Options[*zero.Ctx]{
27 DisableOnDefault: false,
28 Brief: "本地老婆",
29 Help: "- 抽wife[@xxx]\n- 添加wife[名字][图片]\n- 删除wife[名字]\n- [让 | 不让]所有人均可添加wife",
30 PrivateDataFolder: "nwife",
31 })
32 base := engine.DataFolder()
33 baseuri := "file:///" + file.BOTPATH + "/" + base
34 engine.OnPrefix("抽wife", zero.OnlyGroup).SetBlock(true).
35 Handle(func(ctx *zero.Ctx) {
36 grpf := strconv.FormatInt(ctx.Event.GroupID, 36)
37 wifes, err := os.ReadDir(base + grpf)
38 if err != nil {
39 ctx.SendChain(message.Text("一个wife也没有哦~"))
40 return
41 }
42 switch len(wifes) {
43 case 0:
44 ctx.SendChain(message.Text("一个wife也没有哦~"))
45 case 1:
46 wn := wifes[0].Name()
47 ctx.SendChain(message.Text("大家的wife都是", wn, "\n"), message.Image(baseuri+grpf+"/"+wn), message.Text("\n哦~"))
48 default:
49 // 获取名字
50 name := ctx.NickName()
51 now := time.Now()
52 s := md5.Sum(helper.StringToBytes(fmt.Sprintf("%s%d%d%d", name, now.Year(), now.Month(), now.Day())))
53 r := rand.New(rand.NewSource(int64(binary.LittleEndian.Uint64(s[:]))))
54 n := r.Intn(len(wifes))
55 wn := wifes[n].Name()
56 ctx.SendChain(message.Text(name, "的wife是", wn, "\n"), message.Image(baseuri+grpf+"/"+wn), message.Text("\n哦~"))
57 }
58 })
59 // 上传一张图
60 engine.OnPrefix("添加wife", zero.OnlyGroup, chkAddWifePermission, zero.MustProvidePicture).SetBlock(true).
61 Handle(func(ctx *zero.Ctx) {
62 name := ""
63 for _, elem := range ctx.Event.Message {
64 if elem.Type == "text" {
65 name = strings.ReplaceAll(elem.Data["text"], " ", "")
66 name = name[strings.LastIndex(name, "添加wife")+10:]
67 name = strings.ReplaceAll(name, "/", "")
68 name = strings.ReplaceAll(name, "\\", "")
69 break
70 }
71 }
72 if name != "" {
73 url := ctx.State["image_url"].([]string)[0]
74 grpfolder := base + strconv.FormatInt(ctx.Event.GroupID, 36)
75 if file.IsNotExist(grpfolder) {
76 err := os.Mkdir(grpfolder, 0755)
77 if err != nil {
78 ctx.SendChain(message.Reply(ctx.Event.MessageID), message.Text("错误:", err.Error()))
79 return
80 }
81 }
82 err := file.DownloadTo(url, grpfolder+"/"+name)

Callers

nothing calls this directly

Calls 3

setEveryoneCanAddWifeFunction · 0.85
MonthMethod · 0.80
DayMethod · 0.80

Tested by

no test coverage detected