• Mo chevron_right

    How to add custom sticker packs to Movim

    Timothée Jaussoin – pubsub.movim.eu / Movim – Tuesday, 18 July, 2017 - 05:59 edit

Original article written by kawaii.

Movim is a decentralized social network, written in #PHP and HTML5 and based on the XMPP standard protocol. One of my faviourite features in Movim is that you can send #stickers to your friends. By default #Movim comes bundled with a few sticker packs but if like me you'd like to extend this and add your own then it's surprisingly not too difficult! There are three main components to creating your own sticker pack:

You'll need to find the following directory on your Movim server filesystem:

/var/www/movim/app/widgets/Stickers/stickers/

Within this directory you will see the default Movim sticker packs i.e. 'mochi' and 'racoon'. Create a new directory here, for this example call it 'mystickers' or something. Within this directory create a new file called 'info.ini'. The contents of this file describe some basic information about the sticker pack. Here is an example from the 'racoon' set:

author      = Corine Tea 
license     = CreativeCommon BY SA
url         = https://lechocobo.wordpress.com/

Edit and enter the relevant details into the file and then save it. Now we need to add our 'icon.png' to this directory. This is a small image that will be displayed in the list of sticker packs within the Movim client itself. You must name this file exactly 'icon.png' or it will not be displayed. Finally, your actual sticker images themselves. Movim will not simply load any image within the directory. Your images must be converted so that the filename is the SHA1 hash of the file contents, plus the file extension (PNG). You can use the following #Python script created by James Curtis to rename any image files (except icon.png) into an acceptable format for use within Movim:

import hashlib
import os
from glob import glob

image_file_list = glob('*.png')

for image in image_file_list:
    if not image == "icon.png":
        image_hash = hashlib.sha1(open(image, 'rb').read()).hexdigest()
        os.rename(image, "{image_hash}.png".format(image_hash=image_hash))

Any image with the '.png' extension within your new sticker pack directory will have been converted so that the filename is the correct SHA1 hash which Movim will accept and display. Enjoy your new stickers! :)

Special thanks to Jaussoin Timothée for creating Movim and to James Curtis for providing the Python script used to convert the image filenames to the required SHA1 hash.

  • Mo chevron_right

    Movim 0.11 - Tuttle

    Timothée Jaussoin – pubsub.movim.eu / Movim – Friday, 31 March, 2017 - 08:00 edit

Six months after Movim 0.10 Holmes, here is the new winter release of the Movim project.

Small recap: Movim is a project that aims to build an IM and social networking service exclusively on top of the XMPP protocol.

This 0.11 version refined several features and will introduce a couple of big changes, mainly regarding the navigation and the project UI.

Features

New contacts list

The contacts list (or roster) has always been a very complex element inside Movim. It was ported on Angular 1 a couple of versions ago but suffered since then of performances issues (that could block the page loading for several seconds).

This new version brings a complete rewrite of this feature in pure PHP (with a bit of JavaScript). The contacts are now grouped in a simple list. The search has been improved and now allows you to search instantly among your contacts using their name, ID, nickname or group.

Onboarding

At first startup, Movim is now asking for some browser and account preconfiguration regarding notifications and pop-ups (used for videoconferencing) preferences.

test

The sharing feature

As promised, articles sharing has been greatly improved in and around the Movim project. It is now possible to share an article (as in "write an article as an answer to") on your own Blog. This feature is based on the IETF — Atom Threading Extensions (RFC 4685) norm. Again, Movim aims at showing that it's possible to build a social solution relying only on existing standards.

Sharing an external link has also been improved. Movim now understands XMPP URIs.

Communities

Communities, previously named "groups", are the result of a deep redesign of the way articles are displayed navigated through. The reorganization of the content makes the exploration much easier and natural. This new name also lets Communities clearly stand out from group discussions (chatrooms) and groups in the contacts list.

Communities also benefited of a better management system, for users, but also for administrators who can now assign roles in a more precise way.

All in all, that's a lot of changes but don't worry, Movim will still be compatible with old versions as nothing has changed on the XMPP side. ;)

Posts

Two littles features have been added on the articles page to facilitate articles discovery and evaluation. An article is now surrounded by links to the previous and following articles of the same Community or from the same contact and a "Like" button let's you express your contempt to the author of the article. :)

As an author, a new Notifications block on the homepage informs you of comments and likes on your published articles.

Discovery

The interface redesign also brings new features of content discovery.

Movim now provides readers with related articles published on Blogs or in Communities. Suggestions are so far pretty basic but should get better in the upcoming versions.

Chat

The Chat part has not been forgotten. A lot of changes have been done on the interface to ease the navigation on small and big screens (removal of useless spaces) and to fix a few bugs (on Android). A new pack of stickers has been added with a Creative Common BY-SA license.

The file upload and file sharing UI have both been redesigned and now make use of one of the latest XMPP norms, XEP-0385 : Stateless Inline Media Sharing (SIMS). It allows Movim to integrate them better in Chats.

Videoconferencing (beta)

In this version, the videoconferencing feature is coming back in Movim. As usual, nothing but standards here (WebRTC and XMPP Jingle this time). However some bugs still remain. They should all be fixed for the upcoming (0.12) version. This feature is only available for the desktops for now.

Refactoring of the session system

The user sessions management code within Movim was one of the oldest ones in use in the project. It has been heavily redesigned and now brings a new way of handeling cookies and session variables both in memory and in the database.

Around Movim

We now see more and more external contributions on Movim and its linked projects.

Android Client

Thanks to schlusslicht the Android native file selector has been integrated to the application. You can now upload files from your phone.

A little security update regarding certificates management has been added at the same time (non valid certificates are no longer accepted).

The Android application is available on Google Play and F-Droid.

Electron Client (desktop)

The Electron client has been updated. Mike Barnes (bremensaki) has added the support of contextual menus in the interface. Thanks Mike !

New Debian and RPM packages have been made. Movim is now also available on Windows and macOS. All those applications are available on the official website.

Atomtopubsub

Atomtopubsub is the little magic tool that, as its name suggests, parses Atom feeds and injects them on Pubsub nodes. It allows Movim to offer a lot of news feeds among Communities. A big thanks to Link Mauve, who took some time during the 33c3 to port atomtopubsub in Python 3 and to optimize the processing of articles inside the application.

Movim Europe

Movim Europe is a structure that provides support for the Movim project. It has been declared in the Netherlands and currently offers two services.

  • technical support and advices to deploy the platform (and linked services such as XMPP servers or SQL databases) and/or on the technologies involved in the project;
  • the possibility as a company, an association or an individual to fund the development of features that were not initially planned on the roadmap and that are part of a particular need.

The gathered funds will first cover the running costs (domains, hosting, travels...) that were until now payed by the founder, but also to free more time to develop the project and its surroundings (administration, linked projects, conferences...).

Don't hesitate to contact us on the official chatroom.

A few figures

We also have two official servers: one hosted in Amsterdam, with around 4 000 registrations and 50 connected people, and one in Roubaix with 2 800 registered people and around 20 simultaneously connected people.

Everyday, 4 000 messages (simple or from groupchats) are sent or received, and around twenty articles are written by the users of nl.movim.eu.

Statistics that are (voluntarily) sent on api.movim.eu by the deployed instances are showing a total of 8 000 registered users and around 250 simultaneously connected ones along the day. The XMPP server movim.eu reaches 300 connected people during the day.

Some plans are made to open new servers both in Australia and in Russia.

Movim 0.12

A new roadmap is also planned for the 0.12 that should be released this summer. Two main changes are planned:

  • Movim has a heavy memory consumption, it can reach 50 Mio for some users connected on a server. This problem is not due to memory leaks but to architectural decisions that are duplicating for each session some parts of the Movim code in memory. A huge change on this subject is planned, that should significantly reduce the memory footprint during runtime.
  • An implementation of the OMEMO protocol has been strongly demanded by the community. A preliminary research work has been done in January and it seems that this end-to-end encryption protocol could be implemented in Movim. A publication about this feature will most probably be released in the next few months.

We need you!

Don't forget, the Movim project needs you! As a source code contributor, but also as an administrator, packager, translator or even a drawer (if you want to add your own stickers to Movim!).

All contributions are welcome, so don't hesitate to come and discuss them with us on movim@conference.movim.eu. :)

That’s all folks!

Translated from the original French article by nodpounod - Christine HO & daftaupe - Pierre-Alain TORET

  • Movim

    Movim is a kickass distributed social networking platform that protect your privacy an comes with a set of awesome features.

  • image
  • chevron_right

    Movim, des nouvelles de la 0.9.1

    Timothée Jaussoin – Saturday, 19 March, 2016 - 20:24 edit

Voilà un mois que Movim 0.9 - Tchouri est sorti et déjà plein de nouvelles fonctionnalités ont été intégrées pour la prochaine version !

Le travail effectué sur la 0.9.1 (qui n'a pas encore de nom pour le moment) se concentre essentiellement sur la partie chat du projet.

Il est déjà possible d'éditer le précédent message envoyé (en utilisant l'extension XEP-0308: Last Message Correction de XMPP) mais aussi de savoir quand un message a été reçu par le destinataire (voir XEP-0184: Message Delivery Receipts).

Petit surprise pour les movimiens: le support des stickers (voir la page Wikipedia pour comprendre de quoi il s'agit) a été ajouté dans le projet (via l'intégration de XEP-0231: Bits of Binary). Ce qui est intéressant avec cette fonctionnalité, c'est qu'il n'y a pas de restriction sur la liste des stickers envoyés ou reçus et qu'il est déjà possible d'envoyer des stickers de Movim vers Pidgin ou Gajim. Un cache est créé par Movim pour éviter de transférer plusieurs fois l'image sur le réseau.

Je travaille également avec des dessinateurs (et dessinatrices !) pour intégrer des stickers exclusifs au projet ! Un premier pack, créé par Corine Tea, est déjà disponible sous licence Creative Commons BY-NC-SA. Je donnerai plus d'informations prochainement là dessus ;)

Dans le reste du projet, quelques retouches esthétiques mineures. La page "Accueil" a été supprimée et son contenu a été fusionné avec la page "Actualité". Plein de petits bugs ont été corrigés ici et là dont un sur la gestion des étiquettes des publications (qui supportent désormais les accents et certains caractères spéciaux !).

Une mise à jour de la librairie Modl a permis d'appliquer de meilleures restrictions sur la base de données et ainsi de la rendre plus cohérente.

Une nouvelle version de l'application bureau de Movim est également sortie pour Debian et Ubuntu. Elle est disponible, comme toujours, sur le dépôt APT officiel du projet apt.movim.eu. Elle corrige certains soucis de navigation et les liens externes sont maintenant ouverts dans le navigateur par défaut.

Le pod nl.movim.eu est passé à la version PHP 7.0 ainsi qu'au HTTP/2 avec un gain de performances à la clef ! N'hésitez pas à utiliser ce pod qui possède exactement les mêmes fonctionnalités que pod.movim.eu.

Il reste encore un petit peu de travail à faire avant la sortie de la 0.9.1. N'hésitez pas à venir discuter avec nous sur le salon officiel du projet, à me poser des questions et à ouvrir des bugs si vous en trouvez !