aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bot/exts/utils/ping.py28
-rw-r--r--poetry.lock18
-rw-r--r--pyproject.toml1
3 files changed, 14 insertions, 33 deletions
diff --git a/bot/exts/utils/ping.py b/bot/exts/utils/ping.py
index 750ff46d2..58485fc34 100644
--- a/bot/exts/utils/ping.py
+++ b/bot/exts/utils/ping.py
@@ -1,18 +1,16 @@
-import socket
-import urllib.parse
from datetime import datetime
-import aioping
+from aiohttp import client_exceptions
from discord import Embed
from discord.ext import commands
from bot.bot import Bot
-from bot.constants import Channels, Emojis, STAFF_ROLES, URLs
+from bot.constants import Channels, STAFF_ROLES, URLs
from bot.decorators import in_whitelist
DESCRIPTIONS = (
"Command processing time",
- "Python Discord website latency",
+ "Python Discord website status",
"Discord API latency"
)
ROUND_LATENCY = 3
@@ -41,23 +39,23 @@ class Latency(commands.Cog):
bot_ping = f"{bot_ping:.{ROUND_LATENCY}f} ms"
try:
- url = urllib.parse.urlparse(URLs.site_schema + URLs.site).hostname
- try:
- delay = await aioping.ping(url, family=socket.AddressFamily.AF_INET) * 1000
- site_ping = f"{delay:.{ROUND_LATENCY}f} ms"
- except OSError:
- # Some machines do not have permission to run ping
- site_ping = "Permission denied, could not ping."
+ request = await self.bot.http_session.get(f"{URLs.site_api_schema}{URLs.site_api}/healthcheck")
+ request.raise_for_status()
+ site_status = "Healthy"
- except TimeoutError:
- site_ping = f"{Emojis.cross_mark} Connection timed out."
+ except client_exceptions.ClientResponseError as e:
+ """The site returned an unexpected response."""
+ site_status = f"The site returned an error in the response: ({e.status}) {e}"
+ except client_exceptions.ClientConnectionError:
+ """Something went wrong with the connection."""
+ site_status = "Could not establish connection with the site."
# Discord Protocol latency return value is in seconds, must be multiplied by 1000 to get milliseconds.
discord_ping = f"{self.bot.latency * 1000:.{ROUND_LATENCY}f} ms"
embed = Embed(title="Pong!")
- for desc, latency in zip(DESCRIPTIONS, [bot_ping, site_ping, discord_ping]):
+ for desc, latency in zip(DESCRIPTIONS, [bot_ping, site_status, discord_ping]):
embed.add_field(name=desc, value=latency, inline=False)
await ctx.send(embed=embed)
diff --git a/poetry.lock b/poetry.lock
index 9c9379ebb..dac277ed8 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -44,18 +44,6 @@ yarl = ">=1.0,<2.0"
speedups = ["aiodns", "brotlipy", "cchardet"]
[[package]]
-name = "aioping"
-version = "0.3.1"
-description = "Asyncio ping implementation"
-category = "main"
-optional = false
-python-versions = "*"
-
-[package.dependencies]
-aiodns = "*"
-async-timeout = "*"
-
-[[package]]
name = "aioredis"
version = "1.3.1"
description = "asyncio (PEP 3156) Redis support"
@@ -1030,7 +1018,7 @@ multidict = ">=4.0"
[metadata]
lock-version = "1.1"
python-versions = "3.9.*"
-content-hash = "c7ea9fa5c2dc62eebba817dc0c98c58cfed4cf298b12a1b86a157e63d0882ef9"
+content-hash = "85160036e3b07c9d5d24a32302462591e82cc3bf3d5490b87550d9c26bc5648d"
[metadata.files]
aio-pika = [
@@ -1080,10 +1068,6 @@ aiohttp = [
{file = "aiohttp-3.7.4.post0-cp39-cp39-win_amd64.whl", hash = "sha256:02f46fc0e3c5ac58b80d4d56eb0a7c7d97fcef69ace9326289fb9f1955e65cfe"},
{file = "aiohttp-3.7.4.post0.tar.gz", hash = "sha256:493d3299ebe5f5a7c66b9819eacdcfbbaaf1a8e84911ddffcdc48888497afecf"},
]
-aioping = [
- {file = "aioping-0.3.1-py3-none-any.whl", hash = "sha256:8900ef2f5a589ba0c12aaa9c2d586f5371820d468d21b374ddb47ef5fc8f297c"},
- {file = "aioping-0.3.1.tar.gz", hash = "sha256:f983d86acab3a04c322731ce88d42c55d04d2842565fc8532fe10c838abfd275"},
-]
aioredis = [
{file = "aioredis-1.3.1-py3-none-any.whl", hash = "sha256:b61808d7e97b7cd5a92ed574937a079c9387fdadd22bfbfa7ad2fd319ecc26e3"},
{file = "aioredis-1.3.1.tar.gz", hash = "sha256:15f8af30b044c771aee6787e5ec24694c048184c7b9e54c3b60c750a4b93273a"},
diff --git a/pyproject.toml b/pyproject.toml
index 36db20366..8eac504c5 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -10,7 +10,6 @@ python = "3.9.*"
aio-pika = "~=6.1"
aiodns = "~=2.0"
aiohttp = "~=3.7"
-aioping = "~=0.3.1"
aioredis = "~=1.3.1"
arrow = "~=1.0.3"
async-rediscache = { version = "~=0.1.2", extras = ["fakeredis"] }