Skip to content

Commit f4534db

Browse files
committed
README
1 parent da9d89e commit f4534db

File tree

1 file changed

+20
-9
lines changed

1 file changed

+20
-9
lines changed

README.md

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,27 @@
33
[![Build Status](https://travis-ci.org/priscillachat/priscilla.svg?branch=master)](https://travis-ci.org/priscillachat/priscilla)
44
[![Code Climate](https://codeclimate.com/github/priscillachat/priscilla/badges/gpa.svg)](https://codeclimate.com/github/priscillachat/priscilla)
55

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.
1115

1216
## Server-Adapter-Responder Model
1317

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**
1623

1724
### Priscilla Server
1825

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
2027
acts as the courier to facilite the communication between adapters (connect to
2128
chat services) and responders (processes messages, performs actions, and
2229
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
6976
requests form Priscilla server. And like adapter, active responder has to first
7077
engage the Priscilla server. Then active responder would perform regex pattern
7178
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.
7384

7485
#### Passive Responder
7586

0 commit comments

Comments
 (0)