Orbit / app /services /telegram_mod.py
Orbit Automations
Auto-sync from Julius-606/Orbit monorepo
4a693cf
################################################################################
#FILE: backend/app/services/telegram_mod.py
#VERSION: 1.0.1 | SYSTEM: Jarvis Protocol
################################################################################
import logging
import asyncio
# 🚀 FIX: Added 'app.' prefix
from app.core.config import settings
logger = logging.getLogger("Telegram-Bouncer")
class TelegramModerator:
def __init__(self):
self.bot_token = getattr(settings, "TELEGRAM_BOT_TOKEN", None)
self.banned_words = ["spoonfeed", "leak", "exam answers", "buy signal", "crypto pump"]
if self.bot_token:
logger.info("Telegram Bouncer is at the door. Checking IDs.")
else:
logger.warning("No Telegram bot token. The group chat is currently the Wild West.")
async def check_message(self, user_id: str, message_text: str) -> dict:
logger.info(f"Scanning message from user {user_id}...")
message_lower = message_text.lower()
for word in self.banned_words:
if word in message_lower:
logger.warning(f"Opp detected! User {user_id} used banned word: {word}")
return {
"action": "DELETE_AND_WARN",
"message": f"Bro, we don't do '{word}' here. Lock in and study. Strike 1."
}
if "anatomy" in message_lower or "usmle" in message_lower:
return {"action": "REACT", "emoji": "🧠", "message": "Valid academic discussion. Let him cook."}
return {"action": "NONE", "message": "Message clean. Vibe check passed."}
async def start_polling(self):
if not self.bot_token:
return
logger.info("Starting Telegram polling loop... Watchlist active.")
while True:
await asyncio.sleep(5)
telegram_bouncer = TelegramModerator()