You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
mdPlusPlus 4026cc8bec Merge branch 'main' of lokilocker.com:SomeGuy/sessioncommunities.online 19 hours ago
languages@f60588dada Update language submodule 1 week ago
misc Update list_of_known_servers.txt 3 weeks ago
output Hotfix Copy button generation 4 days ago
php Merge pull request 'SOGS QR Caching & backend improvements' (#17) from gravel/sessioncommunities.online:backend-caching into main 19 hours ago
sites Merge pull request 'SOGS QR Caching & backend improvements' (#17) from gravel/sessioncommunities.online:backend-caching into main 19 hours ago
systemd Restructure static site generation 2 weeks ago
.gitignore Ignore cache folder 2 weeks ago
.gitmodules Outsource language_flags.php into submodule 3 weeks ago
.phpenv Improve logging 4 days ago
Makefile Change dev server HTTP port from 8080 to 8081 4 days ago
README.md README formatting & clarification 2 weeks ago

README.md

Crawl lists of active Session Communities

What does this site do?

This script crawls known sources of published Session Communities, queries their servers for available information and displays this information as a static HTML page.
The results of this can be viewed on https://sessioncommunities.online/.

What is Session?

Session is a private messaging app that protects your meta-data, encrypts your communications, and makes sure your messaging activities leave no digital trail behind.
https://getsession.org/

Details

Which sources are crawled?

Currently this script crawls the following sites:

Additionally, the following open community servers are polled:

Steps

  1. Fetching source HTML: get_html_from_known_sources()
  2. Extracting Session invites from the HTML: extract_join_links_from_html() and get_servers_from_join_links()
  3. Making sure servers are online: reduce_servers()
  4. Querying the servers for all available rooms and normalize active user numbers: query_servers_for_rooms()
  5. De-duplicating servers based on public keys: get_pubkeys_of_servers() and reduce_addresses_of_pubkeys()
  6. Aggregating all server info & adding language data: generate_info_arrays()
  7. Generating static HTML content: generateHTML()

Legacy support

Right now we fully support legacy SOGS servers, although this support is likely going to be dropped soon, since those servers can not even be joined anymore with current Session clients.
Dropping legacy support will also increase maintainability.

Work around bad routing to Chinese servers

Depending on your location, it is possible for you to get really bad routing to SOGS servers behind the GFW. In this case, the initial connection is still successful, but you'll never receive any actual content and the retrieval attempt will simply time out. This happens randomly. To make sure this won't affect the results, we simply check whether the server is online (the initial connection being successful), and then retry a lot of times with a short timeout until we eventually get the content.
The details can be seen in curl_get_contents().

Official repositories

If your favourite Session community is missing a language flag, you can issue a pull request here:

Contact

If you want to contact me, you can add me on Session via my ONS: "someguy" (without the quotes)