# cmd_twitch.py from twitchio.ext import commands from cmd_common import common_commands as cc from modules.permissions import has_permission def setup(bot, db_conn=None, log=None): """ This function is called to load/attach commands to the `bot`. We also attach the db_conn and log so the commands can use them. """ # auto-create the quotes table if it doesn't exist if bot.db_conn and bot.log: cc.create_quotes_table(bot.db_conn, bot.log) @bot.command(name="greet") async def greet(ctx): result = cc.greet(ctx.author.display_name, "Twitch") await ctx.send(result) @bot.command(name="ping") async def ping(ctx): result = cc.ping() await ctx.send(result) @bot.command(name="howl") async def howl(ctx): result = cc.howl(ctx.author.display_name) await ctx.send(result) @bot.command(name="hi") async def hi_command(ctx): user_id = str(ctx.author.id) # Twitch user ID user_roles = [role.lower() for role in ctx.author.badges.keys()] # "roles" from Twitch badges if not has_permission("hi", user_id, user_roles, "twitch"): return await ctx.send("You don't have permission to use this command.") await ctx.send("Hello there!") @bot.command(name="quote") async def quote(ctx: commands.Context): if not bot.db_conn: return await ctx.send("Database is unavailable, sorry.") parts = ctx.message.content.strip().split() args = parts[1:] if len(parts) > 1 else [] def get_twitch_game_for_channel(chan_name): # Placeholder for your actual logic to fetch the current game return "SomeGame" await cc.handle_quote_command( db_conn=bot.db_conn, log_func=bot.log, is_discord=False, ctx=ctx, args=args, get_twitch_game_for_channel=get_twitch_game_for_channel )