v1.1
This commit is contained in:
+55
-43
@@ -2,9 +2,9 @@ import json
|
||||
from enum import Enum
|
||||
from typing import Union, Type, Tuple
|
||||
|
||||
from kurocore.utils.vk.keyboard import VkKeyboard
|
||||
from kurocore.utils.vk.vk import VKApiException
|
||||
from kurocore.utils.vk_utils import generate_random_id
|
||||
from kurocore.database import Database
|
||||
from kurocore.vk import VkKeyboard, VKApiException, VK
|
||||
from kurocore.vk.utils import generate_random_id
|
||||
|
||||
|
||||
class MessageArgs(dict):
|
||||
@@ -137,41 +137,6 @@ class Document(VkObject):
|
||||
Attachment = Type[Photo], Type[Document], Type[Sticker]
|
||||
|
||||
|
||||
def load_attachments(raw: list[dict]) -> list[Attachment]:
|
||||
attachments = []
|
||||
for attachment in raw:
|
||||
match attachment['type']:
|
||||
case 'photo':
|
||||
attachments.append(Photo(attachment))
|
||||
case 'doc':
|
||||
attachments.append(Document(attachment))
|
||||
case 'sticker':
|
||||
attachments.append(Sticker(attachment))
|
||||
case _:
|
||||
attachments.append(VkObject(attachment))
|
||||
return attachments
|
||||
|
||||
|
||||
def dump_attachments(raw_attachments: list[Attachment]) -> str:
|
||||
return ','.join(map(repr, raw_attachments))
|
||||
|
||||
|
||||
class EventActions:
|
||||
SHOW_SNACKBAR = 'show_snackbar'
|
||||
OPEN_LINK = 'open_link'
|
||||
OPEN_APP = 'open_app'
|
||||
|
||||
|
||||
class MessageID:
|
||||
def __init__(self, body):
|
||||
if type(body) is dict:
|
||||
self.message_id = body.get('message_id', 0)
|
||||
self.cmid = body.get('cmid', 0)
|
||||
else:
|
||||
self.message_id = body
|
||||
self.cmid = body
|
||||
|
||||
|
||||
class Message(VkObject):
|
||||
__slots__ = (
|
||||
'vk', 'api', 'raw', 'id', 'conversation_message_id', 'cmid',
|
||||
@@ -181,10 +146,9 @@ class Message(VkObject):
|
||||
'meta'
|
||||
)
|
||||
|
||||
def __init__(self, vk, api, raw):
|
||||
def __init__(self, api, raw):
|
||||
super().__init__(raw)
|
||||
|
||||
self.vk = vk
|
||||
self.api = api
|
||||
|
||||
if type(raw) is Message:
|
||||
@@ -218,8 +182,7 @@ class Message(VkObject):
|
||||
self.event_id: str = self.raw.get('event_id', '')
|
||||
|
||||
self.forwarded_messages: list = self.raw.get('fwd_messages', [])
|
||||
self.reply_message = Message(self.vk, self.api, self.raw['reply_message']) \
|
||||
if 'reply_message' in self.raw else None
|
||||
self.reply_message = Message(self.api, self.raw['reply_message']) if 'reply_message' in self.raw else None
|
||||
|
||||
self.meta: dict = {}
|
||||
|
||||
@@ -325,7 +288,56 @@ class Message(VkObject):
|
||||
'conversation_message_ids': [cmid]
|
||||
}
|
||||
res = await self.api.messages.getByConversationMessageId(**data)
|
||||
return Message(self.vk, self.api, res['items'][0])
|
||||
return Message(self.api, res['items'][0])
|
||||
|
||||
def __repr__(self):
|
||||
return str(self.raw)
|
||||
|
||||
|
||||
class MessageContext:
|
||||
__slots__ = ('api', 'msg', 'db', 'args', 'meta')
|
||||
|
||||
def __init__(self, api, msg, db):
|
||||
self.api: VK = api
|
||||
self.msg: Message = msg
|
||||
self.db: Database = db
|
||||
self.args = None
|
||||
self.meta = {}
|
||||
|
||||
def __repr__(self):
|
||||
return f'<MessageContext{self.msg}({self.args})>'
|
||||
|
||||
|
||||
def load_attachments(raw: list[dict]) -> list[Attachment]:
|
||||
attachments = []
|
||||
for attachment in raw:
|
||||
match attachment['type']:
|
||||
case 'photo':
|
||||
attachments.append(Photo(attachment))
|
||||
case 'doc':
|
||||
attachments.append(Document(attachment))
|
||||
case 'sticker':
|
||||
attachments.append(Sticker(attachment))
|
||||
case _:
|
||||
attachments.append(VkObject(attachment))
|
||||
return attachments
|
||||
|
||||
|
||||
def dump_attachments(raw_attachments: list[Attachment]) -> str:
|
||||
return ','.join(map(repr, raw_attachments))
|
||||
|
||||
|
||||
class EventActions:
|
||||
SHOW_SNACKBAR = 'show_snackbar'
|
||||
OPEN_LINK = 'open_link'
|
||||
OPEN_APP = 'open_app'
|
||||
|
||||
|
||||
class MessageID:
|
||||
def __init__(self, body):
|
||||
if type(body) is dict:
|
||||
self.message_id = body.get('message_id', 0)
|
||||
self.cmid = body.get('cmid', 0)
|
||||
else:
|
||||
self.message_id = body
|
||||
self.cmid = body
|
||||
|
||||
Reference in New Issue
Block a user