Compare commits

...

7 Commits
0.3.0 ... main

Author SHA1 Message Date
miloszowi
44ecc307e3 another fix for reaction 2024-03-05 09:49:35 +01:00
miloszowi
fca6dd6f80 fixed issue when reacting to message triggered dynamic mention 2024-03-05 09:47:47 +01:00
miloszowi
eeb9fe5c3a fixed character escaping in replier 2024-03-05 08:32:48 +00:00
miloszowi
12a1c08866 fixed backslash escape in replier 2024-02-28 13:18:22 +00:00
miloszowi
e44f4b75a5 0.3.2 - fixed a bug with missing + in replier 2024-02-28 11:32:57 +01:00
miloszowi
e242584974 0.3.1 - Fixed telegram restricted characters 2024-02-28 11:27:07 +01:00
miloszowi
878091deae fixed bug when /join@everyone_mention_bot was treated as a message handler action 2023-11-25 14:58:58 +00:00
4 changed files with 21 additions and 6 deletions

View File

@ -1,6 +1,12 @@
# Change Log
All notable changes to this project will be documented in this file.
## [0.3.2] - 28.02.2023
### Changed
- fixed bug with missing '+' in replier
## [0.3.1] - 28.02.2023
### Changed
- fixed markdown replier to respect restricted characters provided in the [api docs](https://core.telegram.org/bots/api#markdownv2-style)
## [0.3.0] - 12.11.2021
### Added
- Dynamic mentioning by `@` character

View File

@ -23,6 +23,9 @@ class DynamicMentionHandler(AbstractHandler):
self.chat_repository = ChatRepository()
def handle(self, update: Update, context: CallbackContext) -> None:
if hasattr(update, 'message_reaction'):
return
users = self.chat_repository.get_users_for_group(self.inbound)
Replier.markdown(update, MessageBuilder.mention_message(users))

View File

@ -38,7 +38,7 @@ class InboundMessage:
GroupNameValidator.validate(group_name)
# done upon resolving a message handler action
if '@' in message_content:
if '@' in message_content and '@everyone_mention_bot' not in message_content:
searched_message_part = [part for part in message_content.split(' ') if '@' in part][0]
group_name = re.sub(r'\W+', '', searched_message_part).lower()

View File

@ -8,24 +8,30 @@ from logger import Logger
class Replier:
@staticmethod
def interpolate(content: str, inbound_message: InboundMessage):
return content.format(
formatted = content.format(
mention_markdown(inbound_message.user_id, inbound_message.username),
inbound_message.group_name
)
telegramRestrictionCharacters = ['_', '*', '[', ']', '(', ')', '~', '`', '>', '#', '+', '-', '=', '|', '{', '}', '.', '!']
for character in telegramRestrictionCharacters:
formatted.replace(character, r'\{character}')
return formatted
@staticmethod
def markdown(update: Update, message: str, reply_markup: Optional[InlineKeyboardMarkup] = None) -> None:
try:
update.effective_message.reply_markdown_v2(message, reply_markup=reply_markup)
except Exception as err:
Logger.error(str(err))
Logger.error("replier.markdown error: " + str(err))
@staticmethod
def html(update: Update, html: str, reply_markup: Optional[InlineKeyboardMarkup] = None) -> None:
try:
update.effective_message.reply_html(html, reply_markup=reply_markup, disable_web_page_preview=True)
except Exception as err:
Logger.error(str(err))
Logger.error("replier.html error: " + str(err))