# context.py import os import yaml import discord base_dir = os.path.dirname(__file__) with open(os.path.join(base_dir, "settings.yml"), "r", encoding="utf-8") as f: settings = yaml.safe_load(f) CONTEXT_LIMIT = settings["context"].get("max_messages", 15) async def fetch_recent_context(channel, limit=CONTEXT_LIMIT): messages = [] async for message in channel.history(limit=100): # Skip other bots (but not Delta herself) if message.author.bot and message.author.id != channel.guild.me.id: continue raw = message.clean_content clean = raw.strip().replace("\n", " ").replace("\r", "") clean = " ".join(clean.split()) # Collapse all extra whitespace if not clean: continue if clean.startswith("!"): continue line = f"{message.created_at.strftime('%Y-%m-%d %H:%M')} - {message.author.display_name}: {clean}" messages.append(line) if len(messages) >= limit: break messages.reverse() return messages def format_context(lines: list[str]) -> str: return "\n".join(lines)