Kaynağa Gözat

Adding configurable delay to video preview

main
Rocketsoup 1 ay önce
ebeveyn
işleme
dcd9f7cce0
1 değiştirilmiş dosya ile 12 ekleme ve 1 silme
  1. 12
    1
      rocketbot/cogs/videopreviewcog.py

+ 12
- 1
rocketbot/cogs/videopreviewcog.py Dosyayı Görüntüle

@@ -2,6 +2,7 @@ import asyncio
2 2
 import json
3 3
 import re
4 4
 import subprocess
5
+from datetime import timedelta
5 6
 
6 7
 from discord import Message
7 8
 from discord.ext.commands import Cog
@@ -53,6 +54,13 @@ class VideoPreviewCog(BaseCog, name='Video Link Previews'):
53 54
 		brief='Video link previews',
54 55
 		description='Whether links to certain social media videos should show previews.',
55 56
 	)
57
+	SETTING_DELAY = CogSetting(
58
+		'delay',
59
+		timedelta,
60
+		default_value=3,
61
+		brief='delay before attempting to fetch a preview',
62
+		description='How long to wait after a message is posted to see if Discord successfully loads a video preview',
63
+	)
56 64
 	SETTING_INSTAGRAM = CogSetting(
57 65
 		'instagram',
58 66
 		bool,
@@ -95,6 +103,7 @@ class VideoPreviewCog(BaseCog, name='Video Link Previews'):
95 103
 		)
96 104
 		Self = VideoPreviewCog
97 105
 		self.add_setting(Self.SETTING_ENABLED)
106
+		self.add_setting(Self.SETTING_DELAY)
98 107
 		self.add_setting(Self.SETTING_INSTAGRAM)
99 108
 		self.add_setting(Self.SETTING_FACEBOOK)
100 109
 		self.add_setting(Self.SETTING_TWITTER)
@@ -139,7 +148,9 @@ class VideoPreviewCog(BaseCog, name='Video Link Previews'):
139 148
 		return links
140 149
 
141 150
 	async def _wait_for_preview(self, message: Message, links: list[MessageLink]):
142
-		await asyncio.sleep(3)
151
+		Self = VideoPreviewCog
152
+		delay: timedelta = self.get_guild_setting(message.guild, Self.SETTING_DELAY)
153
+		await asyncio.sleep(delay.total_seconds)
143 154
 		# Look for embeds already showing the video
144 155
 		self.log(message.guild, "Checking message for embeds")
145 156
 		for embed in message.embeds:

Loading…
İptal
Kaydet