misc/add compliment bridge command
This commit is contained in:
		| @@ -148,7 +148,7 @@ class Karma(commands.Cog): | ||||
|     """Karma Cog for Havoc""" | ||||
|     def __init__(self, bot): | ||||
|         importlib.reload(constants) | ||||
|         self.bot = bot | ||||
|         self.bot: discord.Bot = bot | ||||
|         self.util = Util(self.bot) | ||||
|         # self.karma_regex = regex.compile(r'(\w+)(\+\+|\-\-)') | ||||
|         self.karma_regex: Pattern = regex.compile(r'(\b\w+(?:\s+\w+)*)(\+\+($|\s)|\-\-($|\s))') | ||||
|   | ||||
							
								
								
									
										34
									
								
								cogs/misc.py
									
									
									
									
									
								
							
							
						
						
									
										34
									
								
								cogs/misc.py
									
									
									
									
									
								
							| @@ -255,6 +255,40 @@ class Misc(commands.Cog): | ||||
|         except Exception as e: | ||||
|             traceback.print_exc() | ||||
|             return await ctx.respond(f"Insult failed :(\nError: {str(e)}") | ||||
|          | ||||
|     @bridge.bridge_command() | ||||
|     async def compliment(self, ctx, *, | ||||
|                      recipient: Optional[str] = None) -> None: | ||||
|         """ | ||||
|         Compliment someone (or yourself) | ||||
|         Args: | ||||
|             ctx (Any) | ||||
|             recipient (Optional[str]) | ||||
|         Returns: | ||||
|             None | ||||
|         """ | ||||
|         try: | ||||
|             authorDisplay: str = ctx.author.display_name if not(ctx.author.display_name is None)\ | ||||
|                 else ctx.message.author.display_name | ||||
|  | ||||
|             if recipient is None: | ||||
|                 recipient: str = authorDisplay.strip() | ||||
|             else: | ||||
|                 if discord.utils.raw_mentions(recipient): | ||||
|                     # There are mentions | ||||
|                     recipient_id: int = discord.utils.raw_mentions(recipient)[0] # First mention | ||||
|                     recipient: str = self.bot.get_guild(ctx.guild.id)\ | ||||
|                         .get_member(recipient_id).display_name | ||||
|                 else: | ||||
|                     recipient: str = discord.utils.escape_mentions(recipient.strip())          | ||||
|             with ctx.channel.typing(): | ||||
|                 compliment: str = await self.util.get_compliment(recipient) | ||||
|                 if compliment: | ||||
|                     return await ctx.respond(compliment) | ||||
|                 return await ctx.respond("Compliment failed :(") | ||||
|         except Exception as e: | ||||
|             traceback.print_exc() | ||||
|             return await ctx.respond(f"Compliment failed :(\nError: {str(e)}") | ||||
|  | ||||
|     @bridge.bridge_command(aliases=['whiskey']) | ||||
|     async def whisky(self, ctx, *, | ||||
|   | ||||
| @@ -3,7 +3,9 @@ | ||||
|  | ||||
| import logging | ||||
| import traceback | ||||
| from typing import Optional | ||||
| from discord.ext import bridge, commands, tasks | ||||
| from util.radio_util import get_now_playing | ||||
| import discord | ||||
|  | ||||
| class Radio(commands.Cog): | ||||
| @@ -14,7 +16,7 @@ class Radio(commands.Cog): | ||||
|             'sfm': (1145182936002482196, 1221615558492029050), # Tuple: Guild Id, Chan Id | ||||
|         }         | ||||
|         self.STREAM_URL: str = "https://relay.sfm.codey.lol/aces.ogg" | ||||
|          | ||||
|         self.LAST_NP_TRACK: Optional[str] = None | ||||
|         try: | ||||
|             self.radio_state_loop.cancel() | ||||
|         except Exception as e: | ||||
| @@ -75,7 +77,7 @@ class Radio(commands.Cog): | ||||
|             traceback.print_exc() | ||||
|             return | ||||
|      | ||||
|     @tasks.loop(seconds=2.0) | ||||
|     @tasks.loop(seconds=5.0) | ||||
|     async def radio_state_loop(self) -> None: | ||||
|         """Radio State Loop""" | ||||
|         try: | ||||
| @@ -93,7 +95,12 @@ class Radio(commands.Cog): | ||||
|                 source = discord.FFmpegOpusAudio(self.STREAM_URL, | ||||
|                                                  before_options="-timeout 3000000") | ||||
|                 vc.play(source, after=lambda e: logging.info("Error: %s", e)\ | ||||
|                     if e else None)             | ||||
|                     if e else None) | ||||
|             # Get Now Playing | ||||
|             np_track = await get_now_playing() | ||||
|             if np_track and not self.LAST_NP_TRACK == np_track: | ||||
|                 self.LAST_NP_TRACK: str = np_track | ||||
|                 await vc.channel.set_status(f"Now playing: {np_track}") | ||||
|         except: | ||||
|             traceback.print_exc() | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user