From 4ff0630d663f6444af79d24dc29e3b867067f240 Mon Sep 17 00:00:00 2001 From: WhatDidYouExpect <89535984+WhatDidYouExpect@users.noreply.github.com> Date: Wed, 16 Jul 2025 19:27:12 +0200 Subject: [PATCH] You're the star of the show now baby! --- bot.py | 18 ++++++++++++++++++ modules/markovmemory.py | 8 +++++--- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/bot.py b/bot.py index 358ef07..74cf0b7 100644 --- a/bot.py +++ b/bot.py @@ -387,6 +387,24 @@ async def on_message(message: discord.Message) -> None: cleaned_message: str = preprocess_message(formatted_message) if cleaned_message: memory.append(cleaned_message) + message_metadata = { + "user_id": str(message.author.id), + "user_name": str(message.author), + "guild_id": str(message.guild.id) if message.guild else "DM", + "guild_name": str(message.guild.name) if message.guild else "DM", + "channel_id": str(message.channel.id), + "channel_name": str(message.channel), + "message": message.content, + "timestamp": time.time() + } + try: + if isinstance(memory, list): + memory.append({"_meta": message_metadata}) + else: + logger.warning("Memory is not a list; can't append metadata") + except Exception as e: + logger.warning(f"Failed to append metadata to memory: {e}") + save_memory(memory) sentiment_score = is_positive(message.content) # doesnt work but im scared to change the logic now please ignore diff --git a/modules/markovmemory.py b/modules/markovmemory.py index f903f59..3235035 100644 --- a/modules/markovmemory.py +++ b/modules/markovmemory.py @@ -34,13 +34,15 @@ def save_memory(memory): with open(MEMORY_FILE, "w") as f: json.dump(memory, f, indent=4) -# Train a Markov model using memory and optional additional data def train_markov_model(memory, additional_data=None): if not memory: return None - text = "\n".join(memory) + filtered_memory = [line for line in memory if isinstance(line, str)] if additional_data: - text += "\n" + "\n".join(additional_data) + filtered_memory.extend(line for line in additional_data if isinstance(line, str)) + if not filtered_memory: + return None + text = "\n".join(filtered_memory) model = markovify.NewlineText(text, state_size=2) return model