Capturing messages - lighterowl/czateria GitHub Wiki

If you've hit a bug which appears to be related to how messages are processed by the application, it is best if you capture the message exchanges when using the official client (i.e. the webpage) and the exchanges produced by this program. This article shows how to do that.

Privacy

The data dumps will contain all messages sent from and to the chatrooms and private conversations. This includes the nickname's password, which is sent to the server during the login procedure. If the issue you're experiencing is only reproducible only while using a registered nickname, please create a new one with a throwaway password, and use it while reproducing the issue.

General rules

  1. Do your best to do exactly the same things in both the browser and the desktop application.
  2. Remember that Czateria has a rather long "keepalive" period for temporary nicknames. If you used a non-registered nickname to enter the chat, you will not be allowed to use it again for about half an hour or so.
  3. Choose rooms with as few people as possible : this simply makes the dumps smaller and easier to process.

Browser

The best tool for this is Chrome/Chromium 76 or newer, since these versions have the capability to save a HAR file including WebSocket traffic, which is essential here. Older versions cannot be used, since they omit WebSocket data when saving HAR files.

  1. Close all your running Chrome windows.
  2. Create a temporary directory and tell Chrome to use it as the user data directory. This is done in order to avoid any cookies/local storage from changing the app's behaviour, or leaking cookies into the data dump. On Linux, this can be done by running your-chrome-binary --user-data-dir=$(mktemp -d).
  3. Go to czateria.pl, choose your channel, click on it.
  4. You should now be at the login window. Press Ctrl-Shift-I to display the developer tools window. Click the "Network" tab. Do not close this window until you log out of the app. Switch back to the login window and refresh it.
  5. Do your thing : log in, write in the main chat, start a private conversation. Generally, do the stuff that doesn't work in the reimplemented app, but remember that everything you do is going to be present in the data dump.
  6. Exit the app gracefully by clicking "Wyjście" in the lower-right corner. Do not just close the window, as this will also close the developer tools window and all the captured traffic will be gone. You should now be back at the login window.
  7. Open the developer tools window that you've had open in the background all the time. Click the button similar to the ordinary download button (an arrow pointing downwards) labelled "Export HAR", choose a location for your file, and you're done!

Desktop

You need to build the debug version of the application and start it with the CZATERIA_DEBUG environment variable set. The debug output then includes all data sent and received by the application. Assuming that you're at the top directory of the repository and running Bash, this is going to be as simple as :

mkdir build
cd build
qmake ../czateria.pro CONFIG+=debug
make
CZATERIA_DEBUG=1 ./ui/ui > ~/czateria_debug.txt 2>&1

Uploading

Since both dumps are essentially text files, you're encouraged to compress them before sharing them with your favourite compression tool. This is especially true for the HAR file, which contains all images and Javascript files needed to run the site. Once you're done, share the file via a service like Catbox or Uguu and post a link to it in the relevant issue.