()
| 23 | ) |
| 24 | |
| 25 | func 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) |
nothing calls this directly
no test coverage detected