Browse Source

Start cleaning up parts of the code

pull/10230/head
blord0 2 months ago
parent
commit
4a406832ed
  1. 1
      discord/abc.py
  2. 6
      discord/file.py
  3. 52
      discord/http.py

1
discord/abc.py

@ -1941,6 +1941,7 @@ class Messageable:
data = await self._state.http.send_voice_message(channel.id, file)
return self._state.create_message(channel=channel, data=data)
class Connectable(Protocol):
"""An ABC that details the common operations on a channel that can
connect to a voice server.

6
discord/file.py

@ -179,7 +179,7 @@ class VoiceMessageFile(File):
self.duration = duration
self._waveform = waveform
self.uploaded_filename = None
def to_dict(self, index: int) -> Dict[str, Any]:
payload = super().to_dict(index)
payload['duration_secs'] = self.duration
@ -194,6 +194,6 @@ class VoiceMessageFile(File):
if self._waveform is None:
return base64.b64encode(os.urandom(256)).decode('utf-8')
return self._waveform
def size(self):
return 47194 # Placeholder, figure out how to get size
return 47194 # Placeholder, figure out how to get size

52
discord/http.py

@ -243,10 +243,7 @@ def handle_message_parameters(
file_index = 0
attachments_payload = []
for attachment in attachments:
if isinstance(attachment, VoiceMessageFile):
attachments_payload.append(attachment.to_dict(file_index))
file_index += 1
elif isinstance(attachment, File):
if isinstance(attachment, File):
attachments_payload.append(attachment.to_dict(file_index))
file_index += 1
else:
@ -272,9 +269,6 @@ def handle_message_parameters(
multipart = []
if files:
multipart.append({'name': 'payload_json', 'value': utils._to_json(payload)})
print(";;;;")
print(utils._to_json(payload))
print(";;;;")
payload = None
for index, file in enumerate(files):
multipart.append(
@ -876,10 +870,6 @@ class HTTPClient:
*,
params: MultipartParameters,
) -> Response[message.Message]:
print(":::::")
print(params.payload)
print(params.multipart)
print(":::::")
r = Route('POST', '/channels/{channel_id}/messages', channel_id=channel_id)
if params.files:
return self.request(r, files=params.files, form=params.multipart)
@ -1070,26 +1060,18 @@ class HTTPClient:
def pins_from(self, channel_id: Snowflake) -> Response[List[message.Message]]:
return self.request(Route('GET', '/channels/{channel_id}/pins', channel_id=channel_id))
async def send_voice_message(self, channel_id: Snowflake, VoiceMessage: VoiceMessageFile):
"""|coro|
Sends a voice message to the specified channel.
Parameters
-----------
channel_id: :class:`~discord.abc.Snowflake`
The ID of the channel to send the voice message to.
VoiceMessage: :class:`~discord.VoiceMessageFile`
The voice message file to send. This should be an instance of :class:`~discord.VoiceMessageFile`.
"""
async def send_voice_message(self, channel_id: Snowflake, voice_message: VoiceMessageFile):
from .message import MessageFlags
uploadRoute = Route('POST', '/channels/{channel_id}/attachments', channel_id=channel_id)
payload = {
"files": [{
"filename": "voice-message.ogg",
"file_size": VoiceMessage.size(),
"id": 0,
}]
"files": [
{
"filename": "voice-message.ogg",
"file_size": voice_message.size(),
"id": 0,
}
]
}
response = await self.request(uploadRoute, json=payload)
@ -1099,34 +1081,32 @@ class HTTPClient:
import requests
t = requests.put(upload_url, headers={"Content-Type": "audio/ogg"}, data=VoiceMessage.fp)
t = requests.put(upload_url, headers={"Content-Type": "audio/ogg"}, data=voice_message.fp)
print(f"Status code: {t.status_code}")
# x = await self.__session.request("PUT", upload_url, headers={"Content-Type": "audio/ogg"}, data=VoiceMessage.fp)
# x = await self.__session.request("PUT", upload_url, headers={"Content-Type": "audio/ogg"}, data=voice_message.fp)
# print("*********")
# print(upload_url)
# print(x.read())
# print("*********")
VoiceMessage.uploaded_filename = uploaded_filename
voice_message.uploaded_filename = uploaded_filename
r = Route('POST', '/channels/{channel_id}/messages', channel_id=channel_id)
message_payload = {
"flags": 8192, # IS_VOICE_MESSAGE
"attachments": [VoiceMessage.to_dict(0)],
"attachments": [voice_message.to_dict(0)],
}
headers = {"Authorization": f"Bot {self.token}",
"Content-Type": "application/json"}
headers = {"Authorization": f"Bot {self.token}", "Content-Type": "application/json"}
res = requests.post("" + r.url, headers=headers, json=message_payload)
return res.json()
# params = handle_message_parameters(file=VoiceMessage, flags=MessageFlags(voice=True))
# params = handle_message_parameters(file=voice_message, flags=MessageFlags(voice=True))
# return await self.request(r, files=params.files, form=params.multipart)
# Member management
def kick(self, user_id: Snowflake, guild_id: Snowflake, reason: Optional[str] = None) -> Response[None]:

Loading…
Cancel
Save