Tiny lib for icq/myteam command bots
Project description
mailru_im_command_bot
mailru_im_command_bot is convenient library for generic myteam/icq bots. In fact it is a wrapper for mailru-im-bot.
It uses type annotations for help method and transforming arguments.
It is fully tested and production-ready)
Usage
You can create your bot with following code:
from mailru_im_command_bot import CommandBot, MessageEnv
from logging import getLogger
import enum
class ExampleEnum(enum.Enum):
case_one = 1
case_two = 2
bot = CommandBot(
# you can provide any bot.Bot kwargs
token='your_token_here',
name='your_bot_name',
version='your_bot_version',
logger=getLogger(__name__),
alert_to=['danila.fomin@corp.mail.ru'],
help_message='your bot description',
)
@bot.command('example_command')
def example_command(
env: MessageEnv,
int_arg: int, # required
float_arg: float = 1.0, # optional
str_arg: str = 'test_str', # optional
enum_arg: ExampleEnum = ExampleEnum.case_one, # optional
implicit_str_arg='test_str', # optional
bool_arg: bool = True, # optional
) -> str:
"""your function help message"""
...
return 'your result'
bot.start()
You can also wrap existing bot:
from bot import Bot
from mailru_im_command_bot import CommandBot
from logging import getLogger
base_bot = Bot(
token='your_token_here',
name='your_bot_name',
version='your_bot_version',
)
bot = CommandBot(
from_bot=base_bot,
logger=getLogger(__name__),
alert_to=['danila.fomin@corp.mail.ru'],
help_message='your bot description',
)
Bot accepts messages like this:
/example_command 1
# you get int_arg = 1 and other arguments defaults
/example_command 1 0
# you get int_arg = 1, float_arg = 0.0 and other arguments defaults
...etc
It also can accept key-value arguments:
/example_command int_arg=1
/example_command 1 enum_arg=case_two
/example_command int_arg=1 enum_arg=case_two
As argument type you can use str, float, int and any enum.Enum. Library automatically validates and casts strings to your types.
Your help message will be like this:
your bot description
list of commands:
/example_command
your function help message
args:
int_arg: int
float_arg: float = 1.0
str_arg: str = test_str
enum_arg: case_one|case_two = case_one
implicit_str_arg: str = test_str
bool_arg: True|False = True
Bot automatically writes access log with provided logger.
[ACCESS] [user_id]@[chat_id] /example_command elapsed=0.1s
If an exception occurred bot will write the error into log, send 'some exception occurred'
to user and report error to users in alert_to
list.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for mailru-im-command-bot-0.1.6.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1c7c8c9027e79499263e907e45a56aa7d19e639414aa6a7615f5af72f5094919 |
|
MD5 | 9d013a17ebcffc1e589db0bf41955a9c |
|
BLAKE2b-256 | c0b90365265ceeaf8f17d77213ccb901b06ce3099d894550951176484c2a7017 |
Hashes for mailru_im_command_bot-0.1.6-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 93b3d89db4606b284fa2b31e1d273f823f00ba8092c46964a22266583360b0f9 |
|
MD5 | a2f009912f9eccf1f51f9820cc134153 |
|
BLAKE2b-256 | e4fd60045d42fdcd86669029fe2ac234efc3139b998202d7bb0c00f4fa30e0c6 |