descriptionA gateway that allows connecting from an IRC client to Telegram as a regular user (not bot)
last changeSat, 02 Nov 2024 20:20:45
darcs urlhttps://src.presi.org/repos/darcs/irgramd/
project url https://github.com/prsai/irgramd
shortlog
2024-11-02 E. Bosch telegram, irc: Set topic in IRC with Telegram channel/chat description
2024-10-26 E. Bosch telegram: Fix op and founder detection in channels
2024-10-26 E. Bosch telegram: Fix handler for next reactions when the event is empty
2024-10-26 E. Bosch exclam: Reorder handler list so commands are listed ordered in help
2024-10-21 E. Bosch README update
2024-10-20 E. Bosch exclam: Add "-" parameter to "!react" to remove a reaction
2024-10-19 E. Bosch telegram: On emoticon->emoji conversions for reactions,
2024-10-13 E. Bosch telegram: Limit text length for reactions to twice as replies
2024-10-12 E. Bosch README update
2024-10-10 E. Bosch exclam: Add reaction (!react) command to send emoticon->emoji as Telegram re ...
2024-10-07 E. Bosch telegram, service: Move initial help to service module
2024-10-06 E. Bosch telegram: Fix regression in delete reaction event
2024-09-28 E. Bosch telegram: Avoid duplicated reactions events in some cases
2024-09-27 E. Bosch telegram: Add handler for next reactions (2nd, 3rd, etc.) that don't come from
2024-09-25 E. Bosch telegram: Fix in reaction handler
...


README.md

irgramd - IRC <-> Telegram Gateway

irgramd is a gateway that allows connecting from an IRC client to Telegram as a regular user (not bot).

irgramd is written in python (version 3), it acts as an IRC server where an IRC client can connect and on the other side it's a Telegram client using the Telethon library.

irgramd primary repository is in darcs version control system, github is used as project management and secondary repository

irgramd was forked from pbui/irtelegramd, was heavily modified and currently is a project on its own

irgramd is under active development, though usable, several planned features are not implemented yet

How it works

Configure your IRC client to connect to irgramd (running on the same host or on a remote host) then you will see in your IRC client the Telegram groups as IRC channels and Telegram users as IRC users, if you send a message to a user or channel in IRC it will go to the corresponding user or group in Telegram, and the same from Telegram to IRC.

The users on Telegram using the official or other clients will see you with your regular Telegram user account and will be indistinguishable for them whether you are using irgramd or another Telegram client.

Several IRC clients can connect to irgramd but they will see the same Telegram account, this allows connecting to the same Telegram account from different IRC clients on different locations or devices, so one irgramd instance only connects to one Telegram account, if you want to connect to several Telegram accounts you will need to run several irgramd instances. If all IRC clients are disconnected, irgramd will remain connected to Telegram.

irgramd can also be seen as a kind of bouncer (BNC), with the difference that instead of talking IRC protocol on the client side, it talks Telegram protocol (MTProto), and can hide the IP and location of the IRC client (if executed in a different host).

Features

Requirements

Instalation

From darcs

darcs clone https://src.presi.org/repos/darcs/irgramd
chmod +x irgramd/irgramd

From git

git clone https://github.com/prsai/irgramd.git
chmod +x irgramd/irgramd

Configuration

From irgramd directory ./irgramd --help will show all configuration options available, these options can be used directy in the command line or in a file.

When used in command line the separator is - (dash) with two leading dashes, example: --api-hash.

When used in a file the separator is _ (underscore) without two leading dashes nor underscores, example: api_hash. The syntax of this file is just Python so strings are surrounded by quotes (') and lists by brackets ([]).

A sample of the configuration file is provided, copy it to the default configuration location:

mkdir -p  ~/.config/irgramd
cp irgramd/irgramdrc.sample ~/.config/irgramd/irgramdrc

And modified it with your API IDs and preferences.

Usage

From irgramd directory, in foreground:

./irgramd

In background (with logs):

./irgramd --log-file=irgramd.log &

Notes

PAM authentication: it allows to authenticate IRC users from the system in Unix/Linux. The user that executes irgramd must have permissions to use PAM (e.g. in Linux be in the shadow group or equivalent). The dependency is totally optional, if not used, the module pyPAM is not needed.

Inspired by

License

Copyright (c) 2019 Peter Bui pbui@bx612.space
Copyright (c) 2020-2024 E. Bosch presidev@AT@gmail.com

Use of this source code is governed by a MIT style license that can be found in the LICENSE file included in this project.