2020-05-08 20:38:30 +01:00
# Telepathy for Delta Chat
## Who
Authored by [Nick Thomas ](https://ur.gs ) under the [MIT License ](LICENSE ).
## What
[Delta Chat ](https://delta.chat ) is IM over email.
[Telepathy ](https://telepathy.freedesktop.org ) 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".
2020-05-10 01:01:28 +01:00
My first attempt was [purple-plugin-delta ](https://code.ur.gs/lupine/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:
- [x] Connect to DBUS
- [x] Advertise enough properties / interfaces to become visible in Empathy
- [~] Connect to deltachat-core-rust
- [ ] Set up an account via autoconfiguration
- [ ] Set up an account manually
- [ ] Text messages
- [ ] Multimedia messages
- [ ] Setup messages
- [ ] Import/Export
- [ ] Group chats
- [ ] Geolocation messages
2020-05-08 20:38:30 +01:00
## Why
Mobile IM, mostly. Desktop IM, also. It's ideal for my pinephone, and lighter
than the electron desktop client.
## How
2020-05-10 01:01:28 +01:00
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.
2020-05-08 20:38:30 +01:00
It makes use of the `dbus-codegen-rust` crate to convert the
[telepathy interface specs ](https://github.com/TelepathyIM/telepathy-spec ) into
the executable code in `src/telepathy` . This is checked in, but can be
regenerated like so:
```bash
$ git submodule init telepathy-spec
$ git submodule update telepathy-spec
$ cargo install dbus-codegen-rust
$ ./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` .