|
|
@@ -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:
|