WIP
Go to file
Steffen Vogel 0421df20a3 added dazzlle to credits 2015-11-29 17:14:38 +01:00
Spectrum2 Change error messages is backend.py to debug messages 2015-11-23 15:34:37 +02:00
conf updated message of the day 2015-09-07 18:08:48 +02:00
.gitignore updated gitignore 2013-08-02 01:50:09 +02:00
COPYING.gpl3 added GPL v3 licence 2013-08-02 01:46:11 +02:00
README.md added dazzlle to credits 2015-11-29 17:14:38 +01:00
bot.py Typing \leave in a MUC will leave the group chat 2015-11-27 22:01:16 +02:00
buddy.py Prevent a None image_hash from causing a TypeError 2015-11-10 20:39:25 +02:00
constants.py.sample removed Google contacts import feature 2015-09-07 16:34:01 +02:00
group.py Handle a user leaving a group chat. 2015-11-29 16:32:33 +02:00
reader.py added copyright and author infos 2013-08-02 01:45:51 +02:00
session.py If an image download fails, just send the link. 2015-11-29 17:08:59 +02:00
transwhat.py Fix join room, inform user of all groups, and new participants 2015-10-26 19:27:35 +02:00
utils.py removed Google contacts import feature 2015-09-07 16:34:01 +02:00
whatsappbackend.py Notify user when a group message is sent to a group they have not yet joined 2015-11-23 17:07:18 +02:00
yowsupwrapper.py Handle a user leaving a group chat. 2015-11-29 16:32:33 +02:00

README.md

transWhat

transWhat is a WhatsApp XMPP Gateway based on Spectrum 2 and Yowsup 2.

Getting started

I assume that you have a basic understanding of XMPP and the transport concept. transWhat is a XMPP transport. It is based on the Spectrum 2 XMPP transport framework and the Yowsup 2 library to interface with WhatsApp.

Before getting started, please make sure that you have a XMPP server running. I am using Prosody for this.

After this we have to install several dependencies:

Dependencies

Python packages

pip install --pre e4u protobuf mysql python-dateutil
  • e4u: is a simple emoji4unicode python bindings
  • yowsup: is a python library that enables you build application which use WhatsApp service.
  • mysqldb: MySQL client python bindings

Spectrum 2

Manual compile latest version from Github. You can use the following guide: http://spectrum.im/documentation/installation/from_source_code.html.

Installation

git clone git@github.com:stv0g/transwhat.git

Configuration of Prosody

See http://prosody.im/doc/components.

Component "whatsapp.0l.de"
     component_secret = "whatsappsucks"
    component_ports = { 5221 }
    component_interface = "127.0.0.1"

Configuration of Spectrum

Configuration of transWhat

First create a mySQL database named transwhat and fill it with the schema provided in the repo.

Docker

In near future, there will be a Dockerfile for transWhat.

Contributors

Pull requests, bug reports etc. are welcome. Help us to provide a open implementation of the WhatsApp protocol.

The following persons have contributed major parts of this code:

  • @stv0g (Steffen Vogel): Idea and initial implementation based on Yowsup 1
  • @moyamo (Mohammed Yaseen Mowzer): Port to Yowsup 2
  • @DaZZZl: Improvements to group chats, media & message receipts

Documentation

A project wiki is available here.

An outdated writeup of this project is also availabe at my blog.