DAZHA大渣

  • 主页
  • 随笔
  • about
总文章数: 11
所有文章 友链 关于我

DAZHA大渣

  • 主页
  • 随笔
  • about

酷Q机器人插件——小渣抓取机器人

2019-08-26 阅读量
字数:972字 | 预计阅读时长:4分钟

酷Q机器人插件——小渣抓取机器人

难度:中等

应用技术:基于酷Q机器人Air开发的聊天记录机器人,分别包括Python版本以及C++版本

主要收获:

  • 开发了自己第一款有实际用途的应用插件
  • 尝试阅读官方文档使用了对应API开发应用

不足:

  • Python版本的官方接口并不完善,无法进行打包应用,所以需要用户自行安装开发环境

  • C++由于开发难度较大,许多功能由于技术原因无法实现,只好暂时搁置

使用方法:(Python版本)

  1. 安装Python环境:

    https://gitee.com/muxiaofei/coolq_sdk_x/wikis/pages

  2. 将 酷Q Air\app\cn.muxiaofei.coolq_sdk_x目录下 CQPlusHandler.py文件替换

  3. 启用酷Q中的应用小渣抓取机器人,并重载应用

  4. 向机器人发送$readme指令,并根据指令来进行操作

具体功能:

  1. 可以将每天的聊天记录按天以text文本的格式保存
  2. 可以设置关键词(如ID,时间,内容,发送人等等)来在当天消息记录中搜索相关内容
  3. 通过指令查询,添加,删除关键词

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
># -*- coding:utf-8 -*-
>
>import cqplus
>import datetime
>import os
>now_time = datetime.datetime.now()
>today_time = datetime.datetime.strftime(now_time, '%Y-%m-%d') + ".txt"
>read_me_1 = "'$check'指令:根据关键词搜索今天相关的内容"
>read_me_2 = "'$show'指令:列出现在所有的关键词内容"
>read_me_3 = "'$clear'指令:清除目前所有关键词"
>read_me_4 = "'$add''keyword'指令:增加关键词 例如$add学习,则学习为新的关键词"
>class MainHandler(cqplus.CQPlusHandler):
> def handle_event(self, event, params):
> #self.logging.debug("hello world")
> if event == "on_timer":
> for key in params:
> self.logging.debug(key + " value : "+ str(type(params[key])))
># if type(params[key]) == dict:
># for key2 in params[key]:
># if key2 == "TIMER":
># continue
># self.logging.debug(key2 + " value2 : "+ str(params[key][key2]))
> pass
> elif event == "on_private_msg":
> self.logging.debug(event)
> self.logging.debug(str(params["from_qq"]))
> self.logging.debug(params["msg"])
> self.logging.debug(str(params["msg_id"]))
> if params["msg"] == "$readme":
> cqplus._api.send_private_msg(params["env"], params["from_qq"], read_me_1)
> cqplus._api.send_private_msg(params["env"], params["from_qq"], read_me_2)
> cqplus._api.send_private_msg(params["env"], params["from_qq"], read_me_3)
> cqplus._api.send_private_msg(params["env"], params["from_qq"], read_me_4)
> if params["msg"] == "$show":
> keyword_str = open("keyword_list.txt", encoding='utf-8')
> keyword_str_line = keyword_str.read()
> if os.path.getsize("keyword_list.txt") == 0:
> cqplus._api.send_private_msg(params["env"], params["from_qq"], "内容是空的哦!( ̄▽ ̄)")
> else:
> cqplus._api.send_private_msg(params["env"], params["from_qq"], keyword_str_line)
> if params["msg"] == "$clear":
> keyword_clear = open("keyword_list.txt", "w+")
> cqplus._api.send_private_msg(params["env"], params["from_qq"], "清空了哦!(●ˇ∀ˇ●)")
> if params["msg"].startswith("$add"):
> keyword_add_read = open("keyword_list.txt", encoding='utf-8')
> keyword_add_write =open("keyword_list.txt", "a+", encoding='utf-8')
> keyword_add_str = keyword_add_read.read()
> if len(keyword_add_str) > 1:
> keyword_add_write.write('\n')
> keyword_add_write.write(params["msg"].strip("$add+"))
> cqplus._api.send_private_msg(params["env"], params["from_qq"], "添加成功了哦!(●'◡'●)")
> if params["msg"] == "jonsnow19":
> cqplus._api.send_private_msg(params["env"],params["from_qq"],"Happy Birthday!(o゚v゚)ノ")
>
> if str(params["msg"]) == "$check":
> cqplus._api.send_private_msg(params["env"], params["from_qq"], "稍等")
> num = 0
> for line in open(today_time):
> for lines in open("keyword_list.txt", encoding='utf-8'):
> if line.find(lines.encode('utf-8').decode('utf-8-sig').strip()) >= 0:
> cqplus._api.send_private_msg(params["env"], params["from_qq"], line)
> num += 1
> if num == 0:
> cqplus._api.send_private_msg(params["env"], params["from_qq"], "抱歉,没有找到哦(っ °Д °;)っ")
> file_log = open(today_time, "a+")
> file_log.write("类型:private ")
> file_log.write("消息ID:" + str(params["msg_id"]) + ' ')
> file_log.write("来自:" + str(params["from_qq"]) + " ") # params["msg"] 为消息
> file_log.write("内容:" + str(params["msg"]) + " ")
> # file_log.write('\r\t')
> time1 = datetime.datetime.now()
> time1_string = datetime.datetime.strftime(time1, '%Y-%m-%d %H:%M:%S')
> file_log.write("时间:" + time1_string + "\n")
> # for key in params:
> # self.logging.debug(key + " value : "+ str(type(params[key])))
> # pass
>
> elif event == "on_group_msg":
> self.logging.debug(event)
> for key in params:
> self.logging.debug(key + " value : " + str(params[key]))
> pass
> #cqplus._api.send_group_msg(params["env"], params["from_group"], params["msg"])
> file_log.write("类型:group ")
> file_log.write("消息ID:" + str(params["msg_id"]) + ' ')
> file_log.write("来自群:" + str(params["from_group"]) + " ") # params["msg"] 为消息
> file_log.write("来自人:" + str(params["from_qq"]) + " ")
> file_log.write("内容:" + str(params["msg"]) + " ")
> time1 = datetime.datetime.now()
> time1_string = datetime.datetime.strftime(time1, '%Y-%m-%d %H:%M:%S')
> file_log.write("时间:" + time1_string + '\n')
>
>
赏

谢谢啦~

支付宝
微信
  • 项目练手

扫一扫,分享到微信

微信分享二维码
Hexo blog 的搭建 以及主题 yilia 的应用
飞碟大战坦克小游戏
© 2019 DAZHA大渣 载入天数...载入时分秒...
本站总访问量次
  • 所有文章
  • 友链
  • 关于我

tag:

  • 环境搭建
  • 读书心得
  • 项目练手

    缺失模块。
    1、请确保node版本大于6.2
    2、在博客根目录(注意不是yilia根目录)执行以下命令:
    npm i hexo-generator-json-content --save

    3、在根目录_config.yml里添加配置:

      jsonContent:
        meta: false
        pages: false
        posts:
          title: true
          date: true
          path: true
          text: false
          raw: false
          content: false
          slug: false
          updated: false
          comments: false
          link: false
          permalink: false
          excerpt: false
          categories: false
          tags: true
    

  • 啥都没有哦
这里是DAZHA大渣的个人博客哦!