1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- // wechat
- //
- // Description: wechat service
- //
- // Schemes: http, https
- // Host: localhost:0
- // BasePath: /
- // Version: 0.0.1
- // SecurityDefinitions:
- // Token:
- // type: apiKey
- // name: Authorization
- // in: header
- // Security:
- // - Token: []
- // Consumes:
- // - application/json
- //
- // Produces:
- // - application/json
- //
- // swagger:meta
- package main
- import (
- "flag"
- "fmt"
- "github.com/zeromicro/go-zero/core/logx"
- "wechat-api/crontask"
- "wechat-api/internal/config"
- "wechat-api/internal/handler"
- "wechat-api/internal/service/MessageHandlers"
- "wechat-api/internal/svc"
- "github.com/robfig/cron/v3"
- "github.com/zeromicro/go-zero/core/conf"
- "github.com/zeromicro/go-zero/rest"
- )
- var configFile = flag.String("f", "etc/wechat.yaml", "the config file")
- func main() {
- flag.Parse()
- var c config.Config
- conf.MustLoad(*configFile, &c, conf.UseEnv())
- server := rest.MustNewServer(c.RestConf, rest.WithCors(c.CROSConf.Address))
- defer server.Stop()
- ctx := svc.NewServiceContext(c)
- //注册路由
- handler.RegisterHandlers(server, ctx)
- //注册wechat_ws 通道
- wechatHandler := MessageHandlers.NewMessageHandler(ctx)
- //注册企业微信处理程序
- wecomHandler := MessageHandlers.NewMessageHandler(ctx)
- wechatHandler.RegisterStrategies(MessageHandlers.GetWechatStrategies())
- wecomHandler.RegisterStrategies(MessageHandlers.GetWecomStrategies())
- //个微处理程序 没有彻底完成之前不能开,和cow重复了
- if len(ctx.WechatWs) == 0 {
- fmt.Println("wechat ws is nil")
- } else if ctx.WechatWs["default"] != nil {
- //var ic channel.IChannel
- for _, ws := range ctx.WechatWs {
- ws.RegisterMessageHandler(MessageHandlers.NewChatroomPushNoticeHandler(ctx).Handler)
- ws.RegisterMessageHandler(MessageHandlers.NewTalkToFriendTaskResultNoticeHandler(ctx).Handler)
- ws.RegisterMessageHandler(wechatHandler.GetWrappedHandler())
- }
- logx.Info("注册个微处理通道~")
- }
- if len(ctx.WecomWs) == 0 {
- fmt.Println("wecom ws is nil")
- } else if ctx.WecomWs["default"] != nil {
- //var ic channel.IChannel
- for _, ws := range ctx.WecomWs {
- ws.RegisterMessageHandler(MessageHandlers.NewTalkToFriendTaskResultNoticeHandler(ctx).Handler)
- ws.RegisterMessageHandler(wecomHandler.GetWrappedHandler())
- }
- logx.Info("注册企微处理通道~")
- }
- //注册cron任务
- cronCtx := cron.New(cron.WithChain(
- cron.SkipIfStillRunning(cron.DefaultLogger),
- cron.Recover(cron.DefaultLogger),
- ))
- crontask.ScheduleRun(cronCtx, ctx)
- go cronCtx.Start()
- defer cronCtx.Stop()
- fmt.Printf("Starting server at %s:%d...\n", c.Host, c.Port)
- server.Start()
- }
|