Skip to main content

Async and fast api wrapper for IrisCallback API

Project description

IrisPY

Асинхронная и быстрая библиотека для Iris Callback API.

С помощью Iris Callback API вы можете получать сигналы из бесед, на которые вы подписались. Это поможет вам обрабатывать информацию способом, который удобен для вас без каких-либо ограничений.

Для этого необходимо создать свой сервер, который будет принимать запросы от серверов Iris.

Установка

  1. Новейшая версия:
    pip install irispy==1.2

  2. С помощью установщика pip из GitHub:
    pip install https://github.com/zpodushkin/irispy/archive/master.zip --upgrade

Кастомизация

downloads downloads

После установки irispy рекомендуется сразу же установить дополнительные модули loguru и vbml.
С ними фреймворк работает лучше и быстрее.

Установите loguru и vbml с помощью команд:

pip install loguru
pip install vbml

Примеры использования

from irispy import Dispatcher
from irispy import objects
from random import randint

import typing

dp = Dispatcher(
    secret="<your_secret>",
    user_id="<your_user_id>",
    token="<your_vk_token>"  # Получить можно здесь: https://vkhost.github.io/ (Kate Mobile)
)
chats = {}  # Синхронизация чатов с Ирисом


async def send_msg(peer_id: int, message: str, attachment: str = "", **kwargs):
    """ Метод для отправки сообщения.
    :param peer_id: Айди беседы: Пример: 2000000666
    :param message: Текст сообщения
    :param attachment: Вложение: Пример: photo1_4545
    :return:
    """
    await dp.api.messages.send(
        peer_id=peer_id,
        message=message,
        attachment=attachment,
        random_id=randint(-2e9, 2e9),
        **kwargs
    )


async def get_chat(date: int) -> typing.Union[None, int]:
    """ Получение айди чата через
    метод "messages.search" с параметрами:
    :param date: Дата в timestamp
    :return: Айди чата: Пример: 2000000001
    """
    try:
        items = (await dp.api.messages.search(
            q="!связать",
            count=5
        ))["items"]  # Получаем список чатов, в которых было найдено сообщение "!связать"
        for i in items:  # Проходим по ним циклом
            if i["date"] == date:  # Если дата отправки сообщения равна нашей дате
                return i["peer_id"]  # То возвращаем айди чата
    except Exception as e:
        print("Error: ", e)
        return


@dp.event.sendMySignal(text=["повтори <text>"], lower=True)
async def wrapper(event: objects.SendMySignal, text: str):
    """ Функция, которая ловит сигнал
    при отправке сообщений: .с; !сигнал ...
    :param text:
    :param event: Объект эвента
    :return:
    """
    await send_msg(
        peer_id=chats[event.object.chat],
        message=f"Повторяю: {text}"
    )


@dp.event.sendSignal(text="повтори <text>", lower=True)
async def executor(event: objects.SendSignal, text: str):
    print(event, text)


@dp.event.bindChat()
async def bind(event: objects.BindChat):
    if event.object.chat not in chats:  # Если UID чата нет в словаре, то добавляем.
        chats[event.object.chat] = await get_chat(event.message.date)
        await send_msg(peer_id=chats[event.object.chat], message="Чат привязан!")

dp.run_app(host="0.0.0.0", port=80)

Больше примеров в папке /examples

Документация

История релизов

  • 1.0
    • Первый деплой!
  • 1.0.1
    • Добавление логов и обработка ошибок
  • 1.0.5
    • Валидация в методах sendSignal и sendMySignal
    • Изменение структуры хендлеров
  • 1.1
    • Валидаторы VBML!
    • Первый и официальный релиз!
  • 1.1.1
    • Не работали валидаторы без аргументов. Исправлено
    • Модуль «IrisPY» был загружен на PyPi!
  • 1.2
    • Добавлена поддержка VK API
    • Добавлен User LP

Contributing

ПР поддерживаются! Мне приятно видеть ваш вклад в развитие библиотеки
Задавайте вопросы в блоке issues и в чате VK!

Лицензия

Copyright © 2019-2020 zpodushkin.
Этот проект имеет GPL-3.0 лицензию.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

irispy-1.2.tar.gz (11.9 kB view details)

Uploaded Source

File details

Details for the file irispy-1.2.tar.gz.

File metadata

  • Download URL: irispy-1.2.tar.gz
  • Upload date:
  • Size: 11.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.8.0 tqdm/4.36.1 CPython/3.7.4

File hashes

Hashes for irispy-1.2.tar.gz
Algorithm Hash digest
SHA256 634d235ccb6bca4c230e9e037de6fd6a1001b3833b7dfeab8c2c9eedda29f6bc
MD5 734ed1f952c2aab576865bf075dc5c58
BLAKE2b-256 b2785df2b033f09702348a10f4064227cd78abb4335a63db6fcc077d84439f43

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page