/async-icq

Async ICQ Bot API for Python

Primary LanguagePythonMIT LicenseMIT

Async ICQ/VK Teams bot API wrapper

PyPi Package Version PyPi Package Status Supported Python versions Package dwn stats License Repo size Author stars count

Pure Async Python interface for Bot API.

Table of contents

Introduction

This library provides complete ICQ/Myteam Bot API 1.0 interface and requires Python 3.5+

Quick start

  • Create your own bot by sending the /newbot command to Metabot and follow the instructions.

    Note: a bot can only reply after the user has added it to his contact list, or if the user was the first to start a dialogue.

  • You can configure the domain that hosts your ICQ server. When instantiating the Bot class, add the address of your domain.

    Example: Bot(token=TOKEN, url="https://api.icq.net"), by default we use the domain: https://api.icq.net (ICQ) or http://myteam.mail.ru (VK Teams)

Installing

Install using pip:

pip install -U async-icq

Install from sources:

git clone https://github.com/dasshit/async-icq.git
cd async-icq
python setup.py install

Examples

Basic example of using this library will look like this

from async_icq.bot import AsyncBot
from async_icq.events import Event

# Creating bot
example = AsyncBot(
  token='TOKEN',
  url='https://api.icq.net',
)


# Adding some basic event handler by decorators (handler must accept 2 arguments: bot and event)
# Diffent decorators will set it up for diffent types of events
@example.message_handler()
async def hello(event: Event):
  
  await event.answer(
    text=f'Hi, {event.from_.userId}'
  )

  await event.log(
    f'Answered to {event.chat.chatId} to {event.from_.userId}')


# Starting to poll new events and sending them to middleware and handlers
example.start_poll()

Example of how to use this library could be found in async-icq/examples

API description