diff --git a/.gitignore b/.gitignore index 74d14ea..04473bd 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,9 @@ # Never commit config data config.cnf +# Env vars for "real" installation +env.sh + # Byte-compiled / optimized / DLL files *.py[cod] diff --git a/bot.py b/bot.py index 6932eb3..c96a24e 100644 --- a/bot.py +++ b/bot.py @@ -27,8 +27,17 @@ class TelegramMonitorBot: (os.environ.get('DEBUG') is not None) and (os.environ.get('DEBUG').upper() != "false")) + if (self.debug): + print("🔵 DEBUG:", os.environ["DEBUG"]) + print("🔵 TELEGRAM_BOT_POSTGRES_URL:", os.environ["TELEGRAM_BOT_POSTGRES_URL"]) + print("🔵 TELEGRAM_BOT_TOKEN:", os.environ["TELEGRAM_BOT_TOKEN"]) + print("🔵 NOTIFY_CHAT:", os.environ['NOTIFY_CHAT'] if 'NOTIFY_CHAT' in os.environ else "") + print("🔵 MESSAGE_BAN_PATTERNS:\n", os.environ['MESSAGE_BAN_PATTERNS']) + print("🔵 MESSAGE_HIDE_PATTERNS:\n", os.environ['MESSAGE_HIDE_PATTERNS']) + print("🔵 NAME_BAN_PATTERNS:\n", os.environ['NAME_BAN_PATTERNS']) + # Channel to notify of violoations, e.g. '@channelname' - self.notify_chat = os.environ['NOTIFY_CHAT'] + self.notify_chat = os.environ['NOTIFY_CHAT'] if 'NOTIFY_CHAT' in os.environ else None # List of chat ids that bot should monitor self.chat_ids = ( @@ -120,6 +129,26 @@ class TelegramMonitorBot: # TODO: Replace lookalike unicode characters: # https://github.com/wanderingstan/Confusables + # Hide forwarded messages + if update.message.forward_date is not None: + # Logging + log_message = "❌ HIDE FORWARDED: {}".format(update.message.text.encode('utf-8')) + if self.debug: + update.message.reply_text(log_message) + print(log_message) + # Delete the message + update.message.delete() + # Log in database + s = session() + messageHide = MessageHide( + user_id=update.message.from_user.id, + message=update.message.text) + s.add(messageHide) + s.commit() + s.close() + # Notify channel + bot.sendMessage(chat_id=self.notify_chat, text=log_message) + if self.message_ban_re and self.message_ban_re.search(message): # Logging log_message = "❌ 🙅‍♂️ BAN MATCH: {}".format(update.message.text.encode('utf-8')) diff --git a/env_sample.sh b/env_sample.sh index 83917ed..3718794 100644 --- a/env_sample.sh +++ b/env_sample.sh @@ -1,6 +1,7 @@ # Example env vars for bot +# Copy this to `env.sh` and edit with your real vars -- it is ignored by git -export TELEGRAM_BOT_POSTGRES_URL="postgresql://postgres:postgres@localhost/origindb" +export TELEGRAM_BOT_POSTGRES_URL="postgresql://localhost/postgres" read -r -d '' MESSAGE_BAN_PATTERNS << 'EOF' # ETH @@ -25,3 +26,7 @@ export TELEGRAM_BOT_TOKEN="XXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" export NAME_BAN_PATTERNS="admin$" export CHAT_IDS="-250531994" + +# Needed to make these env vars visible to python +export MESSAGE_BAN_PATTERNS=$MESSAGE_BAN_PATTERNS +export MESSAGE_HIDE_PATTERNS=$MESSAGE_HIDE_PATTERNS diff --git a/model.py b/model.py index 7bbed81..46f4909 100644 --- a/model.py +++ b/model.py @@ -3,6 +3,7 @@ from sqlalchemy.orm import relationship, backref from sqlalchemy.ext.declarative import declarative_base import os +# Localhost url: postgresql://localhost/postgres postgres_url = os.environ["TELEGRAM_BOT_POSTGRES_URL"]