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
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ
- Iris Callback API 2.0 (Π‘ΡΠ°ΡΡΡ)
- ΠΠΎΠ΄ΡΠΎΠ±Π½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΠΎ ΠΏΠΎΡΠ°Π΄ΠΊΠ΅
- Π―Π·ΡΠΊ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ VBML (ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ)
ΠΡΡΠΎΡΠΈΡ ΡΠ΅Π»ΠΈΠ·ΠΎΠ²
- 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 Π»ΠΈΡΠ΅Π½Π·ΠΈΡ.