Add ban words

This commit is contained in:
Rykov7
2023-09-02 20:12:33 +03:00
parent b83ccfab85
commit 9e4d2d1bd7
3 changed files with 81 additions and 76 deletions
+20 -20
View File
@@ -3,7 +3,7 @@
import logging import logging
from telebot import logger from telebot import logger
from datetime import datetime as dt from datetime import datetime as dt
from ..models import Chat, Quote, User, session from ..models import Chat, Quote, session
from ..config import bot, ADMIN_ID, types from ..config import bot, ADMIN_ID, types
from .. import reminder from .. import reminder
from .. import report from .. import report
@@ -194,22 +194,22 @@ def set_logging_level(message: types.Message):
logging.info("[LEVEL] Установлен уровень INFO") logging.info("[LEVEL] Установлен уровень INFO")
@bot.message_handler(func=is_admin, commands=["promote"], chat_types=["supergroup", "group"]) # @bot.message_handler(func=is_admin, commands=["promote"], chat_types=["supergroup", "group"])
def promote_user(message: types.Message): # def promote_user(message: types.Message):
if message.reply_to_message: # if message.reply_to_message:
user = message.reply_to_message.from_user # user = message.reply_to_message.from_user
#
user_db = session.query(User).filter_by(tg_id=user.id) # user_db = session.query(User).filter_by(tg_id=user.id)
if not user_db: # if not user_db:
permission = 1 # permission = 1
session.add(tg_id=user.id, # session.add(tg_id=user.id,
first_name=user.first_name, # first_name=user.first_name,
last_name=user.last_name, # last_name=user.last_name,
username=user.username, # username=user.username,
permissions=permission) # permissions=permission)
else: # else:
permission = user_db.permission * 2 # permission = user_db.permission * 2
user_db.update(permissions=permission) # user_db.update(permissions=permission)
session.commit() # session.commit()
#
logger.info(f'[{user.first_name} {user.last_name}] повышен до {permission}.') # logger.info(f'[{user.first_name} {user.last_name}] повышен до {permission}.')
+5
View File
@@ -1,3 +1,5 @@
import logging.handlers
from .models import session from .models import session
from .models import Chat from .models import Chat
from .config import * from .config import *
@@ -6,8 +8,11 @@ from .config import *
def in_spam_list(message: types.Message) -> bool: def in_spam_list(message: types.Message) -> bool:
"""Check for mentioning unwanted persons in text.""" """Check for mentioning unwanted persons in text."""
antispam_is_enabled = session.query(Chat.antispam).filter_by(chat_id=message.chat.id).first()[0] antispam_is_enabled = session.query(Chat.antispam).filter_by(chat_id=message.chat.id).first()[0]
logging.critical(str(antispam_is_enabled))
if message.from_user.id not in WHITEIDS and antispam_is_enabled: if message.from_user.id not in WHITEIDS and antispam_is_enabled:
logging.critical('if message.from_user.id not in WHITEIDS and antispam_is_enabled: TRUE')
for text in SPAM: for text in SPAM:
logging.critical(str(text.casefold()) + ' in ' + str(message.text.casefold()))
if text.casefold() in message.text.casefold(): if text.casefold() in message.text.casefold():
logging.info( logging.info(
"!BAN!" + LOG_COMM % ( "!BAN!" + LOG_COMM % (
+56 -56
View File
@@ -49,59 +49,59 @@ class Chat(Base):
return f'Chat({self.chat_id=}, {self.title=})' return f'Chat({self.chat_id=}, {self.title=})'
class User(Base): # class User(Base):
__tablename__ = "users" # __tablename__ = "users"
id = Column(Integer, primary_key=True) # id = Column(Integer, primary_key=True)
tg_id = Column(Integer, unique=True) # tg_id = Column(Integer, unique=True)
first_name = Column(String) # first_name = Column(String)
last_name = Column(String) # last_name = Column(String)
username = Column(String) # username = Column(String)
permissions = Column(Integer) # permissions = Column(Integer)
#
def __repr__(self): # def __repr__(self):
return f'User({self.first_name} {self.last_name} {self.username})' # return f'User({self.first_name} {self.last_name} {self.username})'
#
class Role(Base): # class Role(Base):
__tablename__ = 'roles' # __tablename__ = 'roles'
id = Column(Integer, primary_key=True) # id = Column(Integer, primary_key=True)
name = Column(String(64), unique=True) # name = Column(String(64), unique=True)
default = Column(Boolean, default=False, index=True) # default = Column(Boolean, default=False, index=True)
permissions = Column(Integer) # permissions = Column(Integer)
users = relationship('User', backref='role', lazy='dynamic') # users = relationship('User', backref='role', lazy='dynamic')
#
def add_permission(self, perm): # def add_permission(self, perm):
if not self.has_permission(perm): # if not self.has_permission(perm):
self.permissions += perm # self.permissions += perm
#
def remove_permission(self, perm): # def remove_permission(self, perm):
if self.has_permission(perm): # if self.has_permission(perm):
self.permissions -= perm # self.permissions -= perm
#
def reset_permissions(self): # def reset_permissions(self):
self.permissions = 0 # self.permissions = 0
#
def has_permission(self, perm): # def has_permission(self, perm):
return self.permissions & perm == perm # return self.permissions & perm == perm
#
#
@staticmethod # @staticmethod
def insert_roles(): # def insert_roles():
roles = { # roles = {
"User": [Permission.USE_COMMANDS], # "User": [Permission.USE_COMMANDS],
"Moderator": [Permission.USE_COMMANDS, Permission.SEND_LINKS, # "Moderator": [Permission.USE_COMMANDS, Permission.SEND_LINKS,
Permission.MODIFY_QUOTES, Permission.MODERATE], # Permission.MODIFY_QUOTES, Permission.MODERATE],
"Administrator": [Permission.USE_COMMANDS, Permission.SEND_LINKS, # "Administrator": [Permission.USE_COMMANDS, Permission.SEND_LINKS,
Permission.MODIFY_QUOTES, Permission.MODERATE, # Permission.MODIFY_QUOTES, Permission.MODERATE,
Permission.ADMIN], # Permission.ADMIN],
} # }
default_role = 'User' # default_role = 'User'
for r in roles: # for r in roles:
role = Role.query.filter_by(name=r).first() # role = Role.query.filter_by(name=r).first()
if role is None: # if role is None:
role = Role(name=r) # role = Role(name=r)
role.reset_permissions() # role.reset_permissions()
for perm in roles[r]: # for perm in roles[r]:
role.add_permission(perm) # role.add_permission(perm)
role.default = (role.name == default_role) # role.default = (role.name == default_role)
session.add(role) # session.add(role)
session.commit() # session.commit()