rahimnathwani / haoshiyou-bot

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Haoshiyou-Bot

Powered by Wechaty

A chat bot supported on WeChaty, managing the HaoShiYou wechat groups run by volunteers of haoshiyou.org

Quick Start

To start running in a docker

docker run --env CLOUDINARY_SECRET=$CLOUDINARY_SECRET -ti --volume="$(pwd)":/bot --rm zixia/wechaty src/main.ts

Query server link

http://haoshiyou-server-dev.herokuapp.com/api/HsyListings?filter={%22where%22:%20{%22uid%22:%22group-collected-%E5%91%A8%E8%BD%BD%E5%8D%97%22}}

Or http://haoshiyou-server-dev.herokuapp.com/api/HsyListings?filter={%22where%22:%20{%22uid%22:%22group-collected-%E5%91%A8%E8%BD%BD%E5%8D%97%22}}

Roadmap

  • Basic function

    • Auto-accept Friend Request
    • Detect user group-join intention to add to a specific group
    • Delete user when groups approach to max member limit - say, 480 members.
      • Never delete group admins (a whitelist).
      • Delete the first 30 members that are not renaming their nick names in the designated format.
      • Delete the first 10 members that was added to the group the earliests.
    • Privately poked group members who haven't update the group nickname.
    • Automatically delete friends if approaching 5000 friends cap.
  • Logging

    • Logging chat data for future research.
  • Integration function

    • Auto-detect an user is posting a listing of for rent or find home.
    • Append all pictures to the listing
    • Add information about area and type
    • Post to Haoshiyou-Server
  • Advance function

    • Extract time, price, type from a list post
    • Based on conversation session state, etract photos posted followed by the previous post.
    • Post to Haoshiyou-Server with extracted information, and create account.
  • Management Function

    • Kick a group member if received kicking instruction from a group and add blacklist
    • Honor black list in the remarks
    • Whoever is trying to invite a blacklisted user will be blacklisted and kickout as weel
  • Productivity

    • Hot reload typescript
    • Refactor the code to split each event handler into a separate file

About


Languages

Language:TypeScript 100.0%