fbchat does all the heavy lifting. Thanks fbchat!
Very much still in progress! 👷
Very much subject to breaking change!
Example:
import config
from fbchatbot import *
from fbchatbot.core_events import CommandEvent, TextMessageEvent
use_config(config)
bot = add_bot("bot1").claim_threads(config.THREADS["my_thread"])
@bot.listener
def my_echo(e: TextMessageEvent):
print(e.text)
@bot.command("hi")
def say_hi(e: CommandEvent):
"""Say hi back"""
e.thread.send_text("Hello")
bot.listen()
Comes with new events, normalizing the ones fbchat provides to make some tasks easier
Use type hints to specify what events to listen for:
@bot.listener
def my_echo(e: MessageEvent):
print("bot: " + e.message.text)
Or don't...
@bot.listener(MessageEvent)
def my_echo(e):
print("bot: " + e.message.text)
Break functionality into plugins! Distribute them, maybe one day.
- Logging plugin!
- Optional message queue!
- Configure behavior at the user/group thread level
my_plugin.py
from fbchatbot import Plugin
my_plugin = Plugin("MyPlugin")
@my_plugin.listener
def my_echo(e: MessageEvent):
print("bot: " + e.message.text)
main.py
import config
from .my_plugin import my_plugin
from fbchatbot import Chatbot
bot = Chatbot(config=config)
bot.load_plugin(my_plugin)
bot.listen()