No project description provided
Python chat-bot framework. Uses very much concepts from django.
Under heavy development. Chaban supposed to be framework for developing bots for many platforms. Now working on telegram bots. Also this project needs to have strong CLI, which is also in development.
pip install chaban
To bootstrap a new project, I recommend using cookiecutter.
pip install cookiecutter
For now, CLI is not developed, but I hope it will be available soon.
Now, run this command to get your chaban template:
And answer to the question it asks :D.
The project looks like this:
project_slug +-- project_slug | +-- __init__.py | +-- handlers.py | +-- actions.py | +-- text.py +-- settings | +-- __init__.py | +-- base.py | +-- dev.py +-- requirements | +-- base.txt | +-- testing.txt | +-- local.txt +-- scripts | +-- installdeps.sh | +-- mkenv.sh +-- run.py +-- ...
mkenv.sh script to make
.env file which stores some configuration and secret keys:
cd scripts ./mkenv.sh
settings/contains any settings you want, but there some required ones, like
DEBUG. Put base settings in
base.pyand development-only ones in
dev.py, the rest will be done for you. How? Read
requirements/contains separate requirements.
base.txtare base, project will not work without them.
testing.txtonly used for tests.
local.txtcontains requirements for direct developer, for example: linter, formatter.
scripts/contains bash scripts to manage your project.
run.pyis a file that you will run to start up your bot.
project_slug/is actual core:
handlers.pycontains message handlers.
actions.pycontains logic that will be invoked by message handler.
text.pycontains text snippet to send in messages.
First, define a message handler in
handlers.py like this:
from chaban.handlers import CommandMH class StartCommandMH(CommandMH): command = 'start'
Now, when a message comes, and your handler looks like the message can be handled by it
(checked by using regex, more info in source code), the
action will be called. But wait.
We didn't define any action! Head over to
actions.py and add one:
from chaban.actions import Action class StartCommandAction(Action): def act(self, message: dict) -> None: self.tbot.send_message(message['chat']['id'], 'Welcome!')
Well, action is defined, now let's link the handler with the action.
handlers.py file and action attribute like this:
... from .actions import StartCommandAction class StartCommandMH(CommandMH): ... action = StartCommandAction()
That's all for basics :D. Now open up your terminal and start bot:
Write to your bot with message "/start" and see it works.
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.