bot: Made curl convert to md
All checks were successful
Build Docker / Build Docker (push) Successful in 33s
All checks were successful
Build Docker / Build Docker (push) Successful in 33s
This commit is contained in:
parent
be888fac87
commit
a74943dec3
37
bot.py
37
bot.py
@ -4,6 +4,7 @@ import discord
|
|||||||
from discord import app_commands
|
from discord import app_commands
|
||||||
import requests
|
import requests
|
||||||
import dns.resolver
|
import dns.resolver
|
||||||
|
import markdownify
|
||||||
|
|
||||||
load_dotenv()
|
load_dotenv()
|
||||||
TOKEN = os.getenv('DISCORD_TOKEN')
|
TOKEN = os.getenv('DISCORD_TOKEN')
|
||||||
@ -90,11 +91,41 @@ async def curl(ctx, url: str):
|
|||||||
proxyURL = "https://proxy.hnsproxy.au"
|
proxyURL = "https://proxy.hnsproxy.au"
|
||||||
response = requests.get(url, proxies={"http": proxyURL, "https": proxyURL},verify=False)
|
response = requests.get(url, proxies={"http": proxyURL, "https": proxyURL},verify=False)
|
||||||
output = response.text
|
output = response.text
|
||||||
if (len(output) > 1900):
|
# Get BODY only
|
||||||
output = output[:1900]
|
output = output.split("<body")[1]
|
||||||
await ctx.response.send_message(f"Response for {url}:\n{output}")
|
output = output.split("</body>")[0]
|
||||||
|
output = output.split(">", 1)[1]
|
||||||
|
# Replace any relative links with absolute links
|
||||||
|
output = output.replace('href="/', 'href="' + url + '/')
|
||||||
|
parsed = markdownify.markdownify(output, heading_style="ATX")
|
||||||
|
# Delete any empty lines
|
||||||
|
parsed = "\n".join([s for s in parsed.splitlines() if s.strip()])
|
||||||
|
|
||||||
|
output = response.text
|
||||||
|
# Get title
|
||||||
|
if (output.find("<title>") != -1):
|
||||||
|
title = output.split("<title>")[1]
|
||||||
|
title = title.split("</title>")[0]
|
||||||
|
else:
|
||||||
|
title = url
|
||||||
|
if (len(parsed) > 4096):
|
||||||
|
parsed = parsed[:4096]
|
||||||
|
# Delete any incomplete lines
|
||||||
|
parsed = "\n".join(parsed.splitlines()[:-1])
|
||||||
|
parsed = parsed + "\n..."
|
||||||
|
|
||||||
|
# if url is a tld only replace it with the url https://hns.au (due to Discord not allowing tld only links)
|
||||||
|
if (url.find(".") == -1):
|
||||||
|
url = "https://hns.au"
|
||||||
|
# Create an embed
|
||||||
|
embed = discord.Embed(title=title, url=url, description=parsed)
|
||||||
|
embed.set_footer(text="Parsed by HNSProxy",icon_url="https://hns.au/assets/img/favicon.png")
|
||||||
|
embed.timestamp = discord.utils.utcnow()
|
||||||
|
await ctx.response.send_message(embed=embed)
|
||||||
except requests.exceptions.RequestException as e:
|
except requests.exceptions.RequestException as e:
|
||||||
await ctx.response.send_message(f"An error occurred: {e}")
|
await ctx.response.send_message(f"An error occurred: {e}")
|
||||||
|
except Exception as e:
|
||||||
|
await ctx.response.send_message(f"An error occurred: {e}")
|
||||||
|
|
||||||
@tree.command(name="invite", description="Invite me to your server")
|
@tree.command(name="invite", description="Invite me to your server")
|
||||||
async def invite(ctx):
|
async def invite(ctx):
|
||||||
|
@ -2,3 +2,4 @@ discord.py
|
|||||||
python-dotenv
|
python-dotenv
|
||||||
requests
|
requests
|
||||||
dnspython
|
dnspython
|
||||||
|
markdownify
|
Loading…
Reference in New Issue
Block a user