Add try/except
This commit is contained in:
		
							parent
							
								
									d363960426
								
							
						
					
					
						commit
						abe268391f
					
				
							
								
								
									
										30
									
								
								src/bot.py
									
									
									
									
									
								
							
							
						
						
									
										30
									
								
								src/bot.py
									
									
									
									
									
								
							| @ -9,7 +9,7 @@ from dotenv import load_dotenv | |||||||
| import youtube_dl | import youtube_dl | ||||||
| 
 | 
 | ||||||
| from error import ErrorHandler | from error import ErrorHandler | ||||||
| from message import NowPlayingMessage, QueuedMessage | from message import NowPlayingMessage, QueuedMessage, ErrorMessage | ||||||
| 
 | 
 | ||||||
| load_dotenv() | load_dotenv() | ||||||
| 
 | 
 | ||||||
| @ -57,19 +57,27 @@ class Music(commands.Cog): | |||||||
|   @tasks.loop() |   @tasks.loop() | ||||||
|   async def _handle_playback(self): |   async def _handle_playback(self): | ||||||
|     while True: |     while True: | ||||||
|       await self._queue_lock.acquire() |       try: | ||||||
|       ctx, song = await self._queue.get() |         await self._queue_lock.acquire() | ||||||
|       audio = discord.FFmpegPCMAudio(song.audio_url, **self._ffmpeg_options) |         ctx, song = await self._queue.get() | ||||||
|  |         audio = discord.FFmpegPCMAudio(song.audio_url, **self._ffmpeg_options) | ||||||
| 
 | 
 | ||||||
|       def after(err): |         def after(err): | ||||||
|         if err: |           if err: | ||||||
|           print(f"Player error: {err}") |             print(f"Player error: {err}") | ||||||
|  |           self._queue.task_done() | ||||||
|  |           self._queue_lock.release() | ||||||
|  |         ctx.voice_client.play(audio, after=after) | ||||||
|  |         embed = NowPlayingMessage(title=song.title, url=song.webpage_url) | ||||||
|  |         await ctx.send(embed=embed) | ||||||
|  |       # pylint: disable=broad-except | ||||||
|  |       except Exception as err: | ||||||
|  |         print(f"Error during playback: {err}") | ||||||
|  |         if ctx: | ||||||
|  |           embed = ErrorMessage(str(err)) | ||||||
|  |           await ctx.send(embed=embed) | ||||||
|         self._queue.task_done() |         self._queue.task_done() | ||||||
|         self._queue_lock.release() |         self._queue_lock.release() | ||||||
|       ctx.voice_client.play(audio, after=after) |  | ||||||
| 
 |  | ||||||
|       embed = NowPlayingMessage(title=song.title, url=song.webpage_url) |  | ||||||
|       await ctx.send(embed=embed) |  | ||||||
| 
 | 
 | ||||||
|   @_handle_playback.before_loop |   @_handle_playback.before_loop | ||||||
|   async def before_handle_playback(self): |   async def before_handle_playback(self): | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user