GalaxyCogs/podcast/podcast.py

58 lines
No EOL
2.4 KiB
Python

import discord
from datetime import datetime
from redbot.core.bot import Red
from redbot.core import commands, checks, Config, bot
class Podcast(commands.Cog):
"""Provides a questions submission system for podcasts.
Developed by SeaswimmerTheFsh."""
def __init__(self, bot):
self.bot = bot
self.config = Config.get_conf(self, identifier=27548165)
self.config.register_global(
global_submission_channel = 0,
global_blacklisted_users = {}
)
self.config.register_guild(
submission_channel = 0,
blacklisted_users = {},
global_mode = True
)
@commands.command()
async def podcast(self, ctx, question: str):
"""Submits a question to the Podcast."""
prefix = await self.bot.get_valid_prefixes()
if await self.config.guild(ctx.guild).global_mode(True):
submission_channel = bot.get_channel(await self.config.global_submission_channel())
blacklisted_users = await self.config.global_blacklisted_users()
elif await self.config.guild(ctx.guild).global_mode(False):
submission_channel = bot.get_channel(await self.config.guild(ctx.guild).submission_channel())
blacklisted_users = await self.config.guild(ctx.guild).blacklisted_users()
else:
return
if ctx.author.id in blacklisted_users:
await ctx.author.send(content=f"You are blacklisted from ``{prefix}podcast``!")
return
else:
await submission_channel.send(content=f"{question}")
await ctx.send(content="Question submitted!")
@commands.group(autohelp=True)
@checks.admin_or_permissions(manage_guild=True)
@commands.guild_only()
async def podcastset(self, ctx):
"""Commands to configure the Podcast cog."""
@podcastset.command(name="global")
async def set_global_mode(self, ctx, enabled: bool):
"""Enables or disables global mode."""
if enabled == True:
await self.config.guild(ctx.guild).global_mode.set(True)
await ctx.send(content="``global_mode`` has been enabled.")
elif enabled == False:
await self.config.guild(ctx.guild).global_mode.set(False)
await ctx.send(content="``global_mode`` has been disabled.")
else:
await ctx.send(content="Please specify an argument!")