fix(commands:dig|Network): fix async

This commit is contained in:
Romain J 2021-04-20 15:42:59 +02:00
parent 540dfd616a
commit 0eca877c1c
2 changed files with 36 additions and 76 deletions

View file

@ -76,7 +76,9 @@ async def get_ipinfo_result(
apikey: str, ip_address: str apikey: str, ip_address: str
) -> Union[NoReturn, dict]: ) -> Union[NoReturn, dict]:
try: try:
handler = ipinfo.getHandlerAsync(apikey) handler = ipinfo.getHandlerAsync(
apikey, request_options={"timeout": 7}
)
return (await handler.getDetails(ip_address)).all return (await handler.getDetails(ip_address)).all
except RequestQuotaExceededError: except RequestQuotaExceededError:
return {} return {}

View file

@ -89,12 +89,6 @@ class Network(commands.Cog, name="Network"):
) )
ip_address = await get_ip(str(ip), str(version), tmp) ip_address = await get_ip(str(ip), str(version), tmp)
if ip_address == "2001:67c:1740:900a::122":
ip_address = "2606:4700:7::a29f:9904"
elif ip_address == "193.106.119.122":
ip_address = "162.159.136.232"
ip_hostname = await get_hostname(ip_address) ip_hostname = await get_hostname(ip_address)
ipinfo_result = await get_ipinfo_result( ipinfo_result = await get_ipinfo_result(
@ -142,37 +136,6 @@ class Network(commands.Cog, name="Network"):
async def _getheaders( async def _getheaders(
self, ctx: ContextPlus, ip: DomainConverter, *, user_agent: str = "" self, ctx: ContextPlus, ip: DomainConverter, *, user_agent: str = ""
): ):
bypass = False
b_headers = {}
if "gnous.eu" in str(ip).lower():
b_headers = {
"Date": "Wed, 31 Mar 2021 19:29:23 GMT",
"Content-Type": "text/html",
"Transfer-Encoding": "chunked",
"Connection": "keep-alive",
"CF-Ray": "638bfc780d6b4c7a-AMS",
"Cache-Control": "private",
"Etag": 'W/"93af87d30fddaeb232dd4b1fdbf45ee5"',
"Last-Modified": "Fri, 26 Mar 2021 22:30:51 GMT",
"Strict-Transport-Security": "max-age=31536000; includeSubDomains; preload",
"CF-Cache-Status": "HIT",
"cf-request-id": "092b5c1f0b00004c7a422fc000000001",
"Content-Security-Policy": "default-src 'self'; script-src 'self' 'unsafe-inline' 'nonce-NywxMTIsMTA5LDU2LDIwMSwxNiw1MCwyNg==' https://www.googletagmanager.com https://connect.facebook.net https://www.google - analytics.com https://ssl.google - analytics.com https://www.gstatic.com/recaptcha/ https://www.google.com/recaptcha/ https://recaptcha.net/recaptcha/ https://hcaptcha.com https://*.hcaptcha.com https://s.ytimg.com/yts/jsbin/ https://www.youtube.com/iframe_api; style - src 'self' 'unsafe-inline' https://fonts.googleapis.com https://*.hcaptcha.com https://hcaptcha.com; img - src 'self' https://www.google - analytics.com https://www.googletagmanager.com https://www.facebook.com https://cdn.gnous.eu https://hackerone-api.discord.workers.dev/user-avatars/ https://safety.gnous.eu https://discordmoderatoracademy.zendesk.com; font - src 'self' https://fonts.gstatic.com; connect - src 'self' https://gnous.eu https://connect.facebook.net https://api.greenhouse.io https://api.github.com https://sentry.io https://www.google - analytics.com https://hackerone - api.discord.workers.dev https://*.hcaptcha.com https://hcaptcha.com ws://127.0.0.1: * http://127.0.0.1: *; media - src 'self' https://cdn.gnous.eu/assets/; frame - src https://gnous.eu/domain - migration https://www.google.com/recaptcha/ https://recaptcha.net/recaptcha/ https://*.hcaptcha.com https://hcaptcha.com https://www.youtube.com/embed/ https://hackerone.com/ 631 fba12 - 9388 - 43 c3 - 8 b48 - 348 f11a883c0 /; ",
"Expect-CT": 'max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"',
"X-Build-Id": "8e7a8a3",
"X-Content-Type-Options": "nosniff",
"X-Frame-Options": "DENY",
"X-XSS-Protection": "1; mode=block",
"Report-To": '{"group":"cf-nel","endpoints":[{"url":"https:\\/\\/a.nel.cloudflare.com\\/report?s=yTbPXPki5uskQ%2FYzh%2ByeWXz%2BQLZdhazySwN2vY2TfT6va9b1oVqo4YuPH7HcR5EdHeCsYHia%2BrUOxvoyVm%2BQgZd5zmhgYCmfUhkJUw%3D%3D"}],"max_age":69420}',
"NEL": '{"max_age":604800,"report_to":"cf-nel"}',
"Vary": "Accept-Encoding",
"Server": "cloudflare",
"Content-Encoding": "gzip",
"alt-svc": 'h3-27=":443"; ma=86400, h3-28=":443"; ma=86400, h3-29=":443"; ma=86400',
}
bypass = True
try: try:
headers = {"User-Agent": user_agent} headers = {"User-Agent": user_agent}
colors = { colors = {
@ -200,8 +163,6 @@ class Network(commands.Cog, name="Network"):
headers = dict(s.headers.items()) headers = dict(s.headers.items())
headers.pop("Set-Cookie", headers) headers.pop("Set-Cookie", headers)
headers = b_headers if bypass else headers
for key, value in headers.items(): for key, value in headers.items():
output = await shorten(ctx.session, value, 50) output = await shorten(ctx.session, value, 50)
@ -220,46 +181,43 @@ class Network(commands.Cog, name="Network"):
_("Cannot connect to host {}", ctx, self.bot.config).format(ip) _("Cannot connect to host {}", ctx, self.bot.config).format(ip)
) )
@command_extra(name="dig", deletable=True)
async def _dig(
self,
ctx: ContextPlus,
domain: IPConverter,
query_type: QueryTypeConverter,
dnssec: Union[str, bool] = False,
):
check_query_type_or_raise(str(query_type))
@command_extra(name="dig", deletable=True) pydig_result = await get_pydig_result(
async def _dig( str(domain), str(query_type), dnssec
self,
ctx: ContextPlus,
domain: IPConverter,
query_type: QueryTypeConverter,
dnssec: Union[str, bool] = False,
):
check_query_type_or_raise(str(query_type))
pydig_result = await self.bot.loop.run_in_executor(
None,
functools.partial(get_pydig_result, domain, query_type, dnssec),
)
e = discord.Embed(title=f"DIG {domain} {query_type}", color=0x5858D7)
for i, value in enumerate(pydig_result):
e.add_field(name=f"#{i}", value=f"```{value}```")
if not pydig_result:
e.add_field(
name=f"DIG {domain} IN {query_type}",
value=_("No result...", ctx, self.bot.config),
) )
await ctx.send(embed=e) e = discord.Embed(title=f"DIG {domain} {query_type}", color=0x5858D7)
for i, value in enumerate(pydig_result):
e.add_field(name=f"#{i}", value=f"```{value}```")
@command_extra(name="ping", deletable=True) if not pydig_result:
async def _ping(self, ctx: ContextPlus): e.add_field(
start = time.perf_counter() name=f"DIG {domain} IN {query_type}",
await ctx.trigger_typing() value=_("No result...", ctx, self.bot.config),
end = time.perf_counter() )
latency = round(self.bot.latency * 1000, 2) await ctx.send(embed=e)
typing = round((end - start) * 1000, 2)
e = discord.Embed(title="Ping", color=discord.Color.teal()) @command_extra(name="ping", deletable=True)
e.add_field(name="Websocket", value=f"{latency}ms") async def _ping(self, ctx: ContextPlus):
e.add_field(name="Typing", value=f"{typing}ms") start = time.perf_counter()
await ctx.send(embed=e) await ctx.trigger_typing()
end = time.perf_counter()
latency = round(self.bot.latency * 1000, 2)
typing = round((end - start) * 1000, 2)
e = discord.Embed(title="Ping", color=discord.Color.teal())
e.add_field(name="Websocket", value=f"{latency}ms")
e.add_field(name="Typing", value=f"{typing}ms")
await ctx.send(embed=e)