Add ban words
This commit is contained in:
+20
-20
@@ -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}.')
|
||||||
@@ -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
@@ -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()
|
||||||
Reference in New Issue
Block a user