|
3 | 3 | [](https://travis-ci.org/priscillachat/priscilla) |
4 | 4 | [](https://codeclimate.com/github/priscillachat/priscilla) |
5 | 5 |
|
6 | | -Priscilla is a chat bot written in go. Most other popular chat bots today are |
7 | | -written in interpreted language. In my opinion, it's a bit unpractical to write |
8 | | -a chat bot in go the same way because it'll requires source code modification |
9 | | -and re-compilation every time you want to add functionalities to the bot. So I |
10 | | -took a bit different approach. |
| 6 | +Priscilla is a chat bot written in go. |
| 7 | + |
| 8 | +Most chat bots today are written in interpreted languages where |
| 9 | +add-your-own-code is the typical model. The handful existing chatbot written in |
| 10 | +go also took the same approach. In my opinion however, this isn't quite |
| 11 | +practical for a compiled language like go, because any change to the bot would |
| 12 | +require re-compiliation of the entire bot's codebase--something you can get away |
| 13 | +with interpreted languages, but not so much in a compiled language. So I took a |
| 14 | +different approach with Priscilla. |
11 | 15 |
|
12 | 16 | ## Server-Adapter-Responder Model |
13 | 17 |
|
14 | | -Priscilla is made of three components: **Priscilla server**, **Priscilla |
15 | | -Adapter**, and **Priscilla Responder**. |
| 18 | +Priscilla consists of three components: |
| 19 | + |
| 20 | +* **Priscilla server** |
| 21 | +* **Priscilla Adapter** |
| 22 | +* **Priscilla Responder** |
16 | 23 |
|
17 | 24 | ### Priscilla Server |
18 | 25 |
|
19 | | -In reality, Priscilla server is actually just a message dispatcher server that |
| 26 | +In reality, Priscilla server is just a message dispatcher server that |
20 | 27 | acts as the courier to facilite the communication between adapters (connect to |
21 | 28 | chat services) and responders (processes messages, performs actions, and |
22 | 29 | respond to messages). Communication protocol is in JSON over TCP and is |
@@ -69,7 +76,11 @@ Like adapter, active responder is a long running process that listens for |
69 | 76 | requests form Priscilla server. And like adapter, active responder has to first |
70 | 77 | engage the Priscilla server. Then active responder would perform regex pattern |
71 | 78 | registration, where it tells Priscilla server what message should be forwarded to |
72 | | -it. (This is not currently functional yet) |
| 79 | +it. |
| 80 | + |
| 81 | +Active responder can also be used as an active trigger, where responses aren't |
| 82 | +being triggered by incoming messages, instead, being triggered by timer event or |
| 83 | +other event sources such as http or tcp events. |
73 | 84 |
|
74 | 85 | #### Passive Responder |
75 | 86 |
|
|
0 commit comments