manager

package
v0.0.0-...-ff1ea2f Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 4, 2023 License: AGPL-3.0 Imports: 13 Imported by: 0

README

介绍

🔔 注意:以下[]符号内代表此处是需要填写内容,并且不需要[]符号

  • 插件名:command

  • 插件描述:管理群组/私聊

  • 权限:仅限配置的管理员使用,不区分私聊和群聊中使用

  • 指令:

    • 菜单,无权限,任何人可使用
    • menu,和上面的指令一样
    • 设置菜单模式[1|2],默认为模式1文本输出,模式2为网页输出(需要配置公网地址)
  • 插件名:cronjob

  • 插件描述:定时任务

  • 权限:多数配置限配置的管理员使用,不区分私聊和群聊中使用

  • 说明:节假日数据来自holiday-cn

  • 指令:

    • 提醒类任务指令(具体正则请查看代码):
      • 设置每月[]号[]的提醒任务,例如:设置每月8号10:00:00的提醒任务
      • 设置每周[][]的提醒任务,例如:设置每周三10:00:00的提醒任务
      • 设置每天[]的提醒任务,例如:设置每天10:00:00的提醒任务
      • 设置每隔[]的提醒任务,例如:设置每隔1小时的提醒任务
      • 设置[]的提醒任务,例如:设置2023-01-01 15:00:00的提醒任务
      • 设置表达式[]的提醒任务,例如:设置表达式(*/10 * * * * *)的提醒任务
      • 设置工作日[]的提醒任务,例如:设置工作日10:00:00的提醒任务
      • 删除全部提醒任务
    • 插件类任务指令(具体正则请查看代码):
      • 设置每月[]号[]的插件任务,例如:设置每月8号10:00:00的插件任务
      • 设置每周[][]的插件任务,例如:设置每周三10:00:00的插件任务
      • 设置每天[]的插件任务,例如:设置每天10:00:00的插件任务
      • 设置每隔[]的插件任务,例如:设置每隔1小时的插件任务
      • 设置[]的插件任务,例如:设置2023-01-01 15:00:00的插件任务
      • 设置表达式[]的插件任务,例如:设置表达式(*/10 * * * * *)的插件任务
      • 设置工作日[]的插件任务,例如:设置工作日10:00:00的插件任务
      • 删除全部提醒任务
    • 其他指令:
      • 列出所有任务
      • 删除任务 [任务ID]
      • 删除全部任务
  • 扩展:

    • 插件类任务指令设置后需要回复要执行的插件指令,可以与插件进行联动。比如设置一个每天早晨 8:00 的插件任务,插件指令内容为"北京天气",到时间就会调起weather插件,输出北京的天气信息
    • preview.png

Documentation

Index

Constants

View Source
const (
	JobTypeRemind = "remind" // 提醒类任务
	JobTypePlugin = "plugin" // 插件类任务
)
View Source
const (
	RegexOfPluginEveryMonth  = `^设置每月(0?[1-9]|[12][0-9]|3[01])号(([01]?[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9])的插件任务`
	RegexOfPluginEveryWeek   = `^设置每周(一|二|三|四|五|六|七|日)(([01]?[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9])的插件任务`
	RegexOfPluginEveryDay    = `^设置每天(([01]?[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9])的插件任务`
	RegexOfPluginInterval    = `^设置每隔(\d+)(s|秒|m|分|分钟|h|时|d|小时)的插件任务`
	RegexOfPluginSpecifyTime = `` /* 126-byte string literal not displayed */
	RegexOfPluginExpression  = `` /* 336-byte string literal not displayed */
	RegexOfPluginWorkDay     = `^设置工作日(([01]?[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9])的插件任务$`
)
View Source
const (
	RegexOfRemindEveryMonth  = `^设置每月(0?[1-9]|[12][0-9]|3[01])号(([01]?[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9])的提醒任务$`
	RegexOfRemindEveryWeek   = `^设置每周(一|二|三|四|五|六|七|日)(([01]?[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9])的提醒任务$`
	RegexOfRemindEveryDay    = `^设置每天(([01]?[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9])的提醒任务$`
	RegexOfRemindInterval    = `^设置每隔(\d+)(s|秒|m|分|分钟|h|时|d|小时)的提醒任务$`
	RegexOfRemindSpecifyTime = `` /* 127-byte string literal not displayed */
	RegexOfRemindExpression  = `` /* 337-byte string literal not displayed */
	RegexOfRemindWorkDay     = `^设置工作日(([01]?[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9])的提醒任务$`
)

Variables

This section is empty.

Functions

func AddCronjobForExpression

func AddCronjobForExpression(ctx *robot.Ctx, jobTag string, matched []string, f func()) (*gocron.Job, error)

AddCronjobForExpression 添加表达式提醒

func AddCronjobForInterval

func AddCronjobForInterval(ctx *robot.Ctx, jobTag string, matched []string, f func()) (*gocron.Job, error)

AddCronjobForInterval 添加间隔提醒

func AddCronjobForSpecifyTime

func AddCronjobForSpecifyTime(ctx *robot.Ctx, jobTag string, matched []string, f func()) (*gocron.Job, error)

AddCronjobForSpecifyTime 添加指定时间提醒

func AddCronjobOfEveryDay

func AddCronjobOfEveryDay(ctx *robot.Ctx, jobTag string, matched []string, f func()) (*gocron.Job, error)

AddCronjobOfEveryDay 添加每天提醒

func AddCronjobOfEveryMonth

func AddCronjobOfEveryMonth(ctx *robot.Ctx, jobTag string, matched []string, f func()) (*gocron.Job, error)

AddCronjobOfEveryMonth 添加每月提醒

func AddCronjobOfEveryWeek

func AddCronjobOfEveryWeek(ctx *robot.Ctx, jobTag string, matched []string, f func()) (*gocron.Job, error)

AddCronjobOfEveryWeek 添加每周提醒

func SetPluginCommand

func SetPluginCommand(engine *control.Engine)

SetPluginCommand 设置插件类任务指令

func SetRemindCommand

func SetRemindCommand(engine *control.Engine)

SetRemindCommand 设置提醒类任务指令

Types

type Command

type Command struct {
	MenuMode string `gorm:"column:menu_mode;default:'1'"` // 菜单模式,默认模式一
}

type CronJob

type CronJob struct {
	Id     int64  `gorm:"primary_key"`    // 任务ID
	Tag    string `gorm:"column:tag"`     // 任务标签
	Type   string `gorm:"column:type"`    // 任务类型
	Desc   string `gorm:"column:desc"`    // 任务描述
	WxId   string `gorm:"column:wx_id"`   // 微信ID
	WxName string `gorm:"column:wx_name"` // 微信昵称
	Remind string `gorm:"column:remind"`  // 提醒内容
}
type MenuOptions struct {
	WxId  string `json:"wxId"`
	Menus []struct {
		Name      string `json:"name"`
		Alias     string `json:"alias"`
		Priority  uint64 `json:"priority"`
		Describe  string `json:"describe"`
		DefStatus bool   `json:"defStatus"`
		CurStatus bool   `json:"curStatus"`
	} `json:"menus"`
}

MenuOptions 菜单配置

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL