Tag: python

  • 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