Merge Beta with Stable releases #1
@ -114,6 +114,7 @@ class HoloUser():
|
|||||||
* adm_context (`bool`, *optional*): Whether context sender is an admin. Defaults to False.
|
* adm_context (`bool`, *optional*): Whether context sender is an admin. Defaults to False.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
# Check if any text available and log message sending
|
||||||
if text is not None:
|
if text is not None:
|
||||||
logWrite(f"{context.from_user.id} sent message '{text}' to {self.id}")
|
logWrite(f"{context.from_user.id} sent message '{text}' to {self.id}")
|
||||||
elif caption is not None:
|
elif caption is not None:
|
||||||
@ -121,6 +122,7 @@ class HoloUser():
|
|||||||
else:
|
else:
|
||||||
logWrite(f"{context.from_user.id} sent message to {self.id}")
|
logWrite(f"{context.from_user.id} sent message to {self.id}")
|
||||||
|
|
||||||
|
# Add notices for admin or user
|
||||||
if text is not None:
|
if text is not None:
|
||||||
if adm_context:
|
if adm_context:
|
||||||
text += locale("message_reply_notice", "message")
|
text += locale("message_reply_notice", "message")
|
||||||
@ -137,8 +139,11 @@ class HoloUser():
|
|||||||
else:
|
else:
|
||||||
caption = locale("message_reply_notice", "message")
|
caption = locale("message_reply_notice", "message")
|
||||||
|
|
||||||
|
# Try sending the message
|
||||||
try:
|
try:
|
||||||
|
|
||||||
|
# Check if origin message exists
|
||||||
|
# This check decides whether we send_ a message or reply_ to one
|
||||||
if origin is not None:
|
if origin is not None:
|
||||||
|
|
||||||
if photo is not None:
|
if photo is not None:
|
||||||
@ -189,11 +194,17 @@ class HoloUser():
|
|||||||
else:
|
else:
|
||||||
new_message = await app.send_message(self.id, text)
|
new_message = await app.send_message(self.id, text)
|
||||||
|
|
||||||
|
# Acknowledge sending a message and save entry into DB
|
||||||
await context.reply_text(locale("message_sent", "message"), quote=should_quote(context))
|
await context.reply_text(locale("message_sent", "message"), quote=should_quote(context))
|
||||||
col_messages.insert_one({"origin": {"chat": context.chat.id, "id": context.id}, "destination": {"chat": new_message.chat.id, "id": new_message.id}})
|
col_messages.insert_one({"origin": {"chat": context.chat.id, "id": context.id}, "destination": {"chat": new_message.chat.id, "id": new_message.id}})
|
||||||
|
|
||||||
|
# Report to admin and to sender about message sending failure
|
||||||
except Exception as exp:
|
except Exception as exp:
|
||||||
await context.reply_text(locale("message_traceback", "message").format(context.from_user.id, self.id, exp, print_exc()))
|
logWrite(f"Exception {exp} happened as {context.from_user.id} tried to send message to {self.id}. Traceback:\n{print_exc()}")
|
||||||
|
try:
|
||||||
|
await app.send_message(configGet("owner"), locale("message_traceback", "message").format(context.from_user.id, self.id, exp, print_exc()))
|
||||||
|
except bad_request_400.PeerIdInvalid:
|
||||||
|
logWrite(f"Could not notify admin about failure when sending message! Admin has never interacted with bot!")
|
||||||
await context.reply_text(locale("message_error", "message"), quote=should_quote(context))
|
await context.reply_text(locale("message_error", "message"), quote=should_quote(context))
|
||||||
|
|
||||||
async def set_label(self, chat: Chat, label: str):
|
async def set_label(self, chat: Chat, label: str):
|
||||||
|
Reference in New Issue
Block a user