mirror of https://github.com/stijndcl/didier
				
				
				
			Show search result in google embed
							parent
							
								
									831459a321
								
							
						
					
					
						commit
						c47f908e57
					
				|  | @ -22,7 +22,6 @@ class GoogleSlash(commands.Cog): | ||||||
|             return await interaction.reply("Er ging iets fout (Response {})".format(result.status_code)) |             return await interaction.reply("Er ging iets fout (Response {})".format(result.status_code)) | ||||||
| 
 | 
 | ||||||
|         embed = create_google_embed(result) |         embed = create_google_embed(result) | ||||||
|         print("got here") |  | ||||||
|         await interaction.reply(embed=embed) |         await interaction.reply(embed=embed) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1,17 +1,21 @@ | ||||||
| from typing import Optional, List | from typing import List | ||||||
| 
 | 
 | ||||||
| import discord | import discord | ||||||
| from bs4 import BeautifulSoup | from bs4 import BeautifulSoup | ||||||
| from dataclasses import dataclass | from dataclasses import dataclass | ||||||
| from requests import get | from requests import get | ||||||
| from urllib.parse import urlencode | from urllib.parse import urlencode, unquote_plus | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| @dataclass | @dataclass | ||||||
| class SearchResult: | class SearchResult: | ||||||
|     status_code: int |     status_code: int | ||||||
|  |     query: str | ||||||
|     results: List[str] |     results: List[str] | ||||||
| 
 | 
 | ||||||
|  |     def __post_init__(self): | ||||||
|  |         self.query = unquote_plus(self.query[2:]) | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| def google_search(query) -> SearchResult: | def google_search(query) -> SearchResult: | ||||||
|     """ |     """ | ||||||
|  | @ -27,7 +31,7 @@ def google_search(query) -> SearchResult: | ||||||
|     resp = get("https://www.google.com/search?{}&num=20&hl=en".format(query), headers=headers) |     resp = get("https://www.google.com/search?{}&num=20&hl=en".format(query), headers=headers) | ||||||
| 
 | 
 | ||||||
|     if resp.status_code != 200: |     if resp.status_code != 200: | ||||||
|         return SearchResult(resp.status_code, []) |         return SearchResult(resp.status_code, query, []) | ||||||
| 
 | 
 | ||||||
|     bs = BeautifulSoup(resp.text, "html.parser") |     bs = BeautifulSoup(resp.text, "html.parser") | ||||||
| 
 | 
 | ||||||
|  | @ -52,10 +56,10 @@ def google_search(query) -> SearchResult: | ||||||
| 
 | 
 | ||||||
|     # Map to urls |     # Map to urls | ||||||
|     links = [] |     links = [] | ||||||
|     for (link, title) in results: |     for (l, t) in results: | ||||||
|         links.append(f"[{title}]({link})") |         links.append(f"[{t}]({l})") | ||||||
| 
 | 
 | ||||||
|     return SearchResult(200, links[:10]) |     return SearchResult(200, query, links[:10]) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def create_google_embed(result: SearchResult) -> discord.Embed: | def create_google_embed(result: SearchResult) -> discord.Embed: | ||||||
|  | @ -76,4 +80,10 @@ def create_google_embed(result: SearchResult) -> discord.Embed: | ||||||
| 
 | 
 | ||||||
|     embed.description = "\n".join(links) |     embed.description = "\n".join(links) | ||||||
| 
 | 
 | ||||||
|  |     # Add query into embed | ||||||
|  |     if len(result.query) > 256: | ||||||
|  |         embed.title = result.query[:253] + "..." | ||||||
|  |     else: | ||||||
|  |         embed.title = result.query | ||||||
|  | 
 | ||||||
|     return embed |     return embed | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue