phone

    • chevron_right

      Chat picture resolver and Telegram stickers

      Timothée Jaussoin • pubsub.movim.eu / Movim • 15 May, 2020 edit • 3 minutes

    Movim 0.18 is planned to be released soon.

    In the meantime, let's have a look at one specific feature that is really useful when you integrate Movim with the Spectrum2 - Telegram bridge.

    For those that are not aware, XMPP can connect to other chat networks using tools called "transport". One of the most used is called Spectrum2 and can connect to many other networks thanks to its libpurple support.

    Telegram transport setup

    What will we do here is:

    • Setup telegram-purple in Spectrum2 on Debian
    • Connect it to a XMPP server (here ejabberd)
    • Adapt the transport to integrate with Movim

    Setup Spectrum2 and telegram-purple

    Here I will not detail the basic installation, the official Spectrum2 documentation is pretty complete.

    Once the repository is setup, please install the base package and the libpurple module:

    apt install spectrum2 spectrum2-backend-libpurple
    

    For telegram-purple the README is also quite complete

    Create a Telegram transport

    Once all the packages are setup, we will create a transport configuration file. You can reuse the spectrum.cfg.example located in the /etc/spectrum2/transports/ as a base.

    # nano /etc/spectrum2/transports/spectrum_telegram.cfg
    

    This is basically the config file that I used for my own telegram.movim.eu transport:

    [service]
    server_mode = 0
    user=spectrum
    
    jid = telegram.movim.eu
    password = spectrumpassword
    server = 127.0.0.1
    port = 5347
    backend_host = 127.0.0.1
    
    users_per_backend=10
    
    backend=/usr/bin/spectrum2_libpurple_backend
    protocol=prpl-telegram
    
    web_directory=/home/movim/upload/spectrum
    web_url=https://upload.movim.eu/spectrum
    
    [identity]
    name=Telegram Transport
    type=telegram
    
    [logging]
    config = /etc/spectrum2/logging.cfg
    backend_config = /etc/spectrum2/backend-logging.cfg
    
    [database]
    type = sqlite3
    
    [registration]
    enable_public_registration=1
    

    When Spectrum2 will connect to the Telegram network, the stickers will be downloaded as files on the server. By default an ugly path is simply sent to the XMPP clients. We will turn it to a proper URL and let Movim to its magic.

    To do that we need to configure the Web Storage module. You can also find more documentation about it there.

    web_directory=/home/movim/upload/spectrum
    web_url=https://upload.movim.eu/spectrum
    

    It's pretty self explanatory. The downloaded stickers will be put in the web_directory directory. The second parameter, web_url, is basically telling Spectrum2 how to general its URL before sending them in the messages.

    Configure ejabberd

    Then we need to add a new service in our ejabberd.yml configuration file.

      -
        port: 5347
        module: ejabberd_service
        access: all
        ip: "127.0.0.1"
        global_routes: false
        hosts:
          "telegram.movim.eu":
            password: "spectrumpassword"
    

    Once everything is setup, restart Spectrum2 and ejabberd. For Spectrum2 you can do it using spectrum2_manager or a dedicated systemd configuration file.

    Configure our web server

    We then need to expose those files to the web. A simple nginx configuration will handle it.

    server {
        server_name upload.movim.eu;
    
        listen 443 ssl http2;
        listen [::]:443 ssl http2;
    
        …
    
        root /home/movim/upload;
    
        location /spectrum {
            alias /home/movim/movim/spectrum;
        }
    }
    

    Fix the nasty file rights with Incron

    If you start to use your Telegram transport at this point you'll notice that the stickers URLs are returning a 403 Forbidden error.

    Indeed, Spectrum2 is writting the files in the directory using it's own rights. And this can't be configured.

    We will then use another useful tool called Incron. This tool works like CRON but instead of working on time events, it works on file events.

    You can find a pretty complete documentation there.

    apt install incron 
    nano /etc/incron.allow # add your spectrum user there
    sudo -su spectrum
    incrontab -e
    

    In the incrontab file well then change dynamicaly the rights of the files once they are wrote in the directory (check the documentation for more details).

    /home/movim/upload/spectrum   IN_CLOSE_WRITE          chmod 664 $@/$#
    

    Enjoy your nice Telegram stickers in Movim

    In Movim, nothing more to do. With the version 0.18, Movim will try to resolve the incoming messages that contains a URL and see if it's a valid picture. Which is the case for Telegram stickers.

    Telegram stickers displayed in the Movim chat

    You can also note that it works for any other incoming picture URL, including those sent using Conversations or other XMPP clients.

    That's all folks!

    #telegram #xmpp #movim #transport #stickers #ejabberd #admin

    • chevron_right

      A 3in1 surprise! Movim 0.17.1, Movim Android 0.17.0.0 and Movim Account Panel

      Timothée Jaussoin • pubsub.movim.eu / Movim • 22 March, 2020 edit • 2 minutes

    A bit more than a month after the #Movim 0.17.1 Catalina release I'm pleased to deliver two new releases and a new tool to all the movim.eu users. Let's dive in all those new exciting features.

    Movim 0.17.1

    This minor #release focuses on a few things. We could call it an "integration release". In fact most of the work done were to help with the new Debian package and for the new Android app release.

    Regarding the Debian package, I'd like to personally thanks Dominik George aka Natureshadow from Teckids e.V. and mirabilos for their continuous work on the dependency packaging, patches and general maintenance of the .deb. They were both added in this release on the Core Contributors page. Thanks!

    Upload widget improvements

    The #Upload #widget, that is used to upload files and pictures during the Posts and Messages publication has been redesigned. You can now drag and drop files from your explorer directly in the drop area. The picture visualization has also been improved and now display more information about it.

    Uploaded widget screen, uploaded using the upload feature, this is so META

    Integration with the new Movim Android release

    The Movim #Android app has not been updated for a while. This new release improves the integration experience one step further.

    In fact, the top bar is now transparent and integrates with the rest of the user interface. The pod switching button is not shown anymore during the startup process (that was slowing down the launch of the app) but directly in the navigation bar (you will need to upgrade both Movim and Movim Android to handle this feature). This allows Movim to launch in only a few seconds on a standard 4G connection.

    Movim now integrates even more within the Android UI

    On the Chat page, it is now possible to close the conversations using a simple drag-to-left movement. Similar to what you can find on Telegram for example.

    Movim Account Panel

    Last but not least, all the movim.eu #XMPP accounts have now access to a new panel. Available on api.movim.eu/accounts it allows some account wise configuration to complete some features unavailable client side.

    To authenticate a "one click link" mechanism has been added. Once your identifier entered this authentication link will be send directly by chat allowing you to access your Account Panel.

    Through this panel you'll be able to list all the existing files you ever uploaded using your XMPP account, in the future you'll be able to also delete them.

    Uploaded browser files on the Movim Account Panel

    Email to XMPP

    This Panel also contains an exclusive feature, the possibility to receive #emails on your XMPP account.

    This feature is only working one way, in fact it's our mascot, and now postwoman Miho that will take care of delivering the emails as chat messages directly to you. Please notice that the attachments are not forwarded and we are not applying any form of SPAM filtering on them. The emails are transferred as it in their textual version to you.

    The Email to XMPP feature

    That's all folks! And don't forget, to prevent the spread of the #COVID19, stays safe at home!

    • wifi_tethering open_in_new

      This post is public

      nl.movim.eu

    • Pictures 1 image

    • visibility
    • favorite

      6 Like

      guillaume, preptorrent, newbie, racuna, omniscion, meta

    • 4 Comments

    • person

      30 March, 2020 mexplorer

      How about Movim and OMEMO for 1to1 Chats?

    • person

      4 April, 2020 preptorrent

      I want to be able to have a collada file as my avatar so it can be 3D in WebGL html5. Then, if a browser cannot display it, the old default jpeg/gif is displayed instead. The filesize of the collada file could be small. A rotating cube could be a cool collada file to have. A QR code to one's movim blog could be one of the 6 sides.

    • person

      2 May, 2020 preptorrent

      https://api.movim.eu/accounts/ It is very cool but, having completed it, I cannot find that file storage area now days later, even if I use this hyperlink in a web-browser. The cog "config" icon does not show it either. What is the correct hyperlink to see files now? Cheers. What is the file-size limit? Is it a total of 5 megabytes for all files? I also think running a full movim server on a old smartphone (such as a nexus5) via "PostmarketOS" would be very very cool indeed. If anybody wants to release an online (easy) installer to do that for "PostmarketOS", it would be awesome. https://en.wikipedia.org/wiki/PostmarketOS

    • person

      4 May, 2020 guillaume

      Great to hear the good folks at Teckids e.V. continue to maintain the Debian package. I'm curious about the new email feature, is there some webpage or docs explaining what this does ?

    • chevron_right

      Movim 0.17 – Catalina

      Timothée Jaussoin • pubsub.movim.eu / Movim • 14 February, 2020 edit • 2 minutes

    Here comes a new exciting Movim release. Two months after Cesco, here comes Catalina.

    In this releases, many fixes but also some nice new features, both for the social and messaging sections of Movim.

    New features

    Global chatroom search

    From the chatrooms widget, you can now directly search rooms globaly and join them in a click. This new feature relies on the search.jabber.network service, that is also implemented in Conversations and Gajim.

    Global search

    New design for the XMPP forms

    The XMPP forms handling and display has been fully redesigned. With nice icons and proper labels it will now be simpler to configure Communities, chatrooms and other XMPP items.

    XMPP Form redesigned

    Disable social features

    Pod admins can now disable all the social features in one click in the admin panel. This is useful for those that only wants to use Movim as a chat frontend for their XMPP services.

    Messages retractation

    After ConverseJS Movim is the second XMPP client that implements the message retractation feature. This allow you to delete any published messages from the history. Be careful, this only works if the contact is also using a compatible client.

    Retracted message

    New night theme colors and design adjustments

    Some small design adjustments were made to improve user experience. Some useless paddings were also removed to give more space to the content (like around the chat bubbles).

    The night theme is now having darker, bluer colors, strongly inspired by the Aritim-Dark KDE/GTK theme.

    New dark theme

    Fixes and improvements

    Beside those changes, many things were fixed in this release, regarding chatroom presences handling, notification counters or complex JID handling (especially if you're using transport services such as IRC or Telegram).

    But the biggest internal change was to bring a new request type to the frontend. Now the current Movim UI (HTML + Javascript + CSS) can request the backend in 3 different ways regarding the usage.

    1. Pure WebSocket requests: the request and the response are not linked together. This is the default case for the Movim requests.
    2. Ajax requests to the daemon: this is useful when the UI needs to know if the message was handled by the server (useful when you publish articles or send chat messages) and if those messages needs to be processed by the daemon (to trigger XMPP requests for example)
    3. And, since this version, some good ol' pure Ajax requests. They directly requests the HTTP backend, without even touching the daemon internaly. This is useful to load pieces of the UI and allows parallelisation. With this changes you'll see that parts of the UI (especially on the chat page) are now loaded way faster, without disturbing the daemon.

    Requests

    What's next?

    In the upcoming weeks we're planning to do some maintenance on the XMPP services. Add some new features and do some administration. On Movim side, nothing really planned for now.

    That's all folks!

    #movim #ajax #http #release #xmpp

    • wifi_tethering open_in_new

      This post is public

      nl.movim.eu

    • Pictures 1 image

    • visibility
    • favorite

      7 Like

      arie, christiangimenez, Adrien Dorsaz, debxwoody, marzanna, debacle, ericbuijs

    • 2 Comments

    • 16 February, 2020 Mathias Poujol-Rost ✅

      Thanks for the improvements.

    • 16 February, 2020 Timothée Jaussoin

      You're welcome SMILING FACE WITH OPEN MOUTH

    • chevron_right

      Movim 0.16.1 – Cesco

      Timothée Jaussoin • pubsub.movim.eu / Movim • 6 December, 2019 • 1 minute

    Only a few weeks after the 0.16 release here is the 0.16.1 one!

    This release includes several fixes and a few new features.

    Features

    You can now share posts to your connected chatrooms :)

    Chatroom post sharing

    Communities layout were a bit redesigned, publication rules are now displayed clearly in the right column and the header shows more information on mobile.

    Communities redesigned

    All the messages that you sent in the one to one discussions can now be edited.

    Message edition for the whole history

    The videoconferencing feature was heavily refactored and several issues were fixed during this process. A new XEP was also used partially to improve the call negociation flow, XEP-0353: Jingle Message Initiation.

    Fixes

    In the database an index was added on the key that was tracking contacts avatars. This sounds maybe a bit technical to you but this small fix boost quite a lot the performances during the login process, when you join a chatroom (especially that one) or when a contact updates his/her avatar. Because it's a database change you should run the database migrations when updating from 0.16 to 0.16.1.

    All the entities that are on the XMPP network needs to declare what they are capable of to the others. This allows feature discovery and negociation and is specified in the #XMPP extension XEP-0115: Entity Capabilities. After the big code refactor of the handling of those #capabilities within the Movim codebase some other small improvements and fixes were done to wrap up properly this feature.

    Presences sent to MUC are now generated the same way than those sent to contacts, this fixes #711.

    DNS resolution errors an timeout are now handled properly displayed during the authentication flow (#368).

    The SQL_DATE constant was renamed to MOVIM_SQL_DATE to prevent some naming conflicts (#820).

    What's next?

    PHP 7.4 was released a few days ago, so the upcoming version will focus on fixing issues to make Movim fully compatible with that version.

    This new PHP release also includes an exciting feature that allows #PHP developpers to call directly C libraries in their codes. This could allow #Movim to directly use the libsignal C library and therefore (finally) allow OMEMO end-to-end-encryption to be implemented. This will be a lot of work and verifications so we're not promissing anything anytime soon. Stay calm please!

    That's all folks!

    #omemo #videoconference #jingle #release

    • chevron_right

      Movim 0.16 – Cesco

      Timothée Jaussoin • pubsub.movim.eu / Movim • 18 November, 2019 edit • 3 minutes

    A bit less than 4 months after the previous 0.15 release we are pleased to announce the release of the 0.16 version of Movim.

    This release comes like always with both new exciting features and performance improvements. But for this one we focused more on making the general usage more accessible and bringing some useful features in.

    What's new?

    Drawing and content sharing

    Thanks to the awesome collaboration with my girlfriend this release comes with a totally new feature that will allow you to draw quickly something over a picture you just took or a blank canvas. Those drawings can then be published within chat discussions or as publications.

    The Snap feature was slightly redesigned to integrate with the Draw feature, you can also now switch between different cameras if multiple are detected (useful on mobile phones).

    The camera switching feature was also integrated in the video-conferencing system allowing you to switch from your front and back views within a video-conference.

    Attachments

    The attachments menu in the chat panel was redesigned to integrate this new Drawing feature while keeping the UI clean and accessible.

    Chat improvements

    Movim now integrates a quick #emoji insertion feature 😱😍 in the chat discussions. When writing a message you can directly type the emojis code using its related :shortcut:. On desktop some work was also done to do all this process using only the keyboard.

    Chats and chatrooms list improvements

    The chats and chatrooms list now displays more information about the currently opened discussions:

    • The chatstates (to know if the contact or one of the rooms occupants is currently typing a message) are displayed in real-time
    • Movim is showing if the last chat message was sent by you
    • The chatrooms are now displayed with a specific icon if they can be publicly discovered and if the occupants can see each-other public profiles (some issues were also fixed regarding the handling of those information backend wise). This allows the users to know more clearly what are the risks of discussing within a room and for the admins to change the rooms configurations regarding their privacy needs.

    Big refactoring of how the XMPP clients and servers capabilities are handled

    This is one of the biggest internal changes that was made for this release. On the XMPP network, the clients and servers are telling each-others what they are capable of. This allows, for example, for a client to know if a server supports file upload to display the feature automatically in the UI.

    Movim was handling very weirdly the content of those capability information for several years. The related code was heavily refactored fixing some features detection issues and adding some new features for the users.

    Movim now displays all the connected clients of all your connected contacts. This allows you to call a device specifically if your contact can be reached on several clients that supports the video-calling feature.

    Search

    The search panel was improved and now allows you to search in Communities. It is also faster to load (especially on mobile) and displays more reliable results especially for tags results.

    Slight design changes

    The general design and animations were slightly changed to allow more content to be displayed (some padding were removed in the chat to display more information within the discussion bubbles) or to make the UI a bit more snappy.

    Performances

    Last but not least! New features don't mean performance hit. Two big performance improvements were introduced in this release.

    A small database change that was overseen until now allows Movim to load chat messages way faster if you have hundreds of thousands (or even millions) of records stored.

    The upgrade of one of our dependencies, reactphp/http, improved the overall speed of around 10 to 20% (especially during the connection and during page switching). This allows Movim to stay around or bellow 300ms for most of the pageloads.

    What's next ?

    For the next release some work is planned to support the PHP 7.4 version and to boost code regarding the new performance features that are coming with this exciting release (especially with the Preloading feature).

    Some new XMPP extensions such as XEP-0424: Message Retraction and XEP-0425: Message Moderation are also planned.

    We will see if those changes will come into a minor 0.16.1 release or a major 0.17 release.

    In the meantime we hope you'll enjoy all those new features and keep spreading Movim around. You can also support us by giving a bit of money monthly on our Patreon. This allows us to cover our expenses (servers, domains) and to create some goodies (I heard that some new stickers are planned).

    That's all folks!

    • movim/movim

      Movim - Decentralized social platform. Contribute to movim/movim development by creating an account on GitHub.

    • wifi_tethering open_in_new

      This post is public

      nl.movim.eu

    • Pictures 1 image

    • visibility
    • chevron_right

      Some small news before the big 0.16 release!

      Timothée Jaussoin • pubsub.movim.eu / Movim • 1 November, 2019 edit

    Just a little article that sum up a few small info around the Movim project.

    We are currently working on fixing the last known bugs before the 0.16 release that will contains many new features and improvement for the project. You can already discover them on our updated website!

    Lots of new Communities were also added recently on our official XMPP server, especially web comics and news websites. You can easily follow them and get notified in real time of new XKCD comics or articles by The Intercept.

    All the info about the 0.16 release will be detailed in an incoming article, stay tuned.

    • wifi_tethering open_in_new

      This post is public

      nl.movim.eu

    • Pictures 1 image

    • visibility
    • favorite

      4 Like

      marzanna, joergd, vinyll, povoq

    • chevron_right

      Fix for two temporary data injection security issues

      Timothée Jaussoin • pubsub.movim.eu / Movim • 22 October, 2019 edit

    Two data injection security issues were just fixed on Movim master in the following commit 71fcff40d70abd84f10baa252f86eba64264e841.

    Movim was not verifying the origin of two kind of XML messages (called stanza) coming from the XMPP connection. This could allow some attacker to inject, in the current client session, some hazardous data. Those data are not persistent after a session reconnection.

    • The roster items
    • The Bookmarks 2 PEP items

    The Roster items security issue was left open for many years and there is no known exploit from the team of it yet. But we strongly recommend you to patch your Movim instance by adding the following line in the lib/moxl/src/Moxl/Xec/Payload/Roster.php file on line 12.

    if (current(explode('/', (string)$parent->attributes()->from)) != \App\User::me()->id) return;
    

    The Bookmark 2 PEP item issue is very similar but was only recently introduced in master with the implementation of the Bookmark 2 feature. We simply recommend to pull master and restart you Movim instance to clear the cache and remove any unwanted data.

    • wifi_tethering open_in_new

      This post is public

      nl.movim.eu

    • favorite

      3 Like

      debacle, ggodfroy, ngoetzel

    • 2 Comments

    • person

      23 October, 2019 ggodfroy

      So this manual patch isn't needed if you pull from master, right?

    • 23 October, 2019 Timothée Jaussoin

      Exactly SMILING FACE WITH OPEN MOUTH

    • chevron_right

      Movim 0.15.1 in preparation, some fixes and improvements in the meantime…

      Timothée Jaussoin • pubsub.movim.eu / Movim • 23 August, 2019 edit

    Only a few weeks after the 0.15 release, a lot of improvements were made (and bugs fixed!) in #Movim for the upcoming 0.15.1 #release. They are listed, like always, on our CHANGELOG file.

    We are also working on a new exciting feature for this release. Some of you already tried it (if you're curious you'll find it already on nl.movim.eu). For the others, here's a little clue:

    Got it?

    We also fixed some issues in the feedcleaner and atomtopubsub projects to improve and fix some compatibility issues between the RSS/Atom streams we are parsing and the #XMPP network. Some broken links were fixed within the articles (especially for pictures and external links), article tags are now transferred and handled properly within Movim and the articles content are now sanitized directly by feedcleaner.

    Tell us what you think and do not hesitate to join us on our official chatroom to discuss about the project!

    That's all folks!

    • wifi_tethering open_in_new

      This post is public

      nl.movim.eu

    • favorite

      6 Like

      mike, guillaume, reik, arie, racuna, meta

    • 4 Comments

    • person

      2 September, 2019 ashledombos

      So it's sketchpad? :)

    • 5 September, 2019 Timothée Jaussoin

      Maybbbeeee WINKING FACE

    • person

      22 October, 2019 ngoetzel

      Why Ownership of a Chat Room that I created is transferred to other Users that I invited to that Channel?, How can i take back Ownership.

    • person

      22 October, 2019 ngoetzel

      Please Guys Help.