diff --git a/test_irc.py b/test_irc.py new file mode 100644 index 0000000..6747885 --- /dev/null +++ b/test_irc.py @@ -0,0 +1,48 @@ +#!/usr/bin/env python3 +""" +Simple IRC test to see if messages are received +""" +import irc.bot +from dotenv import load_dotenv +import os + +load_dotenv() + +class TestBot(irc.bot.SingleServerIRCBot): + def __init__(self): + token = os.getenv("TWITCH_OAUTH_TOKEN") + nickname = os.getenv("TWITCH_BOT_NICKNAME") + channel = os.getenv("TWITCH_CHANNEL") + + print(f"Bot: {nickname}") + print(f"Channel: {channel}") + print(f"Token: {token[:15]}...") + + irc.bot.SingleServerIRCBot.__init__( + self, + [("irc.chat.twitch.tv", 6667, token)], + nickname, + nickname + ) + self.channel = channel + + def on_welcome(self, connection, event): + print(f"✅ Connected! Joining {self.channel}") + connection.cap("REQ", ":twitch.tv/membership") + connection.cap("REQ", ":twitch.tv/tags") + connection.cap("REQ", ":twitch.tv/commands") + connection.join(self.channel) + + def on_pubmsg(self, connection, event): + username = event.source.nick + message = event.arguments[0] + print(f"📨 MESSAGE | {username}: {message}") + +if __name__ == "__main__": + print("Starting IRC test bot...") + print("Write a message in your Twitch chat!") + print("Press Ctrl+C to stop") + print() + + bot = TestBot() + bot.start() diff --git a/test_mention.py b/test_mention.py new file mode 100644 index 0000000..66c005e --- /dev/null +++ b/test_mention.py @@ -0,0 +1,37 @@ +#!/usr/bin/env python3 +""" +Test script to check if mention detection works +""" +from utils import MentionDetector + +# Test with your bot name +detector = MentionDetector(bot_name="Kenearos") + +print("Testing Mention Detection for bot: Kenearos") +print("=" * 60) +print(f"Generated nicknames: {detector.nicknames}") +print() + +# Test messages +test_messages = [ + "@Kenearos Hi", + "Kenearos: wie gehts dir?", + "Kene was meinst du?", + "Hey Kenearos!", + "kenearos test", + "KENEAROS TEST", + "Hi wie gehts", + "Hallo", + "test message without bot", +] + +for msg in test_messages: + is_mentioned = detector.is_mentioned(msg) + is_greeting = detector.is_ambiguous_greeting(msg) + content = detector.extract_content(msg) if is_mentioned else "N/A" + + print(f"Message: '{msg}'") + print(f" Mentioned: {is_mentioned}") + print(f" Ambiguous greeting: {is_greeting}") + print(f" Extracted content: '{content}'") + print() diff --git a/utils.py b/utils.py index 826a549..674a170 100644 --- a/utils.py +++ b/utils.py @@ -49,11 +49,16 @@ class MentionDetector: """Generate common nicknames from bot name""" nicknames = [] - # For kenearosmd, generate: Kene, Kenearos - if len(bot_name) >= 4: - nicknames.append(bot_name[:4]) # First 4 chars (Kene) - if len(bot_name) >= 8: - nicknames.append(bot_name[:8]) # First 8 chars (Kenearos) + # Generate nicknames at 4, 6, 8, 10 character positions + # For kenearosmd: Kene, Kenear, Kenearos, kenearosmd + for length in [4, 6, 8, 10, 12]: + if len(bot_name) >= length: + nicknames.append(bot_name[:length]) + + # Also add common variations + # If name ends with 'md', add version without it + if bot_name.lower().endswith('md') and len(bot_name) > 2: + nicknames.append(bot_name[:-2]) # kenearos from kenearosmd # Remove duplicates and the full name nicknames = [n for n in set(nicknames) if n != bot_name]