- Notifications
You must be signed in to change notification settings - Fork2
A modular processing platform for instant messages.
License
Terrance/IMMP
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
A modular processing platform for instant messages.
This project uses the latest and greatest Python features (that is, native asyncio syntax andasynchronous generators), and therefore requires at leastPython 3.7.
Additional modules are required for most plugs and hooks -- consult the docs for each module youwant to use to check its own requirements, or use the included requirements list to install allpossible dependencies for built-in modules.
- Network
- An external service that provides message-based communication.
- Message
- A unit of data, which can include text, images, attachments, authorship, and so on.
- User
- An individual or service which can author messages on a network.
- Plug
- A handler for all communication with an external network, transforming the network’s contentto message objects and back again.
- Channel
- A single room in an external network – a source of messages, and often a container of users.
- Group
- A collection of plugs and channels.
- Hook
- A worker that processes a stream of incoming messages, in whichever way it sees fit.
Prepare a config file in a format of your choosing, e.g. in YAML:
plugs:demo:path:demo.DemoPlugconfig:api-key:xyzzychannels:foo:plug:demosource:12345bar:plug:demosource:98765hooks:test:path:test.TestHookconfig:channels:[foo, bar]args:[123, 456]
All labels under the top-level names are effectively free text, and are used to reference fromother sections.
Then start the built-in runner:
$ immp config.yaml
About
A modular processing platform for instant messages.