> **Notice: Wechaty requires Node.js version >= 6.9.0**
This bot can log all message to console.
This bot can log all messages to the console.
You can find more example from [Wiki](https://github.com/chatie/wechaty/wiki/Example) and [Example Directory](https://github.com/chatie/wechaty/blob/master/example/).
You can find more examples from [Wiki](https://github.com/chatie/wechaty/wiki/Example) and [Example Directory](https://github.com/chatie/wechaty/blob/master/example/).
# Getting Started
...
...
@@ -77,13 +77,13 @@ You can find more example from [Wiki](https://github.com/chatie/wechaty/wiki/Exa
The **best practice** to use Wechaty is run by docker, becasue it's not only the most easy way to get start, but also protect you out of the troubles of dependencies problems.
The **best practice** to use Wechaty is running with docker, because it's not only the most easy way to get started, but also protects you from the troubles of dependency problems.
```shell
$ docker run -ti--rm--volume="$(pwd)":/bot zixia/wechaty mybot.js
```
> Wechaty Docker support to run TypeScript directly as well: just write in TypeScript and save to `mybot.ts`.
> Wechaty Docker supports running TypeScript directly as well: just write in TypeScript and save to `mybot.ts`.
Get to know more about Wechaty Docker at [Wiki:Docker](https://github.com/chatie/wechaty/wiki/Docker).
...
...
@@ -135,28 +135,28 @@ Get to know more about NPM at [Wiki:NPM](https://github.com/chatie/wechaty/wiki/
1.[from():Contact](https://github.com/chatie/wechaty/wiki/API#1-messagefrom-contact) get the sender from a message
2.[from(contact:Contact):void](https://github.com/chatie/wechaty/wiki/API#2-messagefromcontact-contact-void) set a sender to the message
4.[to():Contact](https://github.com/chatie/wechaty/wiki/API#1-messageto-contact) get the destination of the message
1.[from():Contact](https://github.com/chatie/wechaty/wiki/API#1-messagefrom-contact) get the sender of a message
2.[from(contact:Contact):void](https://github.com/chatie/wechaty/wiki/API#2-messagefromcontact-contact-void) set a sender of the message
4.[to():Contact](https://github.com/chatie/wechaty/wiki/API#1-messageto-contact) get the destination for the message
5.[to(contact:Contact):void](https://github.com/chatie/wechaty/wiki/API#2-messagetocontact-contact-void) set the destination as contact for the message
7.[content():string](https://github.com/chatie/wechaty/wiki/API#1-messagecontent-string) get the content of the message
8.[content(content:string):string](https://github.com/chatie/wechaty/wiki/API#2-messagecontentcontent-string-string) set the content for the message
9.[room():Room|null](https://github.com/chatie/wechaty/wiki/API#1-messageroom-room--null) get the room from a message.
10.[room(room:Room):void](https://github.com/chatie/wechaty/wiki/API#2-messageroomroom-room-void) set the room for a message.
12.[type():MsgType](https://github.com/chatie/wechaty/wiki/API#messagetype-number) get the type of a Message.
13.[say(content:string):Promise](https://github.com/chatie/wechaty/wiki/API#messagesaycontent-string-promise)reply a message to the sender.
13.[say(content:string):Promise](https://github.com/chatie/wechaty/wiki/API#messagesaycontent-string-promise)send a reply message to the sender.
15.[self():boolean](https://github.com/chatie/wechaty/wiki/API#messageselfmessage-message-boolean) check if a message is sent by self
1.[say(content:string,replyTo:Contact|ContactArray):Promise](https://github.com/chatie/wechaty/wiki/API#roomsaycontent-string-replyto-contactcontact-promise) say content inside Room.
1.[say(content:string,replyTo:Contact|ContactArray):Promise](https://github.com/chatie/wechaty/wiki/API#roomsaycontent-string-replyto-contactcontact-promise) send a message inside Room.
3.[refresh():Promise](https://github.com/chatie/wechaty/wiki/API#roomrefresh-promise) reload data for Room
@@ -220,20 +220,20 @@ Create a media message object.
Get embed html/markdown code from [Wiki:PoweredByWechaty](https://github.com/chatie/wechaty/wiki/PoweredByWechaty)
## Projects Use Wechaty
## Projects Using Wechaty
1.[Relay between Telegram and WeChat](https://github.com/Firaenix/TeleChatRelay)
1.[A chat bot managing the HaoShiYou wechat groups run by volunteers of haoshiyou.org](https://github.com/xinbenlv/haoshiyou-bot)
1.[A chat interactive bot to manage TODO list](https://github.com/coderbunker/candobot)
1.[An interactive chat bot to manage a TODO list](https://github.com/coderbunker/candobot)
1.[Forward WeChat messages to telegram](https://github.com/luosheng/Wegram)
Know more about Projects Use Wechaty at [Wiki:PoweredByWechaty](https://github.com/chatie/wechaty/wiki/PoweredByWechaty)
Learn more about Projects Using Wechaty at [Wiki:PoweredByWechaty](https://github.com/chatie/wechaty/wiki/PoweredByWechaty)
## Find a Good Server
The best practice for runing Wechaty Docker/NPM is using a VPS(Virtual Private Server) outside of China, which can save you hours of time because `npm install` and `docker pull` will run smoothly without any problem.
The best practice for running Wechaty Docker/NPM is using a VPS(Virtual Private Server) outside of China, which can save you hours of time because `npm install` and `docker pull` will run smoothly without any problem.
The following VPS providers is used by ourselves, they worked perfectly in production. You can use the following link to get one in minutes, and also do this can support Wechaty because you are refered by us.
The following VPS providers are used by the Wechaty team, and they worked perfectly in production. You can use the following link to get one in minutes. Also, doing this can support Wechaty because you are referred by us.
| Location | Price | Ram | Payment | Provider |
| --- | --- | --- | --- | --- |
...
...
@@ -287,17 +287,17 @@ Scan now, because other Wechaty developers want to talk with you too! (secret co
Documentation
-------------
In order to sync the doc with the lastest code for best, Wechaty use [jsdoc](http://usejsdoc.org/) to descript API, and use [jsdoc-to-markdown](https://github.com/jsdoc2md/jsdoc-to-markdown/wiki) to generate markdown format document to[docs](docs/index.md) directory.
In order to sync the doc with the lastest code, it's best to use [jsdoc](http://usejsdoc.org/) to describe the API, and use [jsdoc-to-markdown](https://github.com/jsdoc2md/jsdoc-to-markdown/wiki) to generate markdown format documents to the[docs](docs/index.md) directory.
My Story
--------
My daily life/work depends on too much chat on wechat.
* I almost have 14,000 wechat friends in May 2014, before wechat restricts a total number of friends to 5,000.
* I almost have 400 wechat rooms that most of them have more than 400 members.
* I almost have 400 wechat rooms, and most of them have more than 400 members.
Can you image that? I'm dying...
Can you imagine that? I'm dying...
So a tireless bot working for me 24x7 on wechat, monitoring/filtering the most important message is badly needed. For example highlights discussion which contains the KEYWORDS which I want to follow up(especially in a noisy room). ;-)
So a tireless bot working for me 24x7 on wechat, monitoring/filtering the most important message is badly needed. For example, it highlights discussion which contains the KEYWORDS which I want to follow up(especially in a noisy room). ;-)
At last, It's built for my personal study purpose of Automatically Testing.