Giter Site home page Giter Site logo

timetask's Introduction

timetask

一款支持自定义定时任务的chatgpt-on-wechat插件,支持自定义时间、轮询周期、自定义时间,包含动态添加任务、取消任务、查看任务列表等功能,一款定时任务系统的插件。

【插件功能介绍】

🎉功能一:

支持用户设定时间,添加定时任务,定时自动发消息;

  • 时间支持自定义
  • 日期支持轮询,支持每天、每周、工作日、具体日期、cron表达式等
🎉功能二:

支持 普通的提醒消息、及链接其他插件的拓展功能。比如早报、点歌、搜索、转发GPT等,理论上已安装的插件均可一键调度

🎉功能三:

支持动态的取消定时任务、随时查看任务列表等

🎉功能四:

无侵入性,原项目无需改造,安装插件即可使用

【插件安装方法】

  1. clone本仓库 或 下载源代码(源码下载方式时,timetask文件夹会自动带上分支名,将文件夹名称去除,命名timetask为即可)
  2. 将本插件的文件夹timetask, 放进 chatgpt-on-wechat 的 plugins 文件夹中(chatgpt-on-wechat启动后,会自动加载本插件)
  3. 安装插件依赖库:进入 timetask 文件夹,执行命令:pip3 install -r requirements.txt
  4. 至此,插件安转完毕,启动chatgpt-on-wechat,使用 timetask 插件

【如何使用 - 定时任务】

Tips:与机器人对话,发送如下定时任务指令即可

一、添加定时任务

【指令格式】:$time 周期 时间 事件

  1. $time:指令前缀,当聊天内容以$time开头时,则会被当做为定时指令
  2. 周期:今天、明天、后天、每天、工作日、每周X(如:每周三)、YYYY-MM-DD的日期、cron表达式
  3. 时间:X点X分(如:十点十分)、HH:mm:ss的时间
  4. 事件:想要做的事情 (支持普通提醒、以及项目中的拓展插件,详情如下)
事件-拓展功能:默认已支持早报、搜索、点歌

示例 - 早报:$time 每天 10:30 早报
示例 - 点歌:$time 明天 10:30 点歌 演员
示例 - 搜索:$time 每周三 10:30 搜索 乌克兰局势
示例 - 提醒:$time 每周三 10:30 提醒我健身
示例 - cron:$time cron[0 * * * *] 准点报时
示例 - GPT:$time 每周三 10:30 GPT 夸一夸我
示例 - 画画:$time 每周三 10:30 GPT 画一只小老虎

拓展功能效果:将在对应时间点,自动执行拓展插件功能,发送早报、点歌、搜索等功能。
文案提醒效果:将在对应时间点,自动提醒(如:提醒我健身)

Tips:拓展功能需要项目已安装该插件,更多自定义插件支持可在
 timetask/config.json 的 extension_function 自助配置即可。

添加任务示例:

a、指令: $time 明天 十点十分 提醒我健身

b、指令执行成功,如下 :
	恭喜你,⏰定时任务已创建成功🎉~
   【任务ID】:lwmZxAS5
   【任务详情】:提醒吃晚饭
    
效果:机器人会回复 任务ID 及 任务详情

定时任务执行示例:

⏰叮铃铃,定时任务时间已到啦~
【任务ID】:rqqko22d
【任务详情】:定时提醒
    
效果:机器人会回复 任务ID 及 任务详情

二、取消定时任务

方法一、直接通过任务ID,取消定时任务

【指令格式】:$time 取消任务 任务ID

  1. $time 取消任务:指令前缀,以此前缀,会取消定时任务
  2. 任务ID:机器人回复的任务ID(添加任务成功时,机器人回复中有)

示例:

a、指令:$time 取消任务 lyMUeRsm

b、指令执行成功,如下 :
	 ⏰定时任务,取消成功~
    【任务ID】:lyMUeRsm
    【任务详情】:2023-06-28 10:10:00 提醒我健身

效果:将会将对应任务ID取消,可通过任务列表查看,若任务ID不存在,则取消失败
方法二、先查询任务ID列表,然后选择要取消的任务ID,取消定时任务
  1. 【指令格式】:$time 任务列表
a、指令:$time 任务列表

b、指令执行成功,将会将任务列表展示如下:
⏰定时任务列表如下:

【vc6q51aM】@每日学习打卡: 2023-06-28 09:30:00 搜索 乌克兰最新战报
【01cMy68M】@每日学习打卡: 2023-06-28 09:50:00 早报
【lwmZxAS5】@每日学习打卡: 2023-06-28 17:30:00 提醒吃晚饭
【rqqko22d】@仰望同一片星空: cron[5 * * * *] 定时提醒

 
效果:指令执行成后,机器人会将所有 待执行的任务列表,回复出来。
  1. 根据任务列表,选择要取消的任务ID,执行上面的方法一(直接通过任务ID,取消定时任务)
指令:$time 取消任务 vc6q51aM

三、查看定时任务列表

【指令格式】:$time 任务列表

  • 指令执行成后,机器人会将所有 待执行的任务列表,回复出来
  • 已过期或已被消费过的任务会自动过滤
a、指令:$time 任务列表

b、指令执行成功,将会将任务列表展示如下:
⏰定时任务列表如下:

【vc6q51aM】@每日学习打卡: 2023-06-28 09:30:00 搜索 乌克兰最新战报
【01cMy68M】@每日学习打卡: 2023-06-28 09:50:00 早报
【lwmZxAS5】@每日学习打卡: 2023-06-28 17:30:00 提醒吃晚饭
【rqqko22d】@仰望同一片星空: cron[5 * * * *] 定时提醒

 
效果:指令执行成后,机器人会将所有 待执行的任务列表,回复出来。

四、插件文件介绍

配置文件:config.json
{
  #定时任务前缀(以该前缀时,会被定时任务插件捕获)
  "command_prefix": "$time", 
  
  #是否开启debug(会输出日志)
  "debug": false,  
  
  #检测频率(默认1秒一次,注意不建议修改!!如果任务带秒钟,则可能会被跳过)
  "time_check_rate": 1, 
  
  #Excel中迁移任务的时间(默认在凌晨4点将Excel 任务列表sheet 中失效的任务 迁移至 -> 历史任务sheet中)
  "move_historyTask_time": "04:00:00", 
  
  #是否开启拓展功能(开启后,会识别项目中已安装的插件,如果命中 extension_function中的前缀,则会将消息路由转发给目标插件)
  "is_open_extension_function": true,
  
  #支持的拓展功能列表(理论上 已安装的插件,均支持路由转发,其他插件可自主配置,参考早报的配置方式)
  "extension_function":
  [
    {
      # 触发词
      "key_word": "早报",
      
      # 路由插件的 指令前缀
      "func_command_prefix":"$tool "
    },
    {
      "key_word": "点歌",
      "func_command_prefix": "$"
    },
    {
      "key_word": "搜索",
      "func_command_prefix": "$tool google "
    },
    {
      # 触发词
      "key_word": "GPT",
      "func_command_prefix": "GPT"
    }
  ]
}
任务Excel文件:timetask/timeTask.xlsx
定时任务 - sheet: 存放当天要消费的任务

历史任务 - sheet: 存放历史已消费的任务

timetask's People

Contributors

haikerapples avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.