Coder Social home page Coder Social logo

prsai / irgramd Goto Github PK

View Code? Open in Web Editor NEW
4.0 0.0 0.0 451 KB

IRC-Telegram Gateway, use Telegram with your IRC client

Home Page: https://src.presi.org/darcs/irgramd

License: MIT License

Python 100.00%
telegram irc gateway ircd irc-server telegram-client telethon python3

irgramd's Introduction

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

  • Channels, groups and private chats
  • Users and channels mapped in IRC
  • Messages (receive, send)
  • Media in messages (receive, download, upload)
  • Replies (receive, send)
  • Forwards (receive, send)
  • Deletions (receive, do)
  • Editions (receive, do)
  • Reactions (receive)
  • Polls (receive, show)
  • Actions [pin message, channel photo] (receive)
  • Dialogs management
  • History
  • Authentication and TLS for IRC
  • Multiple connections from IRC

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 [email protected]
Copyright (c) 2020-2024 E. Bosch <presidev@[email protected]>

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

irgramd's People

Contributors

pbui avatar

Stargazers

 avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.