Jonas Schäfer

First update on search.jabber.network in 2020

I have not written about the search.jabber.network service I am developing, maintaining and hosting in this blog yet, so this post is kind of out of context. I still wanted to have a blogpost to link to for the upcoming XMPP newsletter, so here goes.

At some later point I may make a more general post about the service and its technical background.

Very short intro to search.jabber.network

search.jabber.network is a search engine for public chat rooms (channels) in the Jabber instant messaging network. I deployed it in mid-2018 and have been maintaining it ever since. Back then, it was still called Christopher Muclumbus to make a bad pun. Because why not.

The 2020-01 Update

The most recent update brings a bunch of new minor features.

Linkification of URLs in description texts

People, especially in support MUCs, have been putting URLs related to the room in the room description for quite a while now. A recurring feature request has been to make those URLs clickable for better user experience.

For anyone who has been maintaining and hosting services where users can post arbitrary content for a few years, there is an obvious problem with this: Link spam. Search engines still (partially) weigh results based on incoming and outgoing links. So anything which creates a link to a site is attractive to spammers.

Luckily, there is a way to tell search engines that they should not count this link (rel="nofollow"), so we’re using that. Another problem to consider was how to mix linkification and search keyword highlighting, as well as other potenital abuse topics.

With that out of the way, the feature is finally there (fixes issue #42).

Improvements language tag handling and statistics

The user debacle brought up (I think this wasn’t the first time this idea was floating around, but it’s the most recent time for sure) to create statistics on the languages declared by the rooms known by the search engine.

This was now implemented and the statistics are included on the normal statistics page of search.jabber.network.

In addition, I also added code to filter out invalid (= unknown to Babel) ISO language codes from group chat information. This has a simple accessibility reason: on the website, I need to declare the language of the content. This happens with similar language codes used by XMPP. The problem is, however, if an invalid language code is used, this can confuse screen reader software and the text may become incomprehensible.

To give room admins some incentive to set the correct information, any invalid values are now filtered and won’t be shown on the website at all.

OpenSearch descriptor

Last but not least, you can now add search.jabber.network as a search engine to your browser, in the same way you can add, for example, Wikipedia. When you visit the page, your browser should offer you to add the website as a search engine. Firefox does this with a small green plus on the magnification glass in the quick search bar.

Thanks to Zash for figuring out how to do this properly (as described in issue #43).