Merge Beta with Stable releases #1

Merged
profitroll merged 52 commits from dev into master 2022-12-16 16:14:41 +02:00
Showing only changes of commit ce182999a0 - Show all commits

View File

@ -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):