toxygen/README.md

148 lines
4.9 KiB
Markdown
Raw Permalink Normal View History

2016-07-27 16:53:50 +02:00
# Toxygen
2024-02-07 16:34:15 +01:00
Toxygen is powerful cross-platform [Tox](https://tox.chat/) client
2024-02-17 21:02:30 +01:00
for Tox and IRC/weechat written in pure Python3.
2016-03-16 17:06:15 +01:00
2022-09-27 20:39:33 +02:00
### [Install](/docs/install.md) - [Contribute](/docs/contributing.md) - [Plugins](/docs/plugins.md) - [Compile](/docs/compile.md) - [Contact](/docs/contact.md)
2016-05-12 21:52:47 +02:00
2024-02-06 19:07:32 +01:00
### Supported OS: Linux and Windows (only Linux is tested at the moment)
2016-07-27 16:53:50 +02:00
2016-08-19 19:12:51 +02:00
### Features:
2016-03-29 20:19:29 +02:00
2024-02-17 21:02:30 +01:00
- PyQt5, PyQt6, and maybe PySide2, PySide6 via qtpy
- IRC via weechat /relay
- NGC groups
2017-07-15 11:28:19 +02:00
- 1v1 messages
- File transfers
- Audio calls
- Video calls
2018-01-24 21:42:03 +01:00
- Group chats
2017-07-15 11:28:19 +02:00
- Plugins support
- Desktop sharing
- Chat history
- Emoticons
- Stickers
- Screenshots
- Save file encryption
- Profile import and export
- Faux offline messaging
- Faux offline file transfers
- Inline images
- Message splitting
2024-03-08 05:01:31 +01:00
- Proxy support - runs over tor, without DNS leaks
2017-07-15 11:28:19 +02:00
- Avatars
- Multiprofile
- Multilingual
- Sound notifications
- Contact aliases
- Contact blocking
- Typing notifications
- Changing nospam
- File resuming
- Read receipts
2024-02-08 08:39:15 +01:00
- uses gevent
2016-03-16 17:06:15 +01:00
2016-07-27 16:53:50 +02:00
### Screenshots
2016-05-12 21:52:47 +02:00
*Toxygen on Ubuntu and Windows*
2016-03-30 23:23:10 +02:00
![Ubuntu](/docs/ubuntu.png)
![Windows](/docs/windows.png)
2016-03-29 20:19:29 +02:00
2024-02-18 19:25:29 +01:00
Windows was working but is not currently being tested. AV is working
2024-03-08 05:01:31 +01:00
but the video is garbled: we're unsure of naming the AV devices
2024-02-06 19:07:32 +01:00
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
2022-09-27 14:52:32 +02:00
## Forked
2016-08-19 19:12:51 +02:00
2022-11-23 20:23:21 +01:00
This hard-forked from the dead https://github.com/toxygen-project/toxygen
2022-09-27 14:52:32 +02:00
```next_gen``` branch.
2022-11-05 02:16:25 +01:00
2022-10-11 18:36:09 +02:00
See ToDo.md to the current ToDo list.
2024-02-18 19:25:29 +01:00
## IRC Weechat
2024-02-06 19:07:32 +01:00
2022-11-20 19:44:17 +01:00
You can have a [weechat](https://github.com/weechat/qweechat)
console so that you can have IRC and jabber in a window as well as Tox.
2024-02-18 19:25:29 +01:00
There's a copy of qweechat in https://git.plastiras.org/emdee/qweechat
2024-03-08 05:01:31 +01:00
that you must install first, which was backported to PyQt5 now to qtpy
(PyQt5 PyQt6 and PySide2 and PySide6) and integrated into toxygen.
Follow the normal instructions for adding a ```relay``` to
[weechat](https://github.com/weechat/weechat)
2022-11-20 02:11:51 +01:00
```
2024-02-18 19:25:29 +01:00
/relay add weechat 9000
/relay start weechat
2022-11-20 19:44:17 +01:00
```
or
```
2024-02-18 19:25:29 +01:00
weechat -r '/relay add weechat 9000;/relay start weechat'
2022-11-20 19:44:17 +01:00
```
2024-02-18 19:25:29 +01:00
and use the Plugins -> Weechat Console to start weechat under Toxygen.
2023-12-11 03:18:11 +01:00
Then use the File/Connect menu item of the Console to connect to weechat.
2022-11-23 20:23:21 +01:00
Weechat has a Jabber plugin to enable XMPP:
2022-11-20 19:44:17 +01:00
```
/python load jabber.el
/help jabber
2022-11-20 02:11:51 +01:00
```
2024-03-08 05:01:31 +01:00
so you can have Tox, IRC and XMPP in the same application! See docs/ToxygenWeechat.md
2022-11-20 02:11:51 +01:00
2024-02-06 19:07:32 +01:00
## Install
To install read the requirements.txt and look at the comments; there
2024-02-18 19:25:29 +01:00
are things that need installing by hand or decisions to be made
2024-02-06 19:07:32 +01:00
on supported alternatives.
2024-03-08 05:01:31 +01:00
https://git.plastiras.org/emdee/toxygen_wrapper needs installing as it is a
dependency. Just download and install it from
2024-02-18 19:25:29 +01:00
https://git.plastiras.org/emdee/toxygen_wrapper The same with
https://git.plastiras.org/emdee/qweechat
2023-12-11 03:18:11 +01:00
2024-02-06 19:07:32 +01:00
This is being ported to Qt6 using qtpy https://github.com/spyder-ide/qtpy
2024-02-18 19:25:29 +01:00
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 mainly on PyQt5.
2024-02-06 19:07:32 +01:00
2024-02-07 16:34:15 +01:00
To install it, look in the Makefile for the install target and type
2024-02-06 19:07:32 +01:00
```
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 \
2024-02-08 09:37:57 +01:00
--no-deps \
2024-02-06 19:07:32 +01:00
--target ${PREFIX}/lib/python${PYTHON_MINOR}/site-packages/ \
--upgrade .
```
and installs into PREFIX which is usually /usr/local
2023-12-11 16:39:28 +01:00
2024-02-14 04:02:09 +01:00
## Updates
2024-02-03 05:34:10 +01:00
Up-to-date code is on https://git.plastiras.org/emdee/toxygen
2024-02-17 21:02:30 +01:00
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.
2024-02-18 19:25:29 +01:00
The Tox project does not follow semantic versioning of its main structures
in C so the project may break the underlying ctypes wrapper at any time;
it's not possible to use Tox version numbers to tell what the API will be.
The last git version this code was tested with is
``1623e3ee5c3a5837a92f959f289fcef18bfa9c959``` of Feb 12 10:06:37 2024.
2024-03-08 05:01:31 +01:00
In which case you may need to go into the tox.py file in
2024-02-17 21:02:30 +01:00
https://git.plastiras.org/emdee/toxygen_wrapper to fix it yourself.
2024-02-14 04:02:09 +01:00
2024-02-06 19:07:32 +01:00
## MultiDevice
2024-02-03 05:34:10 +01:00
Work on this project is suspended until the
[MultiDevice](https://git.plastiras.org/emdee/tox_profile/wiki/MultiDevice-Announcements-POC) problem is solved. Fork me!