diff options
| author | salmonik <raisersoft@proton.me> | 2026-04-23 06:41:17 +0200 |
|---|---|---|
| committer | salmonik <raisersoft@proton.me> | 2026-04-23 06:41:17 +0200 |
| commit | db162158b422135c927c0e571a254a5187cb0376 (patch) | |
| tree | 569448f9fa68bcab9583779867522646941a442b | |
| parent | uploader.py and voice fixes (diff) | |
| download | senator-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.py | 22 |
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 | ||
