mirror of https://github.com/stijndcl/didier
				
				
				
			
		
			
				
	
	
		
			54 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
| import discord
 | |
| from discord.ext import commands
 | |
| from decorators import help
 | |
| from enums.help_categories import Category
 | |
| from functions.scrapers.google import google_search
 | |
| 
 | |
| 
 | |
| class Google(commands.Cog):
 | |
|     def __init__(self, client):
 | |
|         self.client = client
 | |
| 
 | |
|     # Don't allow any commands to work when locked
 | |
|     def cog_check(self, ctx):
 | |
|         return not self.client.locked
 | |
| 
 | |
|     @commands.command(name="Google", aliases=["Gtfm", "Search"], usage="[Query]", case_insensitive=True)
 | |
|     @help.Category(Category.Other)
 | |
|     async def google(self, ctx, *query):
 | |
|         if not query:
 | |
|             return await ctx.reply("Je hebt geen query opgegeven.", mention_author=True)
 | |
| 
 | |
|         results, status = google_search(" ".join(query))
 | |
| 
 | |
|         if results is None:
 | |
|             return await ctx.send("Er ging iets fout (Response {})".format(status))
 | |
| 
 | |
|         # Filter out all Nones
 | |
|         elements = list(filter(lambda x: x is not None, results))
 | |
| 
 | |
|         embed = discord.Embed(colour=discord.Colour.blue())
 | |
|         embed.set_author(name="Google Search")
 | |
| 
 | |
|         # Empty list of results
 | |
|         if len(elements) == 0:
 | |
|             embed.description = "Geen resultaten gevonden."
 | |
|             return await ctx.reply(embed=embed, mention_author=False)
 | |
| 
 | |
|         # Cut excess results out
 | |
|         if len(elements) > 10:
 | |
|             elements = elements[:10]
 | |
| 
 | |
|         links = []
 | |
| 
 | |
|         for index, (link, title) in enumerate(elements):
 | |
|             links.append("{}: [{}]({})".format(index + 1, title, link))
 | |
| 
 | |
|         embed.description = "\n".join(links)
 | |
| 
 | |
|         await ctx.reply(embed=embed, mention_author=False)
 | |
| 
 | |
| 
 | |
| def setup(client):
 | |
|     client.add_cog(Google(client))
 |