improve statistics linking
This commit is contained in:
+6
-7
@@ -225,7 +225,7 @@ def send_stats(message):
|
|||||||
|
|
||||||
def check_unwanted_list(type_message: types.Message) -> bool:
|
def check_unwanted_list(type_message: types.Message) -> bool:
|
||||||
""" Check for mentioning unwanted persons in text. """
|
""" Check for mentioning unwanted persons in text. """
|
||||||
unwanted_phrases = ['дудар', 'хауди', 'howdy', 'dudar']
|
unwanted_phrases = ['дудар', 'хауди', 'dudar']
|
||||||
for phrase in unwanted_phrases:
|
for phrase in unwanted_phrases:
|
||||||
if phrase in type_message.text.casefold():
|
if phrase in type_message.text.casefold():
|
||||||
return True
|
return True
|
||||||
@@ -243,18 +243,18 @@ def check_chat(message: types.Message):
|
|||||||
|
|
||||||
|
|
||||||
@bot.message_handler(
|
@bot.message_handler(
|
||||||
func=lambda a: a.from_user.id == ADMIN_ID and a.text.split()[0] in ('del', 'ban', 'unban'),
|
func=lambda a: a.from_user.id == ADMIN_ID and a.text.split()[0] in ('!del', '!ban', '!unban'),
|
||||||
content_types=['text'])
|
content_types=['text'])
|
||||||
def admin_panel(message: types.Message):
|
def admin_panel(message: types.Message):
|
||||||
""" Admin panel. """
|
""" Admin panel. """
|
||||||
if message.text == 'del':
|
if message.text == '!del':
|
||||||
bot.delete_message(message.chat.id, message.reply_to_message.id)
|
bot.delete_message(message.chat.id, message.reply_to_message.id)
|
||||||
bot.delete_message(message.chat.id, message.id)
|
bot.delete_message(message.chat.id, message.id)
|
||||||
elif message.text == 'ban':
|
elif message.text == '!ban':
|
||||||
bot.delete_message(message.chat.id, message.reply_to_message.id)
|
bot.delete_message(message.chat.id, message.reply_to_message.id)
|
||||||
bot.delete_message(message.chat.id, message.id)
|
bot.delete_message(message.chat.id, message.id)
|
||||||
bot.ban_chat_member(message.chat.id, message.from_user.id)
|
bot.ban_chat_member(message.chat.id, message.from_user.id)
|
||||||
elif message.text.split()[0] == 'unban':
|
elif message.text.split()[0] == '!unban':
|
||||||
bot.unban_chat_member(message.chat.id, message.text.split()[1])
|
bot.unban_chat_member(message.chat.id, message.text.split()[1])
|
||||||
|
|
||||||
|
|
||||||
@@ -264,8 +264,7 @@ def unwanted_mentions(message: types.Message):
|
|||||||
""" Count messages. """
|
""" Count messages. """
|
||||||
with shelve.open('chat_stats', writeback=True) as s:
|
with shelve.open('chat_stats', writeback=True) as s:
|
||||||
s['Messages'][message.from_user.id] = s['Messages'].get(message.from_user.id,
|
s['Messages'][message.from_user.id] = s['Messages'].get(message.from_user.id,
|
||||||
{'Name': message.from_user.first_name,
|
{'User': message.from_user,
|
||||||
'Username': message.from_user.username,
|
|
||||||
'Count': 0})
|
'Count': 0})
|
||||||
s['Messages'][message.from_user.id]['Count'] += 1
|
s['Messages'][message.from_user.id]['Count'] += 1
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -18,7 +18,7 @@ def scheduler():
|
|||||||
time.sleep(300)
|
time.sleep(300)
|
||||||
|
|
||||||
|
|
||||||
@repeat(every().day.at('06:00'), PYTHONCHATRU, None)
|
@repeat(every().day.at('07:00'), PYTHONCHATRU, None)
|
||||||
def remind(chat_to_repeat, today):
|
def remind(chat_to_repeat, today):
|
||||||
""" Remind holiday. """
|
""" Remind holiday. """
|
||||||
if not today:
|
if not today:
|
||||||
@@ -39,7 +39,7 @@ def remind(chat_to_repeat, today):
|
|||||||
bot.send_message(chat_to_repeat, notification, parse_mode='HTML')
|
bot.send_message(chat_to_repeat, notification, parse_mode='HTML')
|
||||||
|
|
||||||
|
|
||||||
@repeat(every().day.at('05:00'), PYTHONCHATRU)
|
@repeat(every().day.at('06:00'), PYTHONCHATRU)
|
||||||
def stat_report(chat_to_repeat):
|
def stat_report(chat_to_repeat):
|
||||||
bot.send_message(chat_to_repeat, report.create_report_text(),
|
bot.send_message(chat_to_repeat, report.create_report_text(),
|
||||||
parse_mode='HTML', disable_web_page_preview=True)
|
parse_mode='HTML', disable_web_page_preview=True)
|
||||||
|
|||||||
+3
-4
@@ -10,10 +10,9 @@ def create_report_text():
|
|||||||
s['Messages'][sorted(s['Messages'], key=lambda a: s['Messages'][a]['Count'], reverse=True)[n]])
|
s['Messages'][sorted(s['Messages'], key=lambda a: s['Messages'][a]['Count'], reverse=True)[n]])
|
||||||
|
|
||||||
for i, flooder in enumerate(flooders):
|
for i, flooder in enumerate(flooders):
|
||||||
username = flooder['Username']
|
user = flooder['User']
|
||||||
name = flooder['Name']
|
|
||||||
count = flooder['Count']
|
count = flooder['Count']
|
||||||
text += f'\n {i + 1}. <a href="https://t.me/{username}">{name}</a> ({count})'
|
text += f'\n {i + 1}. <a href="tg://user?id={user.id}">{user.first_name}</a> ({count})'
|
||||||
report = f"""<code>Доброе утро, Мир!</code>
|
report = f"""<code>Доброе утро, Мир!</code>
|
||||||
<b>За прошедшие сутки</b>
|
<b>За прошедшие сутки</b>
|
||||||
|
|
||||||
@@ -21,7 +20,7 @@ def create_report_text():
|
|||||||
├ <b>Пользователей: </b>{s['Banned']}
|
├ <b>Пользователей: </b>{s['Banned']}
|
||||||
└ <b>Сообщений: </b>{s['Deleted']}
|
└ <b>Сообщений: </b>{s['Deleted']}
|
||||||
|
|
||||||
🏆 <b>Почётные флудеры</b>{text}"""
|
🏆 <b>Главные флудеры</b>{text}"""
|
||||||
return report
|
return report
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user