Skip to content
/ kutana Public
forked from ekonda/kutana

The library for developing systems for messengers and social networks

License

Notifications You must be signed in to change notification settings

kjkui/kutana

 
 

Repository files navigation

Kutana

Kutana logo

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

English | Русский

The library for developing systems for messengers and social networks. Great for developing bots. Refer to example for the showcase of the library abilities.

Nice foundation for bot using kutana library - 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 _(message, env):
    await env.reply("{}".format(env.body))

If your function exists only to be decorated, you can use _ to avoid unnecessary names

Available managers

  • VKManager (for vk.com groups)
  • TGManager (for telegram.org bots)
    • 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

About

The library for developing systems for messengers and social networks

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 99.6%
  • Makefile 0.4%