Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
T
telegram_bot_antispammer
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Иванова Мария Кирилловна
telegram_bot_antispammer
Commits
125163de
Commit
125163de
authored
Apr 06, 2025
by
Иванова Мария Кирилловна
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Вывод id в логах заменен на вывод названия чата
parent
995b153d
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
25 additions
and
9 deletions
+25
-9
bot.py
bot.py
+25
-9
No files found.
bot.py
View file @
125163de
...
...
@@ -116,19 +116,36 @@ class TelegramLogHandler(logging.Handler):
self
.
chat_id
=
chat_id
async
def
send_log
(
self
,
message
,
chat_id
):
await
self
.
bot
.
send_message
(
chat_id
,
message
)
"""Отправка лог-сообщения в Telegram."""
try
:
await
self
.
bot
.
send_message
(
chat_id
,
message
)
except
AiogramError
as
e
:
logger
.
error
(
f
"Failed to send log to chat: {e}"
,
extra
=
{
"chat_id"
:
self
.
chat_id
})
async
def
get_chat_name
(
self
,
chat_id
):
"""Получаем название чата асинхронно."""
try
:
chat
=
await
self
.
bot
.
get_chat
(
chat_id
)
return
chat
.
title
# Название чата
except
Exception
as
e
:
logger
.
error
(
f
"Error retrieving chat title: {e}"
,
extra
=
{
"chat_id"
:
chat_id
})
return
"Unknown Chat"
def
emit
(
self
,
record
):
"""Метод логирования, который будет обрабатывать сообщение и отправлять его в чат."""
log_message
=
self
.
format
(
record
)
# Используем глобальный `log_chat_id` вместо получения его из extra
#log_message = f"Log Message: {log_message}"
chat_id
=
getattr
(
record
,
'chat_id'
,
self
.
chat_id
)
log_message
=
f
"Chat ID: {chat_id}
\n
{log_message}"
# Получаем chat_id из атрибутов записи (если он задан)
chat_id
=
getattr
(
record
,
'chat_id'
,
self
.
chat_id
)
# Асинхронно запрашиваем название чата и отправляем лог
async
def
handle_log
():
chat_name
=
await
self
.
get_chat_name
(
chat_id
)
log_message_with_chat_name
=
f
"Chat: {chat_name}
\n
{log_message}"
await
self
.
send_log
(
log_message_with_chat_name
,
self
.
chat_id
)
loop
=
asyncio
.
get_event_loop
()
loop
.
create_task
(
self
.
send_log
(
log_message
,
log_chat_id
))
loop
.
create_task
(
handle_log
(
))
# Настройка логирования
...
...
@@ -432,4 +449,3 @@ async def main():
if
__name__
==
"__main__"
:
SPAM_KEYWORDS
=
preprocess_spam_keywords
(
SPAM_KEYWORDS
,
log_chat_id
)
asyncio
.
run
(
main
())
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment