mirror of
https://github.com/SantaSpeen/RoyaltyIT-tg-bot.git
synced 2026-10-27 14:30:09 +00:00
Mutes beta 2
This commit is contained in:
1 parent
b9dbc830e1
commit
6335170a8f
2 files changed
+31
-13
No files matched your search
+20
-13
@@ -15,6 +15,7 @@ log = logging.getLogger("bot core")
|
|||||||
bot = Bot(token=config.bot_token)
|
bot = Bot(token=config.bot_token)
|
||||||
dp = Dispatcher(bot)
|
dp = Dispatcher(bot)
|
||||||
tools = Tools(config, dp)
|
tools = Tools(config, dp)
|
||||||
|
mute_all = False
|
||||||
mute_perm = types.ChatPermissions(
|
mute_perm = types.ChatPermissions(
|
||||||
can_send_messages=False,
|
can_send_messages=False,
|
||||||
can_send_media_messages=False,
|
can_send_media_messages=False,
|
||||||
@@ -100,15 +101,12 @@ async def mute(msg: types.Message):
|
|||||||
if reply_message:
|
if reply_message:
|
||||||
warn_user = reply_message.from_user
|
warn_user = reply_message.from_user
|
||||||
user_id = warn_user.id
|
user_id = warn_user.id
|
||||||
user_username = warn_user.username
|
await tools.set_user_permissions(user_id, msg.chat.id, mute_perm)
|
||||||
|
|
||||||
await msg.bot.restrict_chat_member(msg.chat.id, user_id, permissions=mute_perm)
|
|
||||||
message = "message"
|
|
||||||
|
|
||||||
else:
|
else:
|
||||||
message = "Сначала надо выбрать пользователя."
|
|
||||||
|
|
||||||
await msg.reply(message, parse_mode=ParseMode.MARKDOWN)
|
await msg.reply("Сначала надо выбрать пользователя.")
|
||||||
|
|
||||||
|
|
||||||
@dp.message_handler(regexp=r"\A(?:.|\/)(?:unmute|говори)", is_chat_admin=True, chat_type=ChatType.SUPERGROUP)
|
@dp.message_handler(regexp=r"\A(?:.|\/)(?:unmute|говори)", is_chat_admin=True, chat_type=ChatType.SUPERGROUP)
|
||||||
async def unmute(msg: types.Message):
|
async def unmute(msg: types.Message):
|
||||||
@@ -117,14 +115,11 @@ async def unmute(msg: types.Message):
|
|||||||
if reply_message:
|
if reply_message:
|
||||||
warn_user = reply_message.from_user
|
warn_user = reply_message.from_user
|
||||||
user_id = warn_user.id
|
user_id = warn_user.id
|
||||||
user_username = warn_user.username
|
await tools.set_user_permissions(user_id, msg.chat.id, unmute_perm)
|
||||||
await msg.bot.restrict_chat_member(msg.chat.id, user_id, permissions=unmute_perm)
|
|
||||||
message = "message"
|
|
||||||
|
|
||||||
else:
|
else:
|
||||||
message = "Сначала надо выбрать пользователя."
|
|
||||||
|
|
||||||
await msg.reply(message, parse_mode=ParseMode.MARKDOWN)
|
await msg.reply("Сначала надо выбрать пользователя.")
|
||||||
|
|
||||||
|
|
||||||
@dp.message_handler(regexp=r"\A(?:.|\/)(?:ban|бан)", is_chat_admin=True, chat_type=ChatType.SUPERGROUP)
|
@dp.message_handler(regexp=r"\A(?:.|\/)(?:ban|бан)", is_chat_admin=True, chat_type=ChatType.SUPERGROUP)
|
||||||
@@ -168,13 +163,25 @@ async def new_chat_member(msg: types.Message):
|
|||||||
|
|
||||||
@dp.message_handler(content_types=['text', 'photo', 'document', 'audio', 'sticker', 'animation', 'voice', 'video_note'])
|
@dp.message_handler(content_types=['text', 'photo', 'document', 'audio', 'sticker', 'animation', 'voice', 'video_note'])
|
||||||
async def all_messages(msg: types.Message):
|
async def all_messages(msg: types.Message):
|
||||||
text = msg.text
|
global mute_all
|
||||||
|
text = msg.text.lower()
|
||||||
user_id = msg.from_user.id
|
user_id = msg.from_user.id
|
||||||
log.info(f"New message from {user_id}(@{msg.from_user.username}) in {msg.chat.id}: '{text}'; "
|
log.info(f"New message from {user_id}(@{msg.from_user.username}) in {msg.chat.id}: '{text}'; "
|
||||||
f"Type: {msg.content_type}")
|
f"Type: {msg.content_type}")
|
||||||
|
|
||||||
if msg.chat.type in [ChatType.SUPERGROUP, ChatType.GROUP]: # Если сообщение пришло из группы
|
if msg.chat.type in [ChatType.SUPERGROUP, ChatType.GROUP]: # Если сообщение пришло из группы
|
||||||
pass
|
|
||||||
|
admins = await tools.admins
|
||||||
|
if user_id in admins['ids']:
|
||||||
|
if text == "суд идёт":
|
||||||
|
mute_all = True
|
||||||
|
await msg.reply("Да прибудет тишина!")
|
||||||
|
elif text == "суд окончен":
|
||||||
|
mute_all = False
|
||||||
|
await msg.reply("Говорить разрешено.")
|
||||||
|
|
||||||
|
elif mute_all:
|
||||||
|
await msg.delete()
|
||||||
|
|
||||||
for k, v in config.static_message.items():
|
for k, v in config.static_message.items():
|
||||||
if k == text[1:len(k) + 1]:
|
if k == text[1:len(k) + 1]:
|
||||||
|
|||||||
@@ -44,6 +44,17 @@ class Tools:
|
|||||||
user = Users(user_id=user_id)
|
user = Users(user_id=user_id)
|
||||||
return user
|
return user
|
||||||
|
|
||||||
|
async def set_user_permissions(self, user_id, chat_id, permissions):
|
||||||
|
try:
|
||||||
|
await self.dispatcher.bot.restrict_chat_member(chat_id, user_id, permissions=permissions)
|
||||||
|
return True
|
||||||
|
except Exception as e:
|
||||||
|
await self.dispatcher.bot.send_message(chat_id,
|
||||||
|
f"Ошибка при изменении прав на [пользователе](tg://user?id={user_id}).\n"
|
||||||
|
f"Exception: `{e}`",
|
||||||
|
parse_mode=ParseMode.MARKDOWN)
|
||||||
|
return False
|
||||||
|
|
||||||
async def kick_chat_member(self, chat_id, user_id):
|
async def kick_chat_member(self, chat_id, user_id):
|
||||||
try:
|
try:
|
||||||
await self.dispatcher.bot.kick_chat_member(chat_id, user_id)
|
await self.dispatcher.bot.kick_chat_member(chat_id, user_id)
|
||||||
|
|||||||
Reference in new issue
Block a user