The Persistence Bundle for Botyo consists of a few components related to the persistence of messages in a MongoDB database.
The included components are:
MongoDbConnector
- AnAsyncResolvable
that connects to a MongoDB server during the initialization of Botyo and provides access to the database via theDb
object provided by the MongoDB Node.JS Driver.MessageDownloaderFilter
- Filter that saves each incoming message to the database.ChatThreadHistoryDownloaderScheduledTask
- Scheduled task that downloads the history of all chat threads Botyo is configured to listen to and saves it to database.
Step 1. Install the module from npm.
npm install --save botyo-bundle-persistence
Step 2. Configure the MongoDB connection.
Add the Connection String URL to your configuration file config.yaml
:
facebook:
email: ...
password: ...
...
# Persistence Bundle Configuration
mongo:
url: mongodb://localhost:27017/botyo
modules:
...
Step 3. Register the bundle.
import Botyo from "botyo";
import { PersistenceBundle } from "botyo-bundle-persistence"
Botyo.builder()
...
.registerBundle(PersistenceBundle)
...
.build()
.start();
The configuration of the included modules has sensible defaults. However, you can still override the defaults if you need to.
modules:
MessageDownloaderFilter:
enable: true # enables the filter globally
chat-threads:
SOME_CHAT_THREAD_ID:
overrides:
modules.MessageDownloaderFilter:
enable: false # disables the filter for this chat thread
participants:
SOME_PARTICIPANT_ID:
overrides:
modules.MessageDownloaderFilter:
enable: true # enables the filter for this participant of this chat thread
modules:
ChatThreadHistoryDownloaderScheduledTask:
enable: true # enables the task
schedule: 10800000 # milliseconds, how often to run; also accepts cron strings
executeOnStart: true # execute on start of Botyo