patch 4009bc07c6261c0ea2cb1a4112f8aaf266cbd65d Author: E. Bosch Date: Sat Jul 26 01:56:12 CEST 2025 * emoji2emoticon: Add emoji "rolling on the floor laughing" to convert to ASCII patch 10725c4fff915a1c95e95b5f998f26c97b146d5e Author: E. Bosch Date: Wed Jan 22 00:35:42 CET 2025 * telegram: Try to fix ChatAdminRequiredError when getting participants from a channel reported in https://github.com/prsai/irgramd/issues/1 patch 0c96892ec68150c96ef7ba50ec4e2db3db2296e4 Author: E. Bosch Date: Thu Jan 16 22:00:14 CET 2025 * exclam: Fix send a reaction when there was already a previous reaction from other user on the same message, for some reason the 'message' attribute is not received diff -rN -u old-irgramd/emoji2emoticon.py new-irgramd/emoji2emoticon.py --- old-irgramd/emoji2emoticon.py 2025-12-14 00:09:22.266200756 +0100 +++ new-irgramd/emoji2emoticon.py 2025-12-14 00:09:22.266200756 +0100 @@ -85,6 +85,7 @@ '\U0001f643': '"(:"', '\U0001f644': '"o o,"', '\U0001f914': '":-L"', + '\U0001f923': '"X__D"', '\U0001f92b': '":-o-m"', '\U0001f970': '":)e>"', } diff -rN -u old-irgramd/exclam.py new-irgramd/exclam.py --- old-irgramd/exclam.py 2025-12-14 00:09:22.266200756 +0100 +++ new-irgramd/exclam.py 2025-12-14 00:09:22.270200751 +0100 @@ -205,8 +205,8 @@ except ReactionInvalidError: reply = ('!react: Reaction not allowed',) else: - self.tmp_tg_msg = update.updates[0].message - reply = True + self.tmp_tg_msg = getattr(update.updates[0], 'message', None) + reply = bool(self.tmp_tg_msg) else: reply = ('!react: Unknown reaction',) else: diff -rN -u old-irgramd/telegram.py new-irgramd/telegram.py --- old-irgramd/telegram.py 2025-12-14 00:09:22.266200756 +0100 +++ new-irgramd/telegram.py 2025-12-14 00:09:22.270200751 +0100 @@ -177,18 +177,21 @@ self.irc.iid_to_tid[chan] = chat.id self.irc.irc_channels[chan] = set() # Add users from the channel - async for user in self.telegram_client.iter_participants(chat.id): - user_nick = self.set_ircuser_from_telegram(user) - if not user.is_self: - self.irc.irc_channels[chan].add(user_nick) - # Add admin users as ops in irc - if isinstance(user.participant, tgty.ChatParticipantAdmin) or \ - isinstance(user.participant, tgty.ChannelParticipantAdmin): - self.irc.irc_channels_ops[chan].add(user_nick) - # Add creator users as founders in irc - elif isinstance(user.participant, tgty.ChatParticipantCreator) or \ - isinstance(user.participant, tgty.ChannelParticipantCreator): - self.irc.irc_channels_founder[chan].add(user_nick) + try: + async for user in self.telegram_client.iter_participants(chat.id): + user_nick = self.set_ircuser_from_telegram(user) + if not user.is_self: + self.irc.irc_channels[chan].add(user_nick) + # Add admin users as ops in irc + if isinstance(user.participant, tgty.ChatParticipantAdmin) or \ + isinstance(user.participant, tgty.ChannelParticipantAdmin): + self.irc.irc_channels_ops[chan].add(user_nick) + # Add creator users as founders in irc + elif isinstance(user.participant, tgty.ChatParticipantCreator) or \ + isinstance(user.participant, tgty.ChannelParticipantCreator): + self.irc.irc_channels_founder[chan].add(user_nick) + except: + self.logger.warning('Not possible to get participants of channel %s', channel) def get_telegram_nick(self, user): nick = (user.username