README update
Annotate for file /README.md
2020-10-31 E. 1 # irgramd - IRC <-> Telegram Gateway
2019-07-17 Peter 2
2020-10-31 E. 3 irgramd is a gateway that allows connecting from an [IRC] client to
2022-02-23 E. 4 [Telegram] as a regular user (not bot).
2020-10-31 E. 5
01:11:52 ' 6 irgramd is written in [python] (version 3), it acts as an IRC server
' 7 where an IRC client can connect and on the other side it's a Telegram client
2022-02-23 E. 8 using the [Telethon] library.
19:32:39 ' 9
2023-04-26 E. 10 **[irgramd primary repository] is in [darcs] version control system, github
19:20:04 ' 11 is used as [project management and secondary repository]**
' 12
' 13 **irgramd was forked from [pbui/irtelegramd], was heavily modified and
' 14 currently is a project on its own**
' 15
' 16 **irgramd is under active development in alpha state, though usable, several
' 17 planned features are not implemented yet**
2022-02-23 E. 18
19:32:39 ' 19 ## How it works
' 20
' 21 Configure your IRC client to connect to irgramd (running on the same host or
' 22 on a remote host) then you will see in your IRC client the Telegram groups
' 23 as IRC channels and Telegram users as IRC users, if you send a message to a
' 24 user or channel in IRC it will go to the corresponding user or group in
' 25 Telegram, and the same from Telegram to IRC.
' 26
' 27 The users on Telegram using the official or other clients will see you with
' 28 your regular Telegram user account and will be indistinguishable for them
' 29 whether you are using irgramd or another Telegram client.
' 30
' 31 Several IRC clients can connect to irgramd but they will see the same
' 32 Telegram account, this allows connecting to the same Telegram account from
' 33 different IRC clients on different locations or devices, so one irgramd
' 34 instance only connects to one Telegram account, if you want to connect to
2023-12-07 E. 35 several Telegram accounts you will need to run several irgramd instances. If
20:16:12 ' 36 all IRC clients are disconnected, irgramd will remain connected to Telegram.
' 37
' 38 irgramd can also be seen as a kind of bouncer ([BNC]), with the difference
' 39 that instead of talking IRC protocol on the client side, it talks Telegram
' 40 protocol (MTProto), and can hide the IP and location of the IRC client (if
' 41 executed in a different host).
2020-10-31 E. 42
2023-04-26 E. 43 ## Features
19:20:04 ' 44
' 45 - Channels, groups and private chats
' 46 - Users and channels mapped in IRC
' 47 - Messages (receive, send)
2024-04-21 E. 48 - Media in messages (receive, download, upload)
2023-06-26 E. 49 - Replies (receive, send)
2024-04-07 E. 50 - Forwards (receive, send)
2023-07-20 E. 51 - Deletions (receive, do)
2023-07-16 E. 52 - Editions (receive, do)
2023-04-26 E. 53 - Reactions (receive)
2023-10-10 E. 54 - Polls (receive, show)
2023-11-28 E. 55 - Actions [pin message, channel photo] (receive)
2023-04-26 E. 56 - Dialogs management
2023-09-17 E. 57 - History
2023-04-26 E. 58 - Authentication and TLS for IRC
19:20:04 ' 59 - Multiple connections from IRC
' 60
2023-04-27 E. 61 ## Requirements
21:01:01 ' 62
2023-05-06 E. 63 - [python] (>= v3.9)
2023-04-27 E. 64 - [telethon] (tested with v1.28.5)
21:01:01 ' 65 - [tornado] (tested with v6.1.0)
' 66 - [aioconsole] (tested with v0.6.1)
2023-06-26 E. 67 - [pyPAM] (optional, tested with v0.4.2-13.4 from deb, [legacy web](https://web.archive.org/web/20110316070059/http://www.pangalactic.org/PyPAM/))
20:55:35 ' 68
2023-07-09 E. 69 ## Instalation
22:56:15 ' 70
' 71 ### From darcs
' 72
' 73 darcs clone https://src.presi.org/repos/darcs/irgramd
' 74 chmod +x irgramd/irgramd
' 75
' 76 ### From git
' 77
' 78 git clone https://github.com/prsai/irgramd.git
' 79 chmod +x irgramd/irgramd
' 80
' 81 ## Configuration
' 82
' 83 From irgramd directory `./irgramd --help` will show all configuration
' 84 options available, these options can be used directy in the command line or
' 85 in a file.
' 86
' 87 When used in command line the separator is `-` (dash) with two leading
' 88 dashes, example: `--api-hash`.
' 89
' 90 When used in a file the separator is `_` (underscore) without two leading
' 91 dashes nor underscores, example: `api_hash`. The syntax of this file is just
' 92 Python so strings are surrounded by quotes (`'`) and lists by brackets (`[]`).
' 93
' 94 A sample of the configuration file is provided, copy it to the default
' 95 configuration location:
' 96
' 97 mkdir -p ~/.config/irgramd
' 98 cp irgramd/irgramdrc.sample ~/.config/irgramd/irgramdrc
' 99
' 100 And modified it with your API IDs and preferences.
' 101
' 102 ## Usage
' 103
' 104 From irgramd directory, in foreground:
' 105
' 106 ./irgramd
' 107
2023-12-31 E. 108 In background (with logs):
00:26:30 ' 109
' 110 ./irgramd --log-file=irgramd.log &
2023-07-09 E. 111
2023-06-26 E. 112 ## Notes
20:55:35 ' 113
' 114 PAM authentication: it allows to authenticate IRC users from the system in
' 115 Unix/Linux. The user that executes irgramd must have permissions to use PAM
2023-07-09 E. 116 (e.g. in Linux be in the shadow group or equivalent). The dependency is
2023-06-27 E. 117 totally optional, if not used, the module pyPAM is not needed.
2023-04-27 E. 118
2024-04-28 E. 119 ## Inspired by
11:16:24 ' 120
' 121 - [telegramircd]
' 122 - [ibotg]
' 123 - [bitlbee]
' 124
2022-02-20 E. 125 ## License
01:25:27 ' 126
2023-07-16 E. 127 Copyright (c) 2019 Peter Bui <pbui@bx612.space>
2024-04-07 E. 128 Copyright (c) 2020-2024 E. Bosch <presidev@AT@gmail.com>
2022-02-20 E. 129
01:25:27 ' 130 Use of this source code is governed by a MIT style license that
' 131 can be found in the LICENSE file included in this project.
' 132
2019-10-04 マ 133 [IRC]: https://en.wikipedia.org/wiki/Internet_Relay_Chat
2020-10-31 E. 134 [Telegram]: https://telegram.org/
01:11:52 ' 135 [python]: https://www.python.org/
' 136 [Telethon]: https://github.com/LonamiWebs/Telethon
2022-02-23 E. 137 [irgramd primary repository]: https://src.presi.org/darcs/irgramd
19:32:39 ' 138 [darcs]: http://darcs.net
2023-04-26 E. 139 [project management and secondary repository]: https://github.com/prsai/irgramd
2020-10-31 E. 140 [pbui/irtelegramd]: https://github.com/pbui/irtelegramd
2023-04-27 E. 141 [python]: https://www.python.org
21:01:01 ' 142 [tornado]: https://www.tornadoweb.org
' 143 [aioconsole]: https://github.com/vxgmichel/aioconsole
2023-06-26 E. 144 [pyPAM]: https://packages.debian.org/bullseye/python3-pam
2023-12-07 E. 145 [BNC]: https://en.wikipedia.org/wiki/BNC_(software)
2024-04-28 E. 146 [telegramircd]: https://github.com/prsai/telegramircd
11:16:24 ' 147 [ibotg]: https://github.com/prsai/ibotg
' 148 [bitlbee]: https://www.bitlbee.org