patch 9c530196db77dfde94d09e8dfbee848665084731
Author: Lucas de Sena <lucas@seninha.org>
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 <presidev@AT@gmail.com>
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 09:27:33.193283240 +0200
+++ new-irgramd/irgramd 2026-07-25 09:27:33.193283240 +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 09:27:33.193283240 +0200
+++ new-irgramd/telegram.py 2026-07-25 09:27:33.193283240 +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))