Fix forward: resolve entity before forwarding, catch PeerIdInvalidError
get_entity ensures Telethon has the peer cached before forwarding. Wrap in try/except so a bad destination logs an error instead of crashing the entire message handler. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
6c2c07430a
commit
df2cab6b2b
@ -214,8 +214,13 @@ class Bot():
|
|||||||
if destination == None:
|
if destination == None:
|
||||||
logger.info("(chat_id, msg_id, cfg_id)=({0}, {1}, {2}): Destination is None".format(chat_id, message.id, i))
|
logger.info("(chat_id, msg_id, cfg_id)=({0}, {1}, {2}): Destination is None".format(chat_id, message.id, i))
|
||||||
continue
|
continue
|
||||||
await event.forward_to(destination)
|
try:
|
||||||
logger.info("(chat_id, msg_id, cfg_id)=({0}, {1}, {2}): Forwarded".format(chat_id, message.id, i))
|
dest_entity = await self.__bot.get_entity(destination)
|
||||||
|
await event.forward_to(dest_entity)
|
||||||
|
logger.info("(chat_id, msg_id, cfg_id)=({0}, {1}, {2}): Forwarded".format(chat_id, message.id, i))
|
||||||
|
except Exception as e:
|
||||||
|
logger.error("(chat_id, msg_id, cfg_id)=({0}, {1}, {2}): Forward to {3} failed: {4}".format(
|
||||||
|
chat_id, message.id, i, destination, e))
|
||||||
|
|
||||||
async def __needs_skip(self, filter: dict, message) -> bool:
|
async def __needs_skip(self, filter: dict, message) -> bool:
|
||||||
filter_type = filter['type'] if 'type' in filter else None
|
filter_type = filter['type'] if 'type' in filter else None
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user