The engine for developing bots for social networks, instant messengers and other systems.


Keywords
engine social-networks messengers bots asyncio, asyncio, bot, engine, messengers, python, python3, social-networks
License
MIT
Install
pip install kutana==3.0.0

Documentation

Kutana

Kutana logo

Documentation Status Build Status CodeFactor Codacy Badge Coverage Status Codebeat Badge PyPI version

English | Русский

The engine for developing bots for social networks, instant messengers and other systems.

Nice foundation for bot using kutana engine - kubot.

Installation

python -m pip install kutana

Usage

  • Create Kutana application and add managers.
  • Register your plugins in the executor. You can import plugin from folders with function load_plugins. Files should be a valid python modules with available plugin field with your plugin (Plugin) or field plugins with list of instances of Plugin class.
  • Start application.

Example run.py

Token for VKManager is loaded from the file "configuration.json" and plugins are loaded from folder "plugins/"

from kutana import *

# Load configuration
with open("configuration.json") as fh:
    config = json.load(fh)

# Create application
app = Kutana()

# Create and add VKManager to application
app.add_manager(VKManager(config["vk_token"]))

# Load and register plugins
app.register_plugins(load_plugins("plugins/"))

# Run application
app.run()

Example plugin (plugins/echo.py)

from kutana import Plugin

plugin = Plugin(name="Echo")

@plugin.on_startswith_text("echo")
async def on_echo(message, env):
    await env.reply("{}".format(env.body))

Available managers

  • VKManager (for vk.com groups)
  • TGManager (for telegram.org)
    • document's type is named doc inside of Kutana.
    • TGAttachmentTemp is used for storing attachments before sending them with send_message or reply. Attachments can't be uploaded other way.
    • If you want to download file (attachment) from telegram, you have to use TGEnvironment.get_file_from_attachment.

Authors