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) data = await self._state.http.send_voice_message(channel.id, file)
return self._state.create_message(channel=channel, data=data) return self._state.create_message(channel=channel, data=data)
class Connectable(Protocol): class Connectable(Protocol):
"""An ABC that details the common operations on a channel that can """An ABC that details the common operations on a channel that can
connect to a voice server. connect to a voice server.

6
discord/file.py

@ -179,7 +179,7 @@ class VoiceMessageFile(File):
self.duration = duration self.duration = duration
self._waveform = waveform self._waveform = waveform
self.uploaded_filename = None self.uploaded_filename = None
def to_dict(self, index: int) -> Dict[str, Any]: def to_dict(self, index: int) -> Dict[str, Any]:
payload = super().to_dict(index) payload = super().to_dict(index)
payload['duration_secs'] = self.duration payload['duration_secs'] = self.duration
@ -194,6 +194,6 @@ class VoiceMessageFile(File):
if self._waveform is None: if self._waveform is None:
return base64.b64encode(os.urandom(256)).decode('utf-8') return base64.b64encode(os.urandom(256)).decode('utf-8')
return self._waveform return self._waveform
def size(self): 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 file_index = 0
attachments_payload = [] attachments_payload = []
for attachment in attachments: for attachment in attachments:
if isinstance(attachment, VoiceMessageFile): if isinstance(attachment, File):
attachments_payload.append(attachment.to_dict(file_index))
file_index += 1
elif isinstance(attachment, File):
attachments_payload.append(attachment.to_dict(file_index)) attachments_payload.append(attachment.to_dict(file_index))
file_index += 1 file_index += 1
else: else:
@ -272,9 +269,6 @@ def handle_message_parameters(
multipart = [] multipart = []
if files: if files:
multipart.append({'name': 'payload_json', 'value': utils._to_json(payload)}) multipart.append({'name': 'payload_json', 'value': utils._to_json(payload)})
print(";;;;")
print(utils._to_json(payload))
print(";;;;")
payload = None payload = None
for index, file in enumerate(files): for index, file in enumerate(files):
multipart.append( multipart.append(
@ -876,10 +870,6 @@ class HTTPClient:
*, *,
params: MultipartParameters, params: MultipartParameters,
) -> Response[message.Message]: ) -> Response[message.Message]:
print(":::::")
print(params.payload)
print(params.multipart)
print(":::::")
r = Route('POST', '/channels/{channel_id}/messages', channel_id=channel_id) r = Route('POST', '/channels/{channel_id}/messages', channel_id=channel_id)
if params.files: if params.files:
return self.request(r, files=params.files, form=params.multipart) 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]]: def pins_from(self, channel_id: Snowflake) -> Response[List[message.Message]]:
return self.request(Route('GET', '/channels/{channel_id}/pins', channel_id=channel_id)) return self.request(Route('GET', '/channels/{channel_id}/pins', channel_id=channel_id))
async def send_voice_message(self, channel_id: Snowflake, VoiceMessage: VoiceMessageFile): async def send_voice_message(self, channel_id: Snowflake, voice_message: 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`.
"""
from .message import MessageFlags from .message import MessageFlags
uploadRoute = Route('POST', '/channels/{channel_id}/attachments', channel_id=channel_id) uploadRoute = Route('POST', '/channels/{channel_id}/attachments', channel_id=channel_id)
payload = { payload = {
"files": [{ "files": [
"filename": "voice-message.ogg", {
"file_size": VoiceMessage.size(), "filename": "voice-message.ogg",
"id": 0, "file_size": voice_message.size(),
}] "id": 0,
}
]
} }
response = await self.request(uploadRoute, json=payload) response = await self.request(uploadRoute, json=payload)
@ -1099,34 +1081,32 @@ class HTTPClient:
import requests 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}") 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("*********")
# print(upload_url) # print(upload_url)
# print(x.read()) # print(x.read())
# print("*********") # print("*********")
VoiceMessage.uploaded_filename = uploaded_filename voice_message.uploaded_filename = uploaded_filename
r = Route('POST', '/channels/{channel_id}/messages', channel_id=channel_id) r = Route('POST', '/channels/{channel_id}/messages', channel_id=channel_id)
message_payload = { message_payload = {
"flags": 8192, # IS_VOICE_MESSAGE "flags": 8192, # IS_VOICE_MESSAGE
"attachments": [VoiceMessage.to_dict(0)], "attachments": [voice_message.to_dict(0)],
} }
headers = {"Authorization": f"Bot {self.token}", headers = {"Authorization": f"Bot {self.token}", "Content-Type": "application/json"}
"Content-Type": "application/json"}
res = requests.post("" + r.url, headers=headers, json=message_payload) res = requests.post("" + r.url, headers=headers, json=message_payload)
return res.json() 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) # return await self.request(r, files=params.files, form=params.multipart)
# Member management # Member management
def kick(self, user_id: Snowflake, guild_id: Snowflake, reason: Optional[str] = None) -> Response[None]: def kick(self, user_id: Snowflake, guild_id: Snowflake, reason: Optional[str] = None) -> Response[None]:

Loading…
Cancel
Save