44
55from disnake .ext import commands
66
7+
78class ForumsModule (commands .Cog ):
89 def __init__ (self , bot ):
910 self .bot = bot
@@ -55,14 +56,22 @@ async def close_thread(self, ctx: commands.Context):
5556
5657 ## Slash commands ##
5758
58- @commands .slash_command (name = "forum" , description = "Управление форумами" , default_member_permissions = disnake .Permissions (manage_channels = True ))
59+ @commands .slash_command (
60+ name = "forum" ,
61+ description = "Управление форумами" ,
62+ default_member_permissions = disnake .Permissions (manage_channels = True ),
63+ )
5964 async def forum (self , interaction : disnake .CommandInteraction ):
6065 pass
6166
6267 ### Add new forum command ###
6368
6469 @forum .sub_command (name = "add" , description = "Создать новый форум" )
65- async def forum_add (self , interaction : disnake .CommandInteraction , name : str = commands .Param (description = "Название форума" )):
70+ async def forum_add (
71+ self ,
72+ interaction : disnake .CommandInteraction ,
73+ name : str = commands .Param (description = "Название форума" ),
74+ ):
6675 if isinstance (interaction .channel , disnake .DMChannel ):
6776 errEmbed = disnake .Embed (
6877 title = "Ошибка" ,
@@ -75,8 +84,10 @@ async def forum_add(self, interaction: disnake.CommandInteraction, name: str = c
7584 else self .bot .user .display_avatar .url
7685 )
7786 errEmbed .set_footer (text = f"{ interaction .author .name } " , icon_url = user_avatar )
78- return await interaction .response .send_message (embed = errEmbed , ephemeral = True )
79-
87+ return await interaction .response .send_message (
88+ embed = errEmbed , ephemeral = True
89+ )
90+
8091 await interaction .response .defer (ephemeral = True )
8192 forum = await interaction .guild .create_forum_channel (name )
8293 data = self .bot .load_data ()
@@ -103,9 +114,13 @@ async def forum_add(self, interaction: disnake.CommandInteraction, name: str = c
103114 await interaction .edit_original_message (embed = respEmbed )
104115
105116 ### Remove forum command ###
106-
117+
107118 @forum .sub_command (name = "rem" , description = "Удалить форум" )
108- async def forum_rem (self , interaction : disnake .CommandInteraction , forum : str = commands .Param (description = "Удаляемый форум" , autocomplete = True )):
119+ async def forum_rem (
120+ self ,
121+ interaction : disnake .CommandInteraction ,
122+ forum : str = commands .Param (description = "Удаляемый форум" , autocomplete = True ),
123+ ):
109124 if isinstance (interaction .channel , disnake .DMChannel ):
110125 errEmbed = disnake .Embed (
111126 title = "Ошибка" ,
@@ -118,8 +133,10 @@ async def forum_rem(self, interaction: disnake.CommandInteraction, forum: str =
118133 else self .bot .user .display_avatar .url
119134 )
120135 errEmbed .set_footer (text = f"{ interaction .author .name } " , icon_url = user_avatar )
121- return await interaction .response .send_message (embed = errEmbed , ephemeral = True )
122-
136+ return await interaction .response .send_message (
137+ embed = errEmbed , ephemeral = True
138+ )
139+
123140 errEmbed = disnake .Embed (
124141 title = "Упс!" ,
125142 color = disnake .Color .red (),
@@ -170,8 +187,15 @@ async def forum_rem(self, interaction: disnake.CommandInteraction, forum: str =
170187
171188 ### Toggle welcome message ###
172189
173- @forum .sub_command (name = "toggle_message" , description = "Включить или выключить приветственное сообщение" )
174- async def forum_welcome_toggle (self , interaction : disnake .CommandInteraction , value : bool = commands .Param (description = "True - включить, False - выключить" )):
190+ @forum .sub_command (
191+ name = "toggle_message" ,
192+ description = "Включить или выключить приветственное сообщение" ,
193+ )
194+ async def forum_welcome_toggle (
195+ self ,
196+ interaction : disnake .CommandInteraction ,
197+ value : bool = commands .Param (description = "True - включить, False - выключить" ),
198+ ):
175199 if isinstance (interaction .channel , disnake .DMChannel ):
176200 errEmbed = disnake .Embed (
177201 title = "Ошибка" ,
@@ -184,8 +208,10 @@ async def forum_welcome_toggle(self, interaction: disnake.CommandInteraction, va
184208 else self .bot .user .display_avatar .url
185209 )
186210 errEmbed .set_footer (text = f"{ interaction .author .name } " , icon_url = user_avatar )
187- return await interaction .response .send_message (embed = errEmbed , ephemeral = True )
188-
211+ return await interaction .response .send_message (
212+ embed = errEmbed , ephemeral = True
213+ )
214+
189215 await interaction .response .defer (ephemeral = True )
190216 data = self .bot .load_data ()
191217 sid = str (interaction .guild .id )
@@ -219,8 +245,14 @@ async def forum_welcome_toggle(self, interaction: disnake.CommandInteraction, va
219245
220246 ### Close after setting ###
221247
222- @forum .sub_command (name = "close_after" , description = "Установить время закрытия до ветки" )
223- async def close_after (self , interaction : disnake .CommandInteraction , hours : int = commands .Param (description = "Время в часах." )):
248+ @forum .sub_command (
249+ name = "close_after" , description = "Установить время закрытия до ветки"
250+ )
251+ async def close_after (
252+ self ,
253+ interaction : disnake .CommandInteraction ,
254+ hours : int = commands .Param (description = "Время в часах." ),
255+ ):
224256 if isinstance (interaction .channel , disnake .DMChannel ):
225257 errEmbed = disnake .Embed (
226258 title = "Ошибка" ,
@@ -233,8 +265,10 @@ async def close_after(self, interaction: disnake.CommandInteraction, hours: int
233265 else self .bot .user .display_avatar .url
234266 )
235267 errEmbed .set_footer (text = f"{ interaction .author .name } " , icon_url = user_avatar )
236- return await interaction .response .send_message (embed = errEmbed , ephemeral = True )
237-
268+ return await interaction .response .send_message (
269+ embed = errEmbed , ephemeral = True
270+ )
271+
238272 await interaction .response .defer (ephemeral = True )
239273 data = self .bot .load_data ()
240274 sid = str (interaction .guild .id )
@@ -262,7 +296,9 @@ async def close_after(self, interaction: disnake.CommandInteraction, hours: int
262296
263297 ### Welcome message setting ###
264298
265- @forum .sub_command (name = "message" , description = "Установить приветственное сообщение" )
299+ @forum .sub_command (
300+ name = "message" , description = "Установить приветственное сообщение"
301+ )
266302 async def forum_welcome_message (self , interaction : disnake .CommandInteraction ):
267303 if isinstance (interaction .channel , disnake .DMChannel ):
268304 errEmbed = disnake .Embed (
@@ -276,8 +312,10 @@ async def forum_welcome_message(self, interaction: disnake.CommandInteraction):
276312 else self .bot .user .display_avatar .url
277313 )
278314 errEmbed .set_footer (text = f"{ interaction .author .name } " , icon_url = user_avatar )
279- return await interaction .response .send_message (embed = errEmbed , ephemeral = True )
280-
315+ return await interaction .response .send_message (
316+ embed = errEmbed , ephemeral = True
317+ )
318+
281319 class WelcomeModal (disnake .ui .Modal ):
282320 def __init__ (self ):
283321 components = [
@@ -314,15 +352,24 @@ async def callback(self, modal_inter: disnake.ModalInteraction):
314352 if interaction .author .display_avatar
315353 else self .bot .user .display_avatar .url
316354 )
317- errEmbed .set_footer (text = f"{ interaction .author .name } " , icon_url = author_avatar )
355+ errEmbed .set_footer (
356+ text = f"{ interaction .author .name } " , icon_url = author_avatar
357+ )
318358 await modal_inter .response .send_message (embed = respEmbed , ephemeral = True )
319359
320360 await interaction .response .send_modal (modal = WelcomeModal ())
321361
322362 ### Delete closed threads setting ###
323363
324- @forum .sub_command (name = "deleteclosed" , description = "Включить/выключить кнопку удаления закрытых веток" )
325- async def forum_delete_closed (self , interaction : disnake .CommandInteraction , value : bool = commands .Param (description = "True или False" )):
364+ @forum .sub_command (
365+ name = "deleteclosed" ,
366+ description = "Включить/выключить кнопку удаления закрытых веток" ,
367+ )
368+ async def forum_delete_closed (
369+ self ,
370+ interaction : disnake .CommandInteraction ,
371+ value : bool = commands .Param (description = "True или False" ),
372+ ):
326373 if isinstance (interaction .channel , disnake .DMChannel ):
327374 errEmbed = disnake .Embed (
328375 title = "Ошибка" ,
@@ -335,8 +382,10 @@ async def forum_delete_closed(self, interaction: disnake.CommandInteraction, val
335382 else self .bot .user .display_avatar .url
336383 )
337384 errEmbed .set_footer (text = f"{ interaction .author .name } " , icon_url = user_avatar )
338- return await interaction .response .send_message (embed = errEmbed , ephemeral = True )
339-
385+ return await interaction .response .send_message (
386+ embed = errEmbed , ephemeral = True
387+ )
388+
340389 await interaction .response .defer (ephemeral = True )
341390 data = self .bot .load_data ()
342391 sid = str (interaction .guild .id )
@@ -373,10 +422,12 @@ async def forum_delete_closed(self, interaction: disnake.CommandInteraction, val
373422 ### Autocomplete for forum deletion ###
374423
375424 @forum_rem .autocomplete ("forum" )
376- async def removeforum_autocomplete (self , inter : disnake .ApplicationCommandInteraction , user_input : str ):
425+ async def removeforum_autocomplete (
426+ self , inter : disnake .ApplicationCommandInteraction , user_input : str
427+ ):
377428 if isinstance (inter .channel , disnake .DMChannel ):
378429 return
379-
430+
380431 data = self .bot .load_data ()
381432 sid = str (inter .guild .id )
382433 results = []
@@ -390,6 +441,5 @@ async def removeforum_autocomplete(self, inter: disnake.ApplicationCommandIntera
390441 return results [:25 ]
391442
392443
393-
394444def setup (bot ):
395- bot .add_cog (ForumsModule (bot ))
445+ bot .add_cog (ForumsModule (bot ))
0 commit comments