Skip to content

基与 Blessed 的 Wechaty 命令行文本客户端软件(仿IRC) #80

Description

@huan

开源软件供应链点亮计划

“开源软件供应链点亮计划-暑期2021”(以下简称 暑期2021)是由中科院软件所与 openEuler 社区共同举办的一项面向高校学生的暑期活动,旨在鼓励在校学生积极参与开源软件的开发维护,促进国内优秀开源软件社区的蓬勃发展。

根据项目的难易程度和完成情况,参与者还可获取“开源软件供应链点亮计划-暑期2021”活动奖金和奖杯。

官网:https://summer.iscas.ac.cn

Wechaty

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

Wechaty 官网暑期2021项目入口:https://wechaty.js.org/docs/ospp/2021/

项目名称

基于 Blessed 的 Wechaty 命令行文本客户端软件(防IRC)

Wishlist: wechaty/wishlist#47

背景介绍

Wechaty 社区目前已经支持微信、Whatsapp、企业微信、飞书等常见流行即时通讯工具,并且能够通过多语言 SDK (比如 Python Wechaty) 进行调用。

Blessed 是一个 curses-like library with a high-level terminal interface API for node.js. 基于 Blessed 能够快速的完成命令行文本节目的开发:

blessed

通过 blessed-contrib 可以快速的 Build dashboards (or any other application) using ASCII/ANSI art and javascript, 达到 Friendly to terminals, ssh, and developers. Extends blessed with custom drawille and other widgets 的使用效果。

bless-contrib

我们在本次 Summer 2021 的项目中,Wechaty 希望可以实现对一个基于 Blessed 的 CLI 命令行文本客户端,通过 Wechaty 的基础支持,实现一个能够作为 WeChat, WeCom, Lark, Whatsapp 等所有 Wechaty 支持的 IM 的命令行文本客户端。

客户端的界面设计和交互,可以仿照 Linux 命令行的 IRC 客户端:

image

See more IRC client from here

我们 Wechaty 社区已经有了一些基于 Blessed 的项目和代码,可以参考: Wechaty Twins Bot

image

需求介绍

仿照 Linux 命令行终端的 IRC 文本客户端,实现一个基于 Wechaty 的即时通讯工具客户端,通过 Wechaty 支持所有现有的 Wechaty Puppet Providers,比如微信、企业微信、飞书、Whatsapp等。

在初期开发中,能够实现文本消息的接收和发送,即可完成原型验证 POC 。

项目难度

中(奖金:9,000元)

导师联系方式

李卓桓:Creator of Wechaty, Tencent TVP of Chatbot (huan@chatie.io)

项目产出目标

  1. 每日代码 commit
  2. 每周提交一份 report (回复本 issue)
  3. 每两周一次在线会议
  4. 发布 Git Repo wechaty-cli
  5. 完成完整的联系人列表、聊天对话管理、群列表、群对话管理。
  6. 完成联系人管理、群管理,达到接近现有的 IRC 客户端功能的完整程度
  7. 配置 GitHub Actions 实现自动化测试* (可选)

项目技术栈

  1. TypeScript programming language
  2. Git
  3. Blessed

参考链接

  1. "I'm connected from my VT100" - Chuck Norris https://irc.gitter.im/

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions