descriptionA gateway that allows connecting from an IRC client to Telegram as a regular user (not bot)
last changeSun, 31 Dec 2023 01:26:30
darcs urlhttps://src.presi.org/repos/darcs/irgramd/
project url https://github.com/prsai/irgramd
shortlog
2023-12-31 E. Bosch README update
2023-12-20 E. Bosch Fix logging system. ...
2023-12-18 E. Bosch telegram, utils: Replace invalid characters in filenames with number sequenc ...
2023-12-17 E. Bosch telegram: Remove characters '#', '%' and '?' from filenames,
2023-12-17 E. Bosch telegram: Add compact message IDs to filenames of media,
2023-12-15 E. Bosch telegram: Improve metadata shown for audio and recording/voice media,
2023-12-07 E. Bosch README update
2023-12-03 E. Bosch Correct OpenStreetMap URL in irgramdrc.sample
2023-12-02 E. Bosch telegram: Add target nick in private messages sent from the self user
2023-11-28 E. Bosch README update
2023-11-28 E. Bosch service: Add absolute ID as argument to get command
2023-11-26 E. Bosch telegram: Add support for the change of channel photo action
2023-11-26 E. Bosch telegram: Add support for pin message action
2023-11-19 E. Bosch telegram: Change add symbol in editions from "_" to "+"
2023-11-19 E. Bosch telegram: Refactor download media code.
...


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 in alpha state, 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.

License

Copyright (c) 2019 Peter Bui pbui@bx612.space
Copyright (c) 2020-2023 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.