Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

编写一个“每日一句”插件 #10

Closed
Gcaufy opened this issue May 29, 2020 · 17 comments
Closed

编写一个“每日一句”插件 #10

Gcaufy opened this issue May 29, 2020 · 17 comments

Comments

@Gcaufy
Copy link

Gcaufy commented May 29, 2020

此次活动

开源软件供应链点亮计划

“开源软件供应链点亮计划-暑期2020”(以下简称 暑期2020)是由中科院软件所与 openEuler 社区共同举办的一项面向高校学生的暑期活动,旨在鼓励在校学生积极参与开源软件的开发维护,促进国内优秀开源软件社区的蓬勃发展。
根据项目的难易程度和完成情况,参与者还可获取“开源软件供应链点亮计划-暑期2020”活动奖金和奖杯。
官网:https://isrc.iscas.ac.cn/summer2020 官方新闻:http://www.iscas.ac.cn/xshd2016/xshy2016/202004/t20200426_5563484.html

Wechaty

Wechaty 是一个开源聊天机器人框架SDK,具有高度封装、高可用的特性,支持NodeJs, Python, Go 和Java 等多语言版本。在过去的4年中,服务了数万名开发者,收获了 Github 的 8000 Star。同时配置了完整的DevOps体系并持续按照Apache 的方式管理技术社区。

编写一个“每日一句”插件

背景说明

利用插件为机器人赋能。
在很多交流群中会有需求说每天的某个时间机器人在群里发送一句话,或者一篇文章咨讯。
这个取决于交流群本身的属性。

比如英文学习群可能需要每天一句英文知识点,
炒股群可能需要每天一则财经资讯。
工作群每天一心灵鸡汤

等等

需求介绍

定制一个每日一句插件

项目难度

低(奖金:6000元)

导师联系方式

20000+Star小程序框架Wepy作者、Wechaty Plugin系统设计师 gcaufy(微信:gcaufy;邮箱:gcaufy@gmail.com

相关资料

https://www.tianapi.com/apiview/174

参考

image

@rickyyin98 rickyyin98 changed the title 【插件】编写一个“每日一句”插件 编写一个“每日一句”插件 May 29, 2020
@huan huan added the Plugin label May 29, 2020
@zsh2517
Copy link

zsh2517 commented Jun 1, 2020

你好,我是哈尔滨工业大学一名大一的学生,希望参加"编写一个“每日一句”插件"项目

目前情况:
没有使用过python-wechaty
但是独立完成多个基于酷Q的聊天机器人(框架是CQHTTP python async SDK)
对于这个项目,技术栈主要需要预先熟悉wechaty API

目前写过符合这两个项目类似需求的QQ机器人。

定时提醒(由于网课其间作业比较散,平台不一,所以做了个QQ机器人到时提醒),当时没有了解apscheduler,所以用的是反复request自身达到定时的效果(根据下一次任务的时间动态调整等待下一次检测的时间,从3s~30min)

对cqhttp python async SDK 二次封装的一个小游戏框架。(这个git库不是最新。后来开发后没有commit和push,都是直接使用),对于指令式的响应(即用户发送一条消息到机器人后机器人进行处理。而非定时任务)进行了封装,可以以模块的形式动态载入不同的模块功能。(例如成语接龙、猜数猜谜、翻译、搜索等等功能均可以实现)。

希望能够加入项目组。谢谢

@daniao2017
Copy link

嗨,你好我也想试下这个项目;
我本人写过一个语音聊天机器人
在项目页有我对这个机器人的功能介绍,也写了很多插件,如
翻译发送邮件爬取网易音乐等等,
对人工智能也有点了解,楼主好像是简单粗暴学tf2的作者?
刚刚结束了那个课程💖💖💖,

@huan
Copy link
Member

huan commented Jun 1, 2020

@daniao2017 @zsh2517 Thank you for your attention with our Wechaty Open-source Project!

And I'm very glad that there is more and more Machine Learning fans join us, I hope you can build more cool Chatbots with the power of ML and Wechaty!

@daniao2017
Copy link

@daniao2017 Thank you for your attention with our Wechaty Open-source Project!

And I'm very glad that there is more and more Machine Learning fans join us, I hope you can build more cool Chatbots with the power of ML and Wechaty!

感谢tf&Wechaty社区的大佬的回信,期待出更多的教程带我们这些萌新前进~~

@penghusile
Copy link

penghusile commented Jun 7, 2020

你好,我是内蒙古大学(211院校)的一名计算机技术专业的研究生,本科同样就读于内蒙古大学。我的项目如下:

  1. 在本科期间合作开发过一款天气预报Android APP,负责预测未来三天天气、选择切换城市以及下拉刷新APP首页部分。
  2. 毕业设计是一款基于iOS平台的蒙古文输入法,具有模糊搜索,语音输入等功能。
  3. 去年研一上半年期间,在一周时间内开发过一款基于springboot的教务系统具有登录、注册以及CURD课程基本信息等功能。

上述项目经历主要是想表达我的学习能力比较强,可以迅速入手并开发该项目。

我查了下资料,大概构思了这个插件的实现,思路如下:基于nodejs编写项目,使用wechaty调用每日一句的API,通过json来交互“每日一句”的数据,这跟我之前的本科项目很相似:通过调用和风天气API,获取相应的Json数据并展示到APP上。

我对这个项目很感兴趣,希望能够加入这个项目。谢谢!

@WangYue-GH
Copy link

导师您好,我是郑州轻工业大学大一的学生,因为疫情不能去学校,我在家自学了python,希望借助老师的这个项目,在暑假期间检验目前自己的学习状况。
相比其他回帖的人,我没有那么多软件开发的经历,我有的只是热血与激情。
我希望老师能给我一个机会,让我加入这个项目。

@univerone
Copy link

[编写一个“每日一句”插件] 进度报告

日期:07-18

本周完成的成果

  • 完成了插件的基本框架
  • 实现了往指定群聊定时发送消息、根据关键词生成打卡图片的基本功能

本周遇到的困难和需要配合的地方

对于异步消息处理的部分不够了解和熟悉

下周的开发计划和预计成果

  • 根据导师的建议优化代码,统一注释规范
  • 引入CI集成,进行npm发布

其他需要说明和同步的事项

暂无

@huan
Copy link
Member

huan commented Jul 19, 2020

Thanks for the update, it seems that you made a great start and please keep moving on, I'm looking forward to seeing your fantastic plugin soon!

@univerone
Copy link

[编写一个“每日一句”插件] 进度报告

日期:07-26

本周完成的成果

发布成NPM包,使用github action进行自动构建和版本更新
优化项目结构
统一注释风格为JSdoc
优化代码

本周遇到的困难和需要配合的地方

对于项目自动化部署还是不够熟悉
对于npm包的构建以及项目结构不够熟悉

下周的开发计划和预计成果

添加测试用例
代码添加异常情况的捕捉和处理
总结构建wechaty项目NPM包的流程和规范

其他需要说明和同步的事项

@Gcaufy
Copy link
Author

Gcaufy commented Aug 2, 2020

[编写一个“每日一句”插件] 导师评分

日期:08 - 02

本周进度报告的评分

  • 1: Deliverable not acceptable
  • 2: Deliverable is below expectations
  • 3: Deliverable is OK
  • 4: Deliverable is above expectations
  • 5: Deliverable is perfect

其他需要说明和同步的事项

优化后代码更为整洁工整,重新整理一下之前的 Review 内容:

Code Review:

  • src/index.ts18 如果是有限类型,为何不是 enum 或者 type?
  • src/index.ts:36 为何使用 Partial, 这里是不是可以用选填属性呢?
  • src/index.ts:90 为何声明 any?
  • src/index.ts:90 参数过多
  • src/index.ts:98 去 console.log
  • src/index.ts:112 只支持配置单个房间吗?
  • src/utils.ts:62 多余 Promise

Nice to have:

  • 代码注释规范统一,建议使用 JSDoc 注释规范。
  • 去除无用代码,如 console.log, 以及纠正部分命名,如 Dingdong。
  • 文件名不使用中文。源码无关图片不放入 git 管理。
  • 关注代码异常处理,对于 await, promise 的异常捕捉。
  • 逻辑进一步抽象,如数据拉取部分,未来支持数据源可配等更灵活的能力。
  • 图片处理依赖文件存储,多次读写。是否可以考虑优化为使用二进制或者 stream。
  • 测试用例补齐。
  • CI 集成, npm 发布。

@univerone
Copy link

[编写一个“每日一句”插件] 进度报告

日期:08-03

本周完成的成果

  1. 支持用户使用3种方式(jsonpath选择器、css选择器以及正则表达式)以及固定的网址自定义数据源
  2. 生成的图片输出为base64字符串
  3. 使用try...catch来进行await, promise 的异常捕捉

本周遇到的困难和需要配合的地方

生成的图片不保存在本地,输出为base64字符串会导致生成图片的时间显著变长,考虑简化图片。

下周的开发计划和预计成果

完成中期报告
完成中期博客的撰写
完成npm包发布流程的总结
更新项目文档

其他需要说明和同步的事项

可以考虑支持使用用户自定义的数据爬取脚本来支持复杂的数据源。
在图像的处理方面花费了较多精力,imagemagick处理图像适用于图像大小以及各参数一定的情况,因此不适合根据不同的文字内容生成打卡图片。

@univerone
Copy link

[编写一个“每日一句”插件] 进度报告

日期:08-08

本周完成的成果

进一步抽象数据抓取模块,支持使用用户自定义的数据抓取函数。
完成npm包发布流程的总结

本周遇到的困难和需要配合的地方

下周的开发计划和预计成果

完成中期报告
完成中期plan blog

其他需要说明和同步的事项

@univerone
Copy link

[编写一个“每日一句”插件] 进度报告

日期:08-16

本周完成的成果

完成中期报告
完成中期plan blog
增加在每日一句信息中提取图片链接,并在文字信息之后依次发送的特性。
针对较长的文字自动分成800字的小段,依次发送。

本周遇到的困难和需要配合的地方

测试较长的大文字的时候,room.say()方法无法发送文字信息,将文字长度减少到800左右发送成功。
因此在代码中添加对较长文字自动分段的功能,使用words.match(/([^]{1,800})/g)实现。

下周的开发计划和预计成果

完善Promise的差错处理
更新文档

其他需要说明和同步的事项

@univerone
Copy link

[编写一个“每日一句”插件] 进度报告

日期:08-25

本周完成的成果

修改中期报告添加iframe
修复每日重复发送信息的bug

本周遇到的困难和需要配合的地方

本周进度缓慢,成果较少。

下周的开发计划和预计成果

完善Promise的差错处理
修改每日一句的打卡图片风格

其他需要说明和同步的事项

@univerone
Copy link

[编写一个“每日一句”插件] 进度报告

日期:09-21

本周完成的成果

完成项目logo的设计

本周遇到的困难和需要配合的地方

遇到重复发送多次消息的情况,修改了几次node-schedule相关代码仍然会偶尔出现

下周的开发计划和预计成果

修改每日一句的打卡图片风格
更新readme文档
写每日一句的soc博客

其他需要说明和同步的事项

@univerone
Copy link

univerone commented Sep 27, 2020

[编写一个“每日一句”插件] 进度报告

日期:09-27

本周完成的成果

完成结项报告的撰写
录制结项PPT视频
添加新的打卡图片风格

本周遇到的困难和需要配合的地方

下周的开发计划和预计成果

其他需要说明和同步的事项

@huan huan added the summer2020 label Jan 4, 2021
@huan
Copy link
Member

huan commented Jan 10, 2021

@Gcaufy Thanks for the mentoring!

@univerone Thank you very much for joining the Wechaty open source project and finished Summer 2020 successfully!

@huan huan closed this as completed Jan 10, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

7 participants