patch 9c530196db77dfde94d09e8dfbee848665084731 Author: Lucas de Sena Date: Sat Jul 25 00:27:23 CEST 2026 * Merge pull request #16 on github from phillbush/show-reactions add "show_reactions" option Set it to false if you do not want to be annoyed with reactions and emojis. patch b785776c7df3016fb9c83aa7f7b9e51815435bab Author: E. Bosch Date: Thu Jul 23 18:06:45 CEST 2026 * Merge pull request #18 on github from phillbush/message-deleted-not-in-cache along with an option to configure the new behaviour move "Message id ... deleted not in cache" into logger TelegramServ can get filled with warnings like Message id 012345 deleted not in cache if you are in a channel/group that automatically deletes messages after a certain time, and the deleted message is not in cache. Warn that in the logger. With "info" severity, because that's not actually an issue, just something that can happen. Add option "log_deleted" to enable this, by default false (use TelegramServ) diff -rN -u old-irgramd/irgramd new-irgramd/irgramd --- old-irgramd/irgramd 2026-07-25 11:19:59.210703812 +0200 +++ new-irgramd/irgramd 2026-07-25 11:19:59.210703812 +0200 @@ -94,6 +94,7 @@ tornado.options.define('irc_nicks', type=str, multiple=True, metavar='nick,..', help='List of nicks allowed for IRC, if `pam` and optionally `pam_group` are set, PAM authentication will be used instead') tornado.options.define('irc_password', default='', metavar='PASSWORD', help='Password for IRC authentication, if `pam` is set, PAM authentication will be used instead') tornado.options.define('irc_port', type=int, default=None, metavar='PORT', help='Port to listen on for IRC. (default 6667, default with TLS 6697)') + tornado.options.define('log_deleted', default=False, help='Deleted messages not in cache are logged, if disabled service user [TelegramServ] will notify them') tornado.options.define('log_file', default=None, metavar='PATH', help='File where logs are appended, if not set will be stderr') tornado.options.define('log_level', default='INFO', metavar='DEBUG|INFO|WARNING|ERROR|CRITICAL|NONE', help='The log level (and any higher to it) that will be logged') tornado.options.define('media_dir', default=None, metavar='PATH', help='Directory where Telegram media files are downloaded, default "media" in `cache_dir`') @@ -103,6 +104,7 @@ tornado.options.define('phone', default=None, metavar='PHONE_NUMBER', help='Phone number associated with the Telegram account to receive the authorization codes if necessary') tornado.options.define('quote_length', default=50, metavar='LENGTH', help='Max length of the text quoted in replies and reactions, if longer is truncated') tornado.options.define('service_user', default='TelegramServ', metavar='SERVICE_NICK', help='Nick of the service/control user, must be a nick not used by a real Telegram user') + tornado.options.define('show_reactions', default=True, help='Show reactions to messages') tornado.options.define('test', default=False, help='Connect to Telegram test environment') tornado.options.define('test_datacenter', default=2, metavar='DATACENTER_NUMBER', help='Datacenter to connect to Telegram test environment') tornado.options.define('test_host', default=None, metavar='HOST_IP', help='Host to connect to Telegram test environment (default: use a internal table depending on datacenter)') diff -rN -u old-irgramd/telegram.py new-irgramd/telegram.py --- old-irgramd/telegram.py 2026-07-25 11:19:59.210703812 +0200 +++ new-irgramd/telegram.py 2026-07-25 11:19:59.214703813 +0200 @@ -57,9 +57,11 @@ self.test_port = settings['test_port'] self.ask_code = settings['ask_code'] self.quote_len = settings['quote_length'] + self.show_react = settings['show_reactions'] self.hist_fmt = settings['hist_timestamp_format'] self.timezone = settings['timezone'] self.geo_url = settings['geo_url'] + self.log_del = settings['log_deleted'] if not settings['emoji_ascii']: e.emo = {} self.token = token('+0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz') @@ -596,6 +598,8 @@ # Reactions else: + if not self.show_react: + return if reaction: if self.last_reaction == reaction.date: return @@ -611,6 +615,8 @@ self.to_volatile_cache(self.prev_id, id, text, user, chan, current_date()) async def handle_next_reaction(self, event): + if not self.show_react: + return self.logger.debug('Handling Telegram Next Reaction (2nd, 3rd, ...): %s', pretty(event)) reactions = event.reactions.recent_reactions @@ -645,8 +651,11 @@ await self.relay_telegram_message(message=None, user=user, text=text, channel=chan) self.to_volatile_cache(self.prev_id, deleted_id, text, user, chan, current_date()) else: - text = 'Message id {} deleted not in cache'.format(deleted_id) - await self.relay_telegram_private_message(self.irc.service_user, text) + if self.log_del: + self.logger.info('Message id {} deleted not in cache'.format(deleted_id)) + else: + text = 'Message id {} deleted not in cache'.format(deleted_id) + await self.relay_telegram_private_message(self.irc.service_user, text) async def handle_raw(self, update): self.logger.debug('Handling Telegram Raw Event: %s', pretty(update))