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

Wechaty Java 移植组件开发 #4

Closed
diaozxin007 opened this issue May 29, 2020 · 18 comments
Closed

Wechaty Java 移植组件开发 #4

diaozxin007 opened this issue May 29, 2020 · 18 comments

Comments

@diaozxin007
Copy link

diaozxin007 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 的方式管理技术社区。

Wechaty Java 移植组件开发

需求介绍

Wechaty 使用 TypeScript 进行开发,目前 Java 移植版也在开发进程中。目前完成基本功能开发,可以实现部分 TypeScript 版本功能。需要继续对 StateSwitch,MemoryCard 等核心组件进行移植开发。

Wechaty是全球最大的开源聊天机器人框架,希望实现基于同一套应用层代码实现不同软件的聊天机器人
Wechaty 作为全球最大的聊天机器人开发者社区之一,提供了非常简单的接口实现,让开发者能够用6行代码就实现自己的一个聊天机器人,如果能把企业微信的会话存档接口封装到 Wechaty 里来,则可以大大简化企业内开发者的开发流程。
因为 Wechaty 是建立在 puppet 系统之上的,puppet 是 Wechaty 依赖的一层抽象层,它定义了底层各个 IM 接入方案需要实现的接口,也正是因为 puppet 抽象层的存在,让很多 Wechaty 开发者可以仅仅通过一个变量,就能够随意切换不同的底层 IM 接入。

项目难度

低(奖金:6000元)

导师联系方式

刁政欣 阿里开发工程师 Author of Java-wechaty diaozxin@gmail.com

项目产出目标

核心目标

  • 将 Wechaty 的 StateSwitch 和 MemoryCard 移植到 Java-wechaty 中。

项目技术栈

  • Java 和 Kotlin

相关资料

@uran0sH
Copy link

uran0sH commented Jun 9, 2020

I am Wenyu Huang and from WHUT. I am familiar with Java and I use it to develop an IM app. I am interested in this project. I would start reading the source code.

@diaozxin007
Copy link
Author

I am Wenyu Huang and from WHUT. I am familiar with Java and I use it to develop an IM app. I am interested in this project. I would start reading the source code.

Thanks for your reply. Please try to run the DingDongbot of java-wechaty.

@LuSingTea
Copy link

我现在是一名大三的学生,对Java比较熟悉,我对ts和移植蛮感兴趣的,我回去看看代码的

@diaozxin007
Copy link
Author

我现在是一名大三的学生,对Java比较熟悉,我对ts和移植蛮感兴趣的,我回去看看代码的

可以申请一个 token 然后尝试把项目跑起来

@LuSingTea
Copy link

你好,我看了一下,好像是用kotlin移植起来会方便一些?kotlin有什么优势吗,我对kotlin不太熟悉
还有他不是有一个image的实例转换吗?java代码好像没有了

@diaozxin007
Copy link
Author

你好,我看了一下,好像是用kotlin移植起来会方便一些?kotlin有什么优势吗,我对kotlin不太熟悉
还有他不是有一个image的实例转换吗?java代码好像没有了

1、kotlin 的选型可以看我写的文章 https://xilidou.com/2020/06/03/java-wechaty/
2、java-wechaty 支持混合编程,kotlin java 都支持。选择你喜欢或者熟悉的语言都可以。
3、如果 Java 中没有的代码,就是还没有具体实现。也可以尝试自己实现或者先绕开这个问题。都不影响 StateSwitch,MemoryCard 的实现。

@LuSingTea
Copy link

MemoryCard好像就是一个key-value的存储数据的地方?
我在typescript那边好像没看到StateSwitch,是在哪个文件中?

@diaozxin007
Copy link
Author

MemoryCard好像就是一个key-value的存储数据的地方?
我在typescript那边好像没看到StateSwitch,是在哪个文件中?

在 ts 中的 wechaty 类中可以看见

@LuSingTea
Copy link

首先要移植的就是这两个吧
https://github.com/huan/state-switch
https://github.com/huan/memory-card

@diaozxin007
Copy link
Author

首先要移植的就是这两个吧
https://github.com/huan/state-switch
https://github.com/huan/memory-card

对的

@bigdaronlee163
Copy link

I am Li Dongxu and I want to participate in this project . Because I am interested in open source projects and have a certain understanding of Java and JS, I 'll read your article first to familiarize myself with the project

@diaozxin007
Copy link
Author

请各位同学通过邮件,私信我你们的微信号。我拉你们进群。

@LuSingTea
Copy link

你好请问一下memory card的里面的multiplex是什么意思?,是代表可以有多个键的意思吗

@LuSingTea
Copy link

[Wechaty Java 移植组件开发] 进度报告

日期:07-19

本周完成的成果

  • memory-card和state-switch移植初步完成
  • 暂时进行了简单的单元测试
  • 对wechaty新增一些事件
  • 对于memory-card添加了阿里云oss的后端

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

困难

  • 对于ts版state-switch的理解出现了问题,导致拖慢了进度
  • 对于kotlin协程的理解还是不够到位,还没利用好kotlin的语言特性
  • 对于整个项目底层还不是很了解

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

开发计划

  • 完善 memory-card的单元测试,进行足够的错误处理
  • 进行state-switch的测试

预计成果

  • 完成memory-card模块的移植

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

暂无

@huan
Copy link
Member

huan commented Jul 20, 2020

Good job, you coding fast!

I'd like to have one suggestion for you: it would be great if we can have a roadmap for your project, including weekly and monthly plans, with the final deliverable specifications.

@LuSingTea
Copy link

[Wechaty Java 移植组件开发] 进度报告

日期:07-27

本周完成的成果

  • memory-card和state-switch测试初步完成
  • 对room,等添加新的api

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

困难

  • 微信小号被封了,导致测试比较麻烦
  • ts和kotlin的使用逻辑不一样,导致整合有可能会出现问题

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

开发计划

  • 将memory-card和stateswitch整合进去项目
  • 完成大部分api的移植,并进行初步的测试

预计成果

  • 完成memory-card和stateswitch的整合
  • 大部分api移植完毕

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

暂无

@LuSingTea
Copy link

[Wechaty Java 移植组件开发] 进度报告

日期:08-12

本周完成的成果

  • 添加剩余的api
  • 修改一些小错误

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

困难

  • 有些方法和预期的不一样,调试一段时间也没有发现是哪里的问题,有可能是底层的问题

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

开发计划

  • 可以尝试写一个针对springboot的启动器
  • 对添加的api进行更多的测试
  • 对api进行风格修改,使之更符合kotlin和Java的风格

预计成果

  • 能够有一个初步使用的starter
  • 大部分api测试完毕

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

暂无

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

huan commented Jan 10, 2021

@diaozxin007 Thanks for the mentoring!

@cunkoulaocai Thank you very much for joining the Wechaty open source project!

@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

5 participants