GNUnet Messenger API: February

Hi there,

At the beginning of the month I didn’t think to make that much progress. But now I get the feeling that the GUI client could come to an end next month. Why do I have this feeling? It’s looking really good already, not gonna lie.

So as stated in my last update in January, loading older messages needs to be implemented as well as switching accounts during runtime. Now it is. Getting older messages still needs some tweaking to not load all older messages but it’s good enough for now.

image of messenger-gtk account selection

Switching accounts was more difficult to implement because I had to go back looking into the Messenger service of GNUnet itself, fixing that the service will run as user to make use of the same EGOs as the client side library in multi-user setups.

The client side library (libgnunetchat) now exposes each of your EGOs as account with name and own directory to store the files and configurations used by the applications. Another benefit of this is that you can start the application now without selecting one of your EGOs beforehand. Just start the application and a menu opens to select any account or even create a new account during runtime. Memberships of groups, chats and others do not interfere and it’s even possible to chat with yourself using only one client, switching accounts back and forth.

The next big feature which got added is deletion of messages. I’ve already implemented the selection of messages and a button to call their deletion later on. But now it actually works. You can delete your own messages in the whole decentralized chat and messages by others only locally. The whole process of handling permissions is part of the Messenger service. So the clients don’t have to deal with that.

image of messenger-gtk message deletion

I should also add that you can delete messages with any desired delay via dialog. There have been added a few options to choose from. Of course the default option is to delete immediately without any delay. But the delay might later on be useful to send messages which will automatically disappear after a given time. Some messengers had this feature and I thought it does not make the service much more complex than without it. So it was added.

The next big step will be exchanging contacts via GNS. I’ve looked into this a bit already but I might have to postpone the QR codes because of my problems with camera support on the Pinephones. This month I got access to a Pinephone Pro which is extremely smooth with running messenger-gtk but the cameras still need their drivers. However I’ve already had some discussions that exchanging contacts via GNUnet specific URI should be fine allowing any third-party text channel besides physical exchange.

The QR code will then likely be added as representation for such an URI. This should make it quite easy to implement this later on and users have more choice overall without a too complex code base.

After the contact exchange there are only minor features on my list in terms of complexity: Adding read receipts, contact verification and hooking up the settings to customize the application. I’m confident that this can be done until my next report in March. Then the full release of the application will depend on the next release of GNUnet since it requires newer changes only merged to the repository.

By the way there have been some minor additions in convenience as well to the GUI. Side menus will close after selecting options properly and the contacts and chats allow filtering via search box.

Kind regards,
Jacki

Read original article

Popular posts from this blog

GNUnet Messenger API: March

GNUnet Messenger API: September