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 лицензию.
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
|