Skip to content
This repository has been archived by the owner on May 5, 2024. It is now read-only.

Commit

Permalink
reply method
Browse files Browse the repository at this point in the history
  • Loading branch information
pixeldeee committed Aug 3, 2023
1 parent 7e52211 commit 2d46d5c
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 8 deletions.
2 changes: 1 addition & 1 deletion pytecord/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ def __init__(self, token: str, debug: bool = False) -> None:

@property
def user(self) -> User:
return User(self.webhook.get_user(self.__user_id))
return User(self.webhook.get_user(self.__user_id), self.token)

def listen(self):
def decorator(func_to_decorate: Callable[..., Coroutine[Any, Any, Any]]):
Expand Down
10 changes: 8 additions & 2 deletions pytecord/guild.py
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ def __init__(self, data: dict[str, Any], token: str):
self.bitrate = data.get('bitrate')
self.user_limit = data.get('user_limit')
self.rate_limit_per_user = data.get('rate_limit_per_user')
self.recipients = [User(i) for i in x] if (x := data.get('recipients')) else None
self.recipients = [User(i, token) for i in x] if (x := data.get('recipients')) else None
self.icon = data.get('icon')
self.owner_id = int(x) if (x := data.get('owner_id')) else None
self.application_id = int(x) if (x := data.get('application_id')) else None
Expand Down Expand Up @@ -210,7 +210,7 @@ def __init__(self, data: dict[str, Any], token: str) -> None:
self.edited_timestamp = data.get('edited_timestamp')
self.tts = data.get('tts')
self.mention_everyone = data.get('mention_everyone')
self.mentions = [User(i) for i in x] if (x := data.get('mentions')) else None
self.mentions = [User(i, token) for i in x] if (x := data.get('mentions')) else None
self.mention_roles = data.get('mention_roles')
self.mention_channels = data.get('mention_channels')
self.attachments = data.get('attachments')
Expand Down Expand Up @@ -279,6 +279,12 @@ def eval(self) -> dict[str, Any]:
```
"""
return self.__data

async def reply(self, content: str) -> 'Message':
payload = MessagePayload(content)
payload.make_reply(self.id)
data = await apost(f'/channels/{self.__channel_id}/messages', self.__token, data=payload.eval())
return Message(data, self.__token)

class MessageDeleteEvent:
def __init__(self, data: dict[str, Any], token: str) -> None:
Expand Down
12 changes: 10 additions & 2 deletions pytecord/utils.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
from requests import get, post
from aiohttp import ClientSession
import json

from typing import Literal, Any

Expand All @@ -10,11 +11,18 @@ def __init__(self, content: str) -> None:
self.json = {
'content': content
}

def make_reply(self, message_id: int) -> None:
self.json['message_reference'] = {
'message_id': message_id
}

def eval(self) -> dict[str, Any]:
return self.json
return json.dumps(self.json)


def get_headers(token: str):
return {'Authorization': f'Bot {token}'}
return {'Authorization': f'Bot {token}', 'Content-Type': 'application/json'}

def rget(endpoint: str, token: str = None, headers: dict[str, Any] = None):
if token:
Expand Down
6 changes: 3 additions & 3 deletions pytecord/web.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
from asyncio import gather, create_task
from asyncio import sleep as asleep
from .config import GATEWAY_VERSION
from .utils import rget
from .utils import get_headers, rget

if TYPE_CHECKING:
from .guild import Guild, GuildChannel
Expand Down Expand Up @@ -136,7 +136,7 @@ async def check_events(self):
else:
continue
if self.debug:
print(f'DEBUG op:{data.op} s:{data.s} t:{data.t} d:{data.d}')
print(f'DEBUG op:{data.op} s:{data.s} t:{data.t} d:{data.d}', end='\n' * 2)
await self.listener.listen(data)

async def run(self, intents: int = None):
Expand All @@ -163,7 +163,7 @@ class BaseWebhook:
def __init__(self, token: str, debug: bool) -> None:
self.token = token
self.debug = debug
self.headers = {'Authorization': f'Bot {self.token}',}
self.headers = get_headers(token)

self.listener = DataStreamListener()
self.stream = DataStream(self.listener, self.headers, self.token, self.debug)
Expand Down

0 comments on commit 2d46d5c

Please sign in to comment.