mirror of
https://github.com/cdryzun/tg_bot_collections.git
synced 2025-04-29 00:27:09 +08:00
fix: update same message
This commit is contained in:
parent
5fb3fc49d0
commit
f2b73750a8
@ -7,6 +7,7 @@ import traceback
|
|||||||
from functools import update_wrapper
|
from functools import update_wrapper
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import Any, Callable, TypeVar
|
from typing import Any, Callable, TypeVar
|
||||||
|
from expiringdict import ExpiringDict
|
||||||
|
|
||||||
import requests
|
import requests
|
||||||
from telebot import TeleBot
|
from telebot import TeleBot
|
||||||
@ -23,6 +24,8 @@ T = TypeVar("T", bound=Callable)
|
|||||||
|
|
||||||
BOT_MESSAGE_LENGTH = 4000
|
BOT_MESSAGE_LENGTH = 4000
|
||||||
|
|
||||||
|
REPLY_MESSAGE_CACHE = ExpiringDict(max_len=1000, max_age_seconds=300)
|
||||||
|
|
||||||
|
|
||||||
def bot_reply_first(message: Message, who: str, bot: TeleBot) -> Message:
|
def bot_reply_first(message: Message, who: str, bot: TeleBot) -> Message:
|
||||||
"""Create the first reply message which make user feel the bot is working."""
|
"""Create the first reply message which make user feel the bot is working."""
|
||||||
@ -39,6 +42,11 @@ def bot_reply_markdown(
|
|||||||
it will fallback to plain text in case of any failure
|
it will fallback to plain text in case of any failure
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
|
cache_key = f"{reply_id.chat.id}_{reply_id.message_id}"
|
||||||
|
if cache_key in REPLY_MESSAGE_CACHE and REPLY_MESSAGE_CACHE[cache_key] == text:
|
||||||
|
print(f"Skipping duplicate message for {cache_key}")
|
||||||
|
return True
|
||||||
|
REPLY_MESSAGE_CACHE[cache_key] = text
|
||||||
if len(text.encode("utf-8")) <= BOT_MESSAGE_LENGTH or not split_text:
|
if len(text.encode("utf-8")) <= BOT_MESSAGE_LENGTH or not split_text:
|
||||||
bot.edit_message_text(
|
bot.edit_message_text(
|
||||||
f"*{who}*:\n{telegramify_markdown.convert(text)}",
|
f"*{who}*:\n{telegramify_markdown.convert(text)}",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user