No Description
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Lieuwe Rooijakkers 5280b2bdab Dockerfile: only copy binary to runner 3 days ago
capabilities capabilities: simplify `Caps()` code 2 weeks ago
config config: error on invalid loglevel value 3 days ago
database documentation and small cleanups and stuff 1 week ago
files add option to use https for file URLs instead of https 3 days ago
maps add option to set OpenStreetMap.org as map provider 5 months ago
whapp whapp: add sticker cryptkey 4 days ago
.dockerignore add mutex to file hash mapping 6 months ago
.gitignore add mutex to file hash mapping 6 months ago
Dockerfile Dockerfile: only copy binary to runner 3 days ago
Gopkg.lock update dependencies 4 days ago
Gopkg.toml save and load localstorage 9 months ago
LICENSE initial commit 9 months ago
README.md readme: add link to setting up guide 3 days ago
alternativeReplay.go add REPLAY_MODE env var 3 months ago
bridge.go documentation and small cleanups and stuff 1 week ago
connection.go documentation and small cleanups and stuff 1 week ago
constants.go docker stuff 8 months ago
ircCommands.go code cleanups 5 months ago
main.go cleanup env vars code 3 days ago
messageQueue.go documentation and small cleanups and stuff 1 week ago
timestampMap.go support new chats during replay 8 months ago
types.go documentation and small cleanups and stuff 1 week ago
util.go various code cleanups 2 weeks ago
whappMessages.go show original message line count in reply quote 3 weeks ago

README.md

whapp-irc

a simple whatsapp web <-> irc gateway

take a look at the quick and cool setting up guide

information

  • private chats;
  • group chats, with op for admins;
  • kicking, inviting, and stuff;
  • LIST, WHO (with online/offline state);
  • joining chats;
  • converts names to irc safe names as much as possible;
  • receiving files, hosts it as using a HTTP file server;
  • receiving locations, will send a Google Maps link to the location;
  • receiving reply messages;
  • generating QR code;
  • saves login state to disk;
  • replay using whapp-irc/replay capability;
  • IRCv3 server-time support;
  • no configuration needed;
  • probably some stuff I forgot.

configuration

irc client

To use whapp-irc optimally you should set the following client capabilities:

  • server-time (this will show the time when the message was sent in whatsapp in your IRC client, instead of when the bridge received it);
  • whapp-irc/replay (this will replay all the messages the bridge missed, for example: when the bridge is turned off. The bridges stores the timestamp of the last message for every chat on disk and will send all newer messages to the client).

environment variables

All configuration is done using environment variables. Quick and simple.

  • HOST: the IP/domain used to generate the URLs to media files;
  • FILE_SERVER_PORT: the port used for the file httpserver, if not 80 it will be appended to the URLs;
  • IRC_SERVER_PORT: the port to listen on for IRC connections;
  • LOG_LEVEL: normal (default) or verbose, if verbose it will log all communication between whapp-irc and the chromium instance;
  • MAP_PROVIDER: The map provider to use for location messages: can be one of googlemaps (default) or openstreetmap.

docker

It’s recommend to use the docker image. It’s also the only supported version, since this way we have a consistent, predictable and reproducible version.

To run:

docker run -d \
	--name whapp-irc \
	-v PATH_TO_DIR_FOR_DATA_HERE:/root \
	-p 6667:6060 \
	-p 3000:3000 \
	-e "HOST=IP_ADDRESS_OR_DOMAIN_HERE" \
	lieuwex/whapp-irc

local build

make sure you have go and dep, then clone the repo in your $GOPATH and:

dep ensure
go build
./whapp-irc

support

#whapp-irc on freenode, you can mention lieuwex if nobody responds.