mirror of https://github.com/stijndcl/didier
				
				
				
			Command to find source code on github
							parent
							
								
									cb0b4a419e
								
							
						
					
					
						commit
						5b510d1f45
					
				|  | @ -0,0 +1,51 @@ | |||
| import inspect | ||||
| import os | ||||
| from typing import Optional | ||||
| 
 | ||||
| from discord.ext import commands | ||||
| 
 | ||||
| from didier import Didier | ||||
| 
 | ||||
| 
 | ||||
| class Meta(commands.Cog): | ||||
|     """Cog for Didier-related commands""" | ||||
| 
 | ||||
|     client: Didier | ||||
| 
 | ||||
|     def __init__(self, client: Didier): | ||||
|         self.client = client | ||||
| 
 | ||||
|     @commands.command(name="Source", aliases=["Src"]) | ||||
|     async def source(self, ctx: commands.Context, *, command_name: Optional[str] = None): | ||||
|         """Command to get links to the source code of Didier""" | ||||
|         repo_home = "https://github.com/stijndcl/didier" | ||||
| 
 | ||||
|         if command_name is None: | ||||
|             return await ctx.reply(repo_home, mention_author=False) | ||||
| 
 | ||||
|         if command_name == "help": | ||||
|             command = self.client.help_command | ||||
|             src = type(self.client.help_command) | ||||
|             filename = inspect.getsourcefile(src) | ||||
|         else: | ||||
|             command = self.client.get_command(command_name) | ||||
|             src = command.callback.__code__ | ||||
|             filename = src.co_filename | ||||
| 
 | ||||
|         if command is None: | ||||
|             return await ctx.reply(f"Geen commando gevonden voor ``{command_name}``.", mention_author=False) | ||||
| 
 | ||||
|         lines, first_line = inspect.getsourcelines(src) | ||||
| 
 | ||||
|         if filename is None: | ||||
|             return await ctx.reply(f"Geen code gevonden voor ``{command_name}``.", mention_author=False) | ||||
| 
 | ||||
|         file_location = os.path.relpath(filename).replace("\\", "/") | ||||
| 
 | ||||
|         github_url = f"{repo_home}/blob/master/{file_location}#L{first_line}-L{first_line + len(lines) - 1}" | ||||
|         await ctx.reply(github_url, mention_author=False) | ||||
| 
 | ||||
| 
 | ||||
| async def setup(client: Didier): | ||||
|     """Load the cog""" | ||||
|     await client.add_cog(Meta(client)) | ||||
		Loading…
	
		Reference in New Issue