aboutsummaryrefslogtreecommitdiffstats
path: root/bot
diff options
context:
space:
mode:
Diffstat (limited to 'bot')
-rw-r--r--bot/exts/core/internal_eval/_internal_eval.py18
-rw-r--r--bot/exts/fun/latex.py20
2 files changed, 19 insertions, 19 deletions
diff --git a/bot/exts/core/internal_eval/_internal_eval.py b/bot/exts/core/internal_eval/_internal_eval.py
index 39ce558a..15db8d40 100644
--- a/bot/exts/core/internal_eval/_internal_eval.py
+++ b/bot/exts/core/internal_eval/_internal_eval.py
@@ -4,6 +4,7 @@ import textwrap
import discord
from discord.ext import commands
from pydis_core.utils.logging import get_logger
+from pydis_core.utils.paste_service import PasteFile, PasteTooLongError, PasteUploadError, send_to_paste_service
from bot.bot import Bot
from bot.constants import Client, Roles
@@ -86,17 +87,16 @@ class InternalEval(commands.Cog):
async def _upload_output(self, output: str) -> str | None:
"""Upload `internal eval` output to our pastebin and return the url."""
data = self.shorten_output(output, max_length=MAX_LENGTH)
+ file = PasteFile(content=data, lexer="text")
try:
- async with self.bot.http_session.post(
- "https://paste.pythondiscord.com/documents", data=data, raise_for_status=True
- ) as resp:
- data = await resp.json()
-
- if "key" in data:
- return f"https://paste.pythondiscord.com/{data['key']}"
- except Exception:
- # 400 (Bad Request) means there are too many characters
+ resp = await send_to_paste_service(
+ files=[file],
+ http_session=self.bot.http_session,
+ )
+ return resp.link
+ except (PasteTooLongError, PasteUploadError):
log.exception("Failed to upload `internal eval` output to paste service!")
+ return None
async def _send_output(self, ctx: commands.Context, output: str) -> None:
"""Send the `internal eval` output to the command invocation context."""
diff --git a/bot/exts/fun/latex.py b/bot/exts/fun/latex.py
index 13b3c503..5ce60fa1 100644
--- a/bot/exts/fun/latex.py
+++ b/bot/exts/fun/latex.py
@@ -8,9 +8,10 @@ from typing import BinaryIO
import discord
from PIL import Image
-from aiohttp import client_exceptions, web
+from aiohttp import client_exceptions
from discord.ext import commands
from pydis_core.utils.logging import get_logger
+from pydis_core.utils.paste_service import PasteFile, PasteTooLongError, PasteUploadError, send_to_paste_service
from bot.bot import Bot
from bot.constants import Channels, WHITELISTED_CHANNELS
@@ -100,17 +101,16 @@ class Latex(commands.Cog):
async def _upload_to_pastebin(self, text: str) -> str | None:
"""Uploads `text` to the paste service, returning the url if successful."""
+ file = PasteFile(content=text, lexer="text")
try:
- async with self.bot.http_session.post(
- PASTEBIN_URL + "/documents",
- data=text,
- raise_for_status=True
- ) as response:
- response_json = await response.json()
- if "key" in response_json:
- return f"{PASTEBIN_URL}/{response_json['key']}.txt?noredirect"
- except web.HTTPClientError as e:
+ resp = await send_to_paste_service(
+ files=[file],
+ http_session=self.bot.http_session,
+ )
+ return resp.link
+ except (PasteTooLongError, PasteUploadError) as e:
log.info("Error when uploading latex output to pastebin. %s", e)
+ return None
async def _prepare_error_embed(self, err: InvalidLatexError | LatexServerError | None) -> discord.Embed:
title = "Server encountered an issue, please retry later."