2020-05-17 23:23:45 +01:00
2020-05-16 21:33:58 +01:00
2020-05-17 23:23:45 +01:00
2020-05-09 01:48:14 +01:00
2020-05-08 19:22:47 +01:00
2020-05-09 01:48:14 +01:00
2020-05-17 00:49:46 +01:00
2020-05-09 01:48:14 +01:00
2020-05-17 00:49:46 +01:00

Telepathy for Delta Chat

Who

Authored by Nick Thomas under the MIT License.

What

Delta Chat is IM over email. Telepathy is a framework for abstracting over multiple IM protocols. This project glues the two together, allowing Telepathy clients to send/receive Delta messages.

Telepathy CMs should have a name that is not the same as their protocol; so this CM is hereby named "padfoot".

My first attempt was purple-plugin-delta. This has some licensing issues (linking libpurple with OpenSSL) that will be resolved with OpenSSL v3.0.0. At least until then, I've lost interest in it; my efforts are going into this version instead.

When

When it's ready.

Where

Here's where we're at right now:

  • Connect to DBUS
  • Advertise enough properties / interfaces to become visible in Empathy
  • Connect to deltachat-core-rust
  • Set up an account via autoconfiguration
  • Appear as online in Empathy
  • Disconnect!
  • Set up an account manually
  • Contacts handling
  • [~] Text messages
  • Multimedia messages
  • Setup messages
  • Import/Export
  • Group chats
  • Geolocation messages

Why

Mobile IM, mostly. Desktop IM, also. It's ideal for my pinephone, and lighter than the electron desktop client.

At this point, I don't know Rust, I don't know DBUS, I don't know Telepathy, and I don't know Deltachat particularly well either. So this also functions as a learning exercise!

How

This project is written in Rust, so you'll need a rust compiler to build it. Rustup comes highly recommended. Deltachat is also written in Rust and it needs the nightly version, so follow the instructions for that.

It makes use of the dbus-codegen-rust crate to convert the telepathy interface specs into the executable code in src/telepathy. This is checked in, but can be regenerated like so:

$ git submodule init telepathy-spec
$ git submodule update telepathy-spec
$ cargo install dbus-codegen
$ ./scripts/dbus-codegen

dbus-codegen-rust doesn't seem to handle namespaced attributes properly, so we modify the XML files in telepathy-spec... with sed. The tp:type attribute is renamed to tp:typehint.

Description
Deltachat connection manager for Telepathy
Readme 1.3 MiB
Languages
Rust 99.6%
Handlebars 0.3%