Toxygen is QtPy Tox client, with support for IRC via weechat
Go to file
emdee@spm.plastiras.org 9c1014ee5e
Some checks are pending
CI / Python ${{ matrix.python-version }} (3.10) (push) Waiting to run
CI / Python ${{ matrix.python-version }} (3.7) (push) Waiting to run
CI / Python ${{ matrix.python-version }} (3.8) (push) Waiting to run
CI / Python ${{ matrix.python-version }} (3.9) (push) Waiting to run
update
2024-02-17 20:02:30 +00:00
_Bugs simple updates 2023-12-10 02:39:58 +00:00
.github/workflows add third_party 2022-11-20 18:15:46 +00:00
docs update 2024-02-17 20:02:30 +00:00
tests updates 2024-02-13 21:00:45 +00:00
toxygen update 2024-02-17 20:02:30 +00:00
.gitignore updates 2024-02-13 21:00:45 +00:00
.pre-commit-config.yaml updates 2024-02-13 21:00:45 +00:00
.pylintrc updates 2024-02-13 21:00:45 +00:00
.rsync simple updates 2023-12-10 02:39:58 +00:00
.rsync.sh update 2024-02-17 20:02:30 +00:00
.travis.yml update docs 2022-09-27 13:32:53 +00:00
LICENSE.md Create LICENSE.md 2016-03-11 14:40:00 +03:00
MANIFEST.in next_gen branch README 2022-09-27 12:52:32 +00:00
pyproject.toml fixed pyqtSignal 2024-02-07 15:34:15 +00:00
README.md update 2024-02-17 20:02:30 +00:00
requirements.txt sound fixes 2024-02-11 08:10:36 +00:00
setup.cfg update 2024-02-06 18:07:32 +00:00
setup.py.dst update 2024-02-05 14:58:00 +00:00
ToDo.md qt6 fixes 2024-02-09 09:38:24 +00:00

Toxygen

Toxygen is powerful cross-platform Tox client for Tox and IRC/weechat written in pure Python3.

Install - Contribute - Plugins - Compile - Contact

Supported OS: Linux and Windows (only Linux is tested at the moment)

Features:

  • PyQt5, PyQt6, and maybe PySide2, PySide6 via qtpy
  • IRC via weechat /relay
  • NGC groups
  • 1v1 messages
  • File transfers
  • Audio calls
  • Video calls
  • Group chats
  • Plugins support
  • Desktop sharing
  • Chat history
  • Emoticons
  • Stickers
  • Screenshots
  • Name lookups (toxme.io support)
  • Save file encryption
  • Profile import and export
  • Faux offline messaging
  • Faux offline file transfers
  • Inline images
  • Message splitting
  • Proxy support - runs over tor
  • Avatars
  • Multiprofile
  • Multilingual
  • Sound notifications
  • Contact aliases
  • Contact blocking
  • Typing notifications
  • Changing nospam
  • File resuming
  • Read receipts
  • uses gevent

Screenshots

Toxygen on Ubuntu and Windows Ubuntu Windows

Windows was working but is not currently being tested. AV was working but is not currently being tested: we're unsure of handling the AV devices from the commandline. We need to get a working echobot that supports SOCKS5; we were working on one in https://git.plastiras.org/emdee/toxygen_wrapper

Forked

This hard-forked from the dead https://github.com/toxygen-project/toxygen next_gen branch.

See ToDo.md to the current ToDo list.

Wechat

You can have a weechat console so that you can have IRC and jabber in a window as well as Tox. There's a copy of qweechat in thirdparty/qweechat backported to PyQt5 and integrated into toxygen. Follow the normal instructions for adding a relay to weechat

/relay add ipv4.ssl.weechat 9000
/relay start ipv4.ssl.weechat

or

/relay add weechat 9000
/relay start weechat

and use the Plugins/Weechat Console to start weechat under Toxygen. Then use the File/Connect menu item of the Console to connect to weechat.

Weechat has a Jabber plugin to enable XMPP:

/python load jabber.el
/help jabber

so you can have Tox, IRC and XMPP in the same application! See docs/ToxygenWeechat.md

Install

To install read the requirements.txt and look at the comments; there may be things that need installing by hand or decisions to be made on supported alternatives.

https://git.plastiras.org/emdee/toxygen_wrapper needs packaging on pypi as it is a dependency. Just download and install it from https://git.plastiras.org/emdee/toxygen_wrapper

This is being ported to Qt6 using qtpy https://github.com/spyder-ide/qtpy It now runs on PyQt5 and PyQt6, and may run on PySide2 and PySide6 - YMMV. You will be able to choose between them by setting the environment variable QT_API to one of: pyqt5 pyqt6 pyside2 pyside6. It's currently tested only on PyQt5.

To install it, look in the Makefile for the install target and type

make install

You should set the PIP_EXE_MSYS and PYTHON_EXE_MSYS variables and it does

	${PIP_EXE_MSYS} --python ${PYTHON_EXE_MSYS} install \
		--no-deps \
		--target ${PREFIX}/lib/python${PYTHON_MINOR}/site-packages/ \
		--upgrade .

and installs into PREFIX which is usually /usr/local

Updates

Up-to-date code is on https://git.plastiras.org/emdee/toxygen

Tox works over Tor, and the c-toxcore library can leak DNS requests due to a 6-year old known security issue: https://github.com/TokTok/c-toxcore/issues/469 but toxygen looksup addresses before calling c-toxcore. This also allows us to use onion addresses in the DHTnodes.json file. Still for anonymous communication we recommend having a TCP and UDP firewall in place.

Although Tox works with multi-user group chat, there are no checks against impersonation of a screen nickname, so you may not be chatting with the person you think. For the Toxic client, the (closed) issue is: https://github.com/JFreegman/toxic/issues/622#issuecomment-1922116065 Solving this might best be done with a solution to MultiDevice q.v.

The Tox project does not follow semantic versioning so the project may break the underlying ctypes wrapper at any time; it's not possible to use Tox version numbers to tel what the API will be. In which case you'll have to go into the tox.py file in https://git.plastiras.org/emdee/toxygen_wrapper to fix it yourself.

MultiDevice

Work on this project is suspended until the MultiDevice problem is solved. Fork me!