-rw-rw-r-- | 1K | LICENSE | history | headblob | annotate |
-rw-rw-r-- | 5K | README.md | history | headblob | annotate |
-rw-rw-r-- | 2K | emoji2emoticon.py | history | headblob | annotate |
-rw-rw-r-- | 9K | exclam.py | history | headblob | annotate |
-rw-rw-r-- | 452 | include.py | history | headblob | annotate |
-rw-rw-r-- | 31K | irc.py | history | headblob | annotate |
-rw-rw-r-- | 4K | irc_replies.py | history | headblob | annotate |
-rw-rw-r-- | 9K | irgramd | history | headblob | annotate |
-rw-rw-r-- | 575 | irgramdrc.sample | history | headblob | annotate |
-rw-rw-r-- | 10K | service.py | history | headblob | annotate |
-rw-rw-r-- | 43K | telegram.py | history | headblob | annotate |
-rw-rw-r-- | 6K | utils.py | history | headblob | annotate |
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
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).
darcs clone https://src.presi.org/repos/darcs/irgramd
chmod +x irgramd/irgramd
git clone https://github.com/prsai/irgramd.git
chmod +x irgramd/irgramd
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.
From irgramd directory, in foreground:
./irgramd
In background (with logs):
./irgramd --log-file=irgramd.log &
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.
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.