Changes for mainnet.

Hide forwarded messages.
This commit is contained in:
Stan James 2018-10-16 17:54:47 +02:00
parent ffe3790946
commit e1a29f06a9
4 changed files with 40 additions and 2 deletions

3
.gitignore vendored
View File

@ -1,6 +1,9 @@
# Never commit config data # Never commit config data
config.cnf config.cnf
# Env vars for "real" installation
env.sh
# Byte-compiled / optimized / DLL files # Byte-compiled / optimized / DLL files
*.py[cod] *.py[cod]

31
bot.py
View File

@ -27,8 +27,17 @@ class TelegramMonitorBot:
(os.environ.get('DEBUG') is not None) and (os.environ.get('DEBUG') is not None) and
(os.environ.get('DEBUG').upper() != "false")) (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 "<undefined>")
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' # 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 # List of chat ids that bot should monitor
self.chat_ids = ( self.chat_ids = (
@ -120,6 +129,26 @@ class TelegramMonitorBot:
# TODO: Replace lookalike unicode characters: # TODO: Replace lookalike unicode characters:
# https://github.com/wanderingstan/Confusables # 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): if self.message_ban_re and self.message_ban_re.search(message):
# Logging # Logging
log_message = "❌ 🙅‍♂️ BAN MATCH: {}".format(update.message.text.encode('utf-8')) log_message = "❌ 🙅‍♂️ BAN MATCH: {}".format(update.message.text.encode('utf-8'))

View File

@ -1,6 +1,7 @@
# Example env vars for bot # 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' read -r -d '' MESSAGE_BAN_PATTERNS << 'EOF'
# ETH # ETH
@ -25,3 +26,7 @@ export TELEGRAM_BOT_TOKEN="XXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
export NAME_BAN_PATTERNS="admin$" export NAME_BAN_PATTERNS="admin$"
export CHAT_IDS="-250531994" 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

View File

@ -3,6 +3,7 @@ from sqlalchemy.orm import relationship, backref
from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.ext.declarative import declarative_base
import os import os
# Localhost url: postgresql://localhost/postgres
postgres_url = os.environ["TELEGRAM_BOT_POSTGRES_URL"] postgres_url = os.environ["TELEGRAM_BOT_POSTGRES_URL"]