Mastodon: How toots are distributed between timeline
On Mastodon @zatnosk@helvede.net shared the image below about where a Toot is displayed.
Since I’m learning Python and Python in my view is so readable that anyone, I thought I’d share it here with a bit of (incomplete) Python code implementing the diagram. (edit: diagram removed, as the code brought a semantic error to light)
This piece of code is how I understand the decisions – but that might just be me…
def display_toot(toot,my_user): ''' An incomplete function showing how public toots will be displayed on respective timelines. This code is not representative of any Mastodon API. It is simply a way for the writer to understand the decisions on where a toot is shown. ''' if is_public(toot): if toot.user.followed_by(my_user): show_on_home_timeline(toot) else: if toot.user.on_server(my_user.server): show_on_local_timeline(toot) else: everyone_followed_on_server = get_all_followed_on(my_user.server) if ( toot.user.followed_by_any( everyone_followed_on_server) or toot.boosted_by_any( everyone_followed_on_server) or toot.response_from_any_on(my_user.server) ): show_on_federated_timeline(toot) else: pass # Incomplete. Non-public toots missing