Fix logging, fix shelve .db extensions

This commit is contained in:
Rykov7
2024-06-02 13:05:31 +03:00
parent 39ba68c07c
commit 91a365067c
4 changed files with 25 additions and 23 deletions
+1 -1
View File
@@ -163,7 +163,7 @@ async def translate_layout(message: types.Message):
await bot.send_message(message.chat.id, message.reply_to_message.text.translate(ENG_RUS_TABLE)) await bot.send_message(message.chat.id, message.reply_to_message.text.translate(ENG_RUS_TABLE))
@bot.message_handler(commands=["quote", "цитата"]) @bot.message_handler(commands=["q", "quote", "цитата"])
async def stan_speak(message: types.Message): async def stan_speak(message: types.Message):
logging.info( logging.info(
LOG_COMM LOG_COMM
+3 -1
View File
@@ -20,5 +20,7 @@ RULES_URL = os.environ.get("rules_url", "https://telegra.ph/pythonchatru-07-07")
if not is_url_reachable(RULES_URL): if not is_url_reachable(RULES_URL):
raise LookupError(f"STAN rules url({RULES_URL}) is not reachable") raise LookupError(f"STAN rules url({RULES_URL}) is not reachable")
logging.basicConfig(level=logging.INFO, format="%(asctime)s %(message)s", datefmt="%Y-%m-%d %H:%M:%S") logging.basicConfig(level=logging.INFO, format="%(asctime)s %(message)s", datefmt="%Y-%m-%d %H:%M:%S", force=True)
logger.setLevel(logging.ERROR) logger.setLevel(logging.ERROR)
logging.critical(f'LOGGER {logging.getLogger()}: ')
+4 -5
View File
@@ -3,7 +3,6 @@ import logging
import os import os
import random import random
import shelve import shelve
from pathlib import Path
from .config import ROLLBACK from .config import ROLLBACK
from .constants import DATA, types from .constants import DATA, types
@@ -29,9 +28,9 @@ def create_report_text(chat_id):
report = "" report = ""
top_users = "" top_users = ""
flooders = [] flooders = []
spammer_icons = ('🐷', '🐒', '🐔') spammer_icons = ('🐷', '🐒', '🐔', '👽')
current_spammer_face = random.choice(spammer_icons) current_spammer_face = random.choice(spammer_icons)
if os.path.exists(f"{DATA}{chat_id}.db"): if os.path.exists(f"{DATA}{chat_id}"):
with shelve.open(f"{DATA}{chat_id}", writeback=True) as s: with shelve.open(f"{DATA}{chat_id}", writeback=True) as s:
for user_id in ROLLBACK: for user_id in ROLLBACK:
if user_id in s["Messages"] and s["Messages"][user_id]["Count"] > 10: if user_id in s["Messages"] and s["Messages"][user_id]["Count"] > 10:
@@ -68,7 +67,7 @@ def create_report_text(chat_id):
""" """
return report return report
else: else:
return f"Невозможно получить статистику.\n{DATA}{chat_id}.db не существует, возможно запрос в приватном чате. " return f"Невозможно получить статистику.\n{DATA}{chat_id} не существует, возможно запрос в приватном чате. "
def reset_report_stats(chat_id): def reset_report_stats(chat_id):
@@ -84,7 +83,7 @@ def reset_report_stats(chat_id):
def update_stats(message: types.Message): def update_stats(message: types.Message):
if not Path(f"{DATA}{message.chat.id}.db").exists(): if not os.path.exists(f"{DATA}{message.chat.id}"):
reset_report_stats(message.chat.id) reset_report_stats(message.chat.id)
with shelve.open(f"{DATA}{message.chat.id}", writeback=True) as shelve_db: with shelve.open(f"{DATA}{message.chat.id}", writeback=True) as shelve_db:
if "Messages" not in shelve_db: if "Messages" not in shelve_db:
+17 -16
View File
@@ -73,22 +73,6 @@ async def add_stan_quote(message: types.Message):
await bot.send_message(message.chat.id, f"⛔️ Не добавил, есть токое: {quote}", parse_mode='Markdown') await bot.send_message(message.chat.id, f"⛔️ Не добавил, есть токое: {quote}", parse_mode='Markdown')
@bot.message_handler(func=is_white_id, commands=["add_spam"])
async def add_spam_handler(message: types.Message):
if message.reply_to_message and message.reply_to_message.text:
quote = (message.quote and message.quote.text) or message.reply_to_message.text
logging.error(f'{session.query(BadWord).filter_by(word=quote).first()}')
if not session.query(BadWord).filter_by(word=quote).first():
add_spam(message.chat.id, quote)
ok_message = await bot.send_message(message.chat.id, f"⭐️ Добавил в спам: {quote}", parse_mode='Markdown')
await bot.delete_message(message.chat.id, message.id)
await asyncio.sleep(3)
await bot.delete_message(message.chat.id, ok_message.id)
logging.info(LOG_COMM % (message.chat.title, message.from_user.id, message.from_user.full_name, f'[SPAM] {message.reply_to_message.text}'))
else:
await bot.send_message(message.chat.id, f"⛔️ Не добавил, есть токое: {quote}", parse_mode='Markdown')
@bot.message_handler(func=is_white_id, commands=["remove"]) @bot.message_handler(func=is_white_id, commands=["remove"])
async def remove_stan_quote(message: types.Message): async def remove_stan_quote(message: types.Message):
if message.reply_to_message and message.reply_to_message.text: if message.reply_to_message and message.reply_to_message.text:
@@ -103,6 +87,23 @@ async def remove_stan_quote(message: types.Message):
else: else:
await bot.send_message(message.chat.id, f"⛔️ Нет такого: {quote}", parse_mode='Markdown') await bot.send_message(message.chat.id, f"⛔️ Нет такого: {quote}", parse_mode='Markdown')
@bot.message_handler(func=is_white_id, commands=["add_spam"])
async def add_spam_handler(message: types.Message):
if message.reply_to_message and message.reply_to_message.text:
quote = (message.quote and message.quote.text) or message.reply_to_message.text
logging.error(f'{session.query(BadWord).filter_by(word=quote).first()}')
if not session.query(BadWord).filter_by(word=quote).first():
add_spam(message.chat.id, quote)
ok_message = await bot.send_message(message.chat.id, f"⭐️🤬 Добавил в спам: {quote}", parse_mode='Markdown')
await bot.delete_message(message.chat.id, message.id)
await asyncio.sleep(3)
await bot.delete_message(message.chat.id, ok_message.id)
logging.info(LOG_COMM % (message.chat.title, message.from_user.id, message.from_user.full_name, f'[SPAM] {message.reply_to_message.text}'))
else:
await bot.send_message(message.chat.id, f"⛔️🤬 Не добавил, есть такое в спаме: {quote}", parse_mode='Markdown')
@bot.message_handler(func=is_white_id, commands=["info"]) @bot.message_handler(func=is_white_id, commands=["info"])
async def get_user_info(message: types.Message): async def get_user_info(message: types.Message):
if replied_message := message.reply_to_message: if replied_message := message.reply_to_message: