forked from wts/wts
108 lines
1.9 KiB
Go
108 lines
1.9 KiB
Go
package main
|
|
|
|
import (
|
|
"errors"
|
|
"os"
|
|
|
|
"zsxyww.com/wts/config"
|
|
"zsxyww.com/wts/handler/logic"
|
|
"zsxyww.com/wts/wechat"
|
|
)
|
|
|
|
func setDefaultWXMenu(cfg *config.Config, file string) error {
|
|
|
|
wx := wechat.Setup(cfg)
|
|
menu := wx.GetMenu()
|
|
|
|
if file == "" {
|
|
err := errors.New("no menu file selected")
|
|
return err
|
|
}
|
|
content, err := os.ReadFile(file)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
err = menu.SetMenuByJSON(string(content))
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func setWXTags(cfg *config.Config, newTag string) error {
|
|
wx := wechat.Setup(cfg)
|
|
u := wx.GetUser()
|
|
|
|
if newTag == "" {
|
|
err := errors.New("no tag selected")
|
|
return err
|
|
}
|
|
tag, err := u.CreateTag(newTag)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
println(tag, " Created tag with ID:", tag.ID)
|
|
return nil
|
|
}
|
|
|
|
func getWXTags(cfg *config.Config) error {
|
|
wx := wechat.Setup(cfg)
|
|
u := wx.GetUser()
|
|
|
|
tags, err := u.GetTag()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
for _, tag := range tags {
|
|
println("Tag ID:", tag.ID, "Name:", tag.Name, "Count:", tag.Count)
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func setConditionalMenu(cfg *config.Config, file string) error {
|
|
|
|
wx := wechat.Setup(cfg)
|
|
menu := wx.GetMenu()
|
|
|
|
if file == "" {
|
|
err := errors.New("no menu file selected")
|
|
return err
|
|
}
|
|
content, err := os.ReadFile(file)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
err = menu.AddConditionalByJSON(string(content))
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func setWXMenu(cfg *config.Config, group string, file string) error {
|
|
switch group {
|
|
case "default":
|
|
return setDefaultWXMenu(cfg, file)
|
|
case "operator":
|
|
return setConditionalMenu(cfg, file)
|
|
case "admin":
|
|
return setConditionalMenu(cfg, file)
|
|
default:
|
|
return errors.New("unknown menu group: " + group)
|
|
}
|
|
}
|
|
|
|
func changeWXTag(cfg *config.Config, openID string, tag string) error {
|
|
if tag != "default" && tag != "operator" && tag != "admin" {
|
|
return errors.New("unknown tag: " + tag)
|
|
}
|
|
|
|
ctx := logic.Ctx{
|
|
WX: wechat.Setup(cfg),
|
|
}
|
|
return ctx.ChangeUserTag(openID, tag)
|
|
|
|
}
|