GithubHelp home page GithubHelp logo

pto's Introduction

Perpetually Talking Online

Build Status

An IRC to Matrix bridge.

This is different from the existing appservice on matrix.org. This work in progress allows IRC users to join a matrix community. Its just a readme/vague requirements document right now but code is being hacked on! Its for the hackerspace community https://oob.systems/

The idea being that one could point irssi at an IRC "daemon" behind a .onion address, and have access to the channels that are local to a homeserver. Joining #the-oob would result in the user's matrix user joining #the-oob:oob.systems, if the IRCd is pointed to serve up the oob.systems namespace. Users can use SASL auth to login with their existing oob.systems matrix account.

It would be impossible to join channels outside the homeserver for simplicity of implementation, and really, this is about building a tight-knit community. One should still be able to talk with everyone who is in the channel, including users from outside the homeserver and handle various channel management tasks such as kicks, bans, topics, etc.

This provides a super low level interface to onboarding new users to an existing (or new!) Matrix community.

Building this sucker

You'll need the following ingredients:

Once those two are installed, you can build PTO as follows:

$ cargo build

PTO can then be ran:

$ cargo run https://matrix.org/_matrix/client/api/v1/

Specify a different URL to use a different matrix server.

Or the appropriate binary named ./target/*/pto

Configuration

Currently configuration is limited to modifying hardcoded strings in various places. Thank you for getting this far though! I would absolutely love a patch <3

Usage

By default, PTO will listen on localhost:8001 for an IRC client to connect with an appropriate username and password. The username and password supplied through the IRC connection will be used to login to matrix.

TODO

This whole thing is intensely a work in progress. It doesn't even do anything useful right now like handling messages or even listing channels.

  • Handle IRC protocol
  • Login to matrix
  • Handle matrix event polling without blocking IRC thread
  • Translate basic IRC events to matrix events and vice-versa
  • Create/join new channels through IRC
  • Set channel topics
  • PMs
  • Support /list command
  • Channel kicks/bans
  • Support SSL listeners
  • Send backlog on connect
  • Throw all kinds of warrnings and red flags about non-ssl configurations
  • Support logins that aren't at a given server
  • Drop all the oob.systems specific cruft

pto's People

Contributors

tdfischer avatar

Watchers

 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.