Async and fast api wrapper for IrisCallback API
Project description
IrisPY
Асинхронная и быстрая библиотека для Iris Callback API.
С помощью Iris Callback API вы можете получать сигналы из бесед, на которые вы подписались. Это поможет вам обрабатывать информацию способом, который удобен для вас без каких-либо ограничений.
Для этого необходимо создать свой сервер, который будет принимать запросы от серверов Iris.
Установка
-
Новейшая версия:
pip install irispy==1.2
-
С помощью установщика pip из GitHub:
pip install https://github.com/zpodushkin/irispy/archive/master.zip --upgrade
Кастомизация
После установки 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
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
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 634d235ccb6bca4c230e9e037de6fd6a1001b3833b7dfeab8c2c9eedda29f6bc |
|
MD5 | 734ed1f952c2aab576865bf075dc5c58 |
|
BLAKE2b-256 | b2785df2b033f09702348a10f4064227cd78abb4335a63db6fcc077d84439f43 |