aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsalmonik <raisersoft@proton.me>2026-04-23 06:41:17 +0200
committersalmonik <raisersoft@proton.me>2026-04-23 06:41:17 +0200
commitdb162158b422135c927c0e571a254a5187cb0376 (patch)
tree569448f9fa68bcab9583779867522646941a442b
parentuploader.py and voice fixes (diff)
downloadsenator-sperma-db162158b422135c927c0e571a254a5187cb0376.tar.gz
senator-sperma-db162158b422135c927c0e571a254a5187cb0376.zip
better UX for web.py
Signed-off-by: salmonik <raisersoft@proton.me>
Diffstat (limited to '')
-rw-r--r--cogs/web.py22
1 files changed, 5 insertions, 17 deletions
diff --git a/cogs/web.py b/cogs/web.py
index b072e99..607d917 100644
--- a/cogs/web.py
+++ b/cogs/web.py
@@ -34,18 +34,8 @@ class Web(commands.Cog):
34 pass 34 pass
35 return None 35 return None
36 36
37 def _create_button(self, index, link):
38 """Create a button for sending search result."""
39 button = discord.ui.Button(label=f"Send Result {index}")
40
41 async def button_callback(interaction: discord.Interaction):
42 await interaction.response.send_message(link.get("href"))
43
44 button.callback = button_callback
45 return button
46
47 def _process_search_results(self, links, query): 37 def _process_search_results(self, links, query):
48 """Process search results and create embed with buttons.""" 38 """Process search results and create embed."""
49 embed = Embed(title="Search Results", description=f"Top results for: {query}", color=0x1E90FF) 39 embed = Embed(title="Search Results", description=f"Top results for: {query}", color=0x1E90FF)
50 view = discord.ui.View(disable_on_timeout=True) 40 view = discord.ui.View(disable_on_timeout=True)
51 41
@@ -56,8 +46,6 @@ class Web(commands.Cog):
56 title = youtube_title 46 title = youtube_title
57 47
58 embed.add_field(name=f"Result {i}", value=f"[{title}]({link.get('href')})", inline=False) 48 embed.add_field(name=f"Result {i}", value=f"[{title}]({link.get('href')})", inline=False)
59 button = self._create_button(i, link)
60 view.add_item(button)
61 49
62 return embed, view 50 return embed, view
63 51
@@ -70,7 +58,7 @@ class Web(commands.Cog):
70 ctx: discord.ApplicationContext, 58 ctx: discord.ApplicationContext,
71 query: str 59 query: str
72 ): 60 ):
73 await ctx.defer(ephemeral=True) 61 await ctx.defer()
74 headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"} 62 headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"}
75 encoded_query = urllib.parse.quote_plus(query) 63 encoded_query = urllib.parse.quote_plus(query)
76 url = f"https://duckduckgo.com/html/?q={encoded_query}" 64 url = f"https://duckduckgo.com/html/?q={encoded_query}"
@@ -79,7 +67,7 @@ class Web(commands.Cog):
79 logger.info(f"Query: {query}") 67 logger.info(f"Query: {query}")
80 68
81 if response.status_code != 200: 69 if response.status_code != 200:
82 await ctx.respond(content=f"Error: {response.status_code}", ephemeral=True) 70 await ctx.respond(content=f"Error: {response.status_code}")
83 logger.error(f"Error: {response.status_code}") 71 logger.error(f"Error: {response.status_code}")
84 return 72 return
85 73
@@ -87,12 +75,12 @@ class Web(commands.Cog):
87 links = soup.find_all("a", class_="result__a") 75 links = soup.find_all("a", class_="result__a")
88 76
89 if not links: 77 if not links:
90 await ctx.respond(content="No results found.", ephemeral=True) 78 await ctx.respond(content="No results found.")
91 logger.warning("No results found") 79 logger.warning("No results found")
92 return 80 return
93 81
94 embed, view = self._process_search_results(links, query) 82 embed, view = self._process_search_results(links, query)
95 await ctx.respond(embed=embed, view=view, ephemeral=True) 83 await ctx.respond(embed=embed, view=view)
96 logger.info("Search results sent") 84 logger.info("Search results sent")
97 85
98 86