Skip to content
  • Hjem
  • Seneste
  • Etiketter
  • Populære
  • Verden
  • Bruger
  • Grupper
Temaer
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Kollaps
FARVEL BIG TECH
  1. Forside
  2. Ikke-kategoriseret
  3. **#ActivityPub support in #Madblog**

**#ActivityPub support in #Madblog**

Planlagt Fastgjort Låst Flyttet Ikke-kategoriseret
activitypubfediversemadblogplatypushpubby
18 Indlæg 8 Posters 0 Visninger
  • Ældste til nyeste
  • Nyeste til ældste
  • Most Votes
Svar
  • Svar som emne
Login for at svare
Denne tråd er blevet slettet. Kun brugere med emne behandlings privilegier kan se den.
  • fabio@manganiello.euF This user is from outside of this forum
    fabio@manganiello.euF This user is from outside of this forum
    fabio@manganiello.eu
    wrote sidst redigeret af
    #1

    #ActivityPub support in #Madblog

    https://blog.fabiomanganiello.com/article/Madblog-federated-blogging-from-markdown

    I am glad to announce that Madblog has now officially joined the #Fediverse family.

    If you want to test it out, search for this URL on your Fediverse client.

    Madblog has already supported #Webmentions for the past couple of weeks, allowing your blog posts to be mentioned by other sites with Webmentions support (WordPress, Lemmy, HackerNews…) and get those mentions directly rendered on your page.

    It now adds ActivityPub support too, using #Pubby, another little Python library that I’ve put together myself (just like Webmentions) as a mean to quickly plug ActivityPub support to any Python Web app.

    Webmentions and Pubby follow similar principles and implement a similar API, and you can easily use them to add federation support to your existing Web applications - a single bind_webmentions or bind_activitypub call to your existing Flask/FastAPI/Tornado application should suffice for most of the cases.

    Madblog may have now become the easiest way to publish a federated blog - and perhaps the only way that doesn’t require a database, everything is based on plain Markdown files.

    If you have a registered domain and a certificate, then hosting your federated blog is now just a matter of:

    mkdir -p ~/madblog/markdown
    cat <<EOF > ~/madblog/markdown/hello-world.md
    # My first post
    
    This is my first post on [Madblog](https://git.fabiomanganiello.com/madblog)!
    EOF
    
    docker run -it \
      -p 8000:8000 \
      -v "$HOME/madblog:/data" \
      quay.io/blacklight/madblog
    

    And Markdown files can be hosted wherever you like - a Git folder, an Obsidian Vault, a Nextcloud Notes installation, a folder on your phone synchronized over SyncThing…

    Federation support is also at a quite advanced state compared to e.g. #WriteFreely. It currently supports:

    • Interactions rendered on the articles: if you like, boost, quote or reply to an article, all interactions are rendered directly at the bottom of the article (interactions with WriteFreely through federated accounts were kind of lost in the void instead)

    • Guestbook support (optional): mentions to the federated Madblog handle that are not in response to articles are now rendered on a separate /guestbook route

    • Email notifications: all interactions can have email notifications

    • Support for quotes, also on Mastodon

    • Support for mentions, just drop a @joe@example.com in your Markdown file and Joe will get a notification

    • Support for hashtag federation

    • Support for split-domain configurations, you can host your blog on blog.example.com but have a Fediverse handle like @blog@example.com. Search by direct post URL on Mastodon will work with both cases

    • Support for custom profile fields, all rendered on Mastodon, with verification support

    • Support for moderation, either through blocklist or allowlist, with support for rules on handles/usernames, URLs, domains or regular expressions

    • A partial (but comprehensive for the provided features) implementation of the Mastodon API

    If you want you can follow both the profiles of my blogs - they are now both federated:

    • My personal blog: @fabio@manganiello.blog (it used to run WriteFreely before, so if you followed it you may need to unfollow it and re-follow it)

    • The #Platypush blog: @blog@platypush.tech

    julian@activitypub.spaceJ silverpill@mitra.socialS liaizon@social.wake.stL shellsharks@shellsharks.socialS 4 Replies Last reply
    0
    • fabio@manganiello.euF fabio@manganiello.eu

      #ActivityPub support in #Madblog

      https://blog.fabiomanganiello.com/article/Madblog-federated-blogging-from-markdown

      I am glad to announce that Madblog has now officially joined the #Fediverse family.

      If you want to test it out, search for this URL on your Fediverse client.

      Madblog has already supported #Webmentions for the past couple of weeks, allowing your blog posts to be mentioned by other sites with Webmentions support (WordPress, Lemmy, HackerNews…) and get those mentions directly rendered on your page.

      It now adds ActivityPub support too, using #Pubby, another little Python library that I’ve put together myself (just like Webmentions) as a mean to quickly plug ActivityPub support to any Python Web app.

      Webmentions and Pubby follow similar principles and implement a similar API, and you can easily use them to add federation support to your existing Web applications - a single bind_webmentions or bind_activitypub call to your existing Flask/FastAPI/Tornado application should suffice for most of the cases.

      Madblog may have now become the easiest way to publish a federated blog - and perhaps the only way that doesn’t require a database, everything is based on plain Markdown files.

      If you have a registered domain and a certificate, then hosting your federated blog is now just a matter of:

      mkdir -p ~/madblog/markdown
      cat <<EOF > ~/madblog/markdown/hello-world.md
      # My first post
      
      This is my first post on [Madblog](https://git.fabiomanganiello.com/madblog)!
      EOF
      
      docker run -it \
        -p 8000:8000 \
        -v "$HOME/madblog:/data" \
        quay.io/blacklight/madblog
      

      And Markdown files can be hosted wherever you like - a Git folder, an Obsidian Vault, a Nextcloud Notes installation, a folder on your phone synchronized over SyncThing…

      Federation support is also at a quite advanced state compared to e.g. #WriteFreely. It currently supports:

      • Interactions rendered on the articles: if you like, boost, quote or reply to an article, all interactions are rendered directly at the bottom of the article (interactions with WriteFreely through federated accounts were kind of lost in the void instead)

      • Guestbook support (optional): mentions to the federated Madblog handle that are not in response to articles are now rendered on a separate /guestbook route

      • Email notifications: all interactions can have email notifications

      • Support for quotes, also on Mastodon

      • Support for mentions, just drop a @joe@example.com in your Markdown file and Joe will get a notification

      • Support for hashtag federation

      • Support for split-domain configurations, you can host your blog on blog.example.com but have a Fediverse handle like @blog@example.com. Search by direct post URL on Mastodon will work with both cases

      • Support for custom profile fields, all rendered on Mastodon, with verification support

      • Support for moderation, either through blocklist or allowlist, with support for rules on handles/usernames, URLs, domains or regular expressions

      • A partial (but comprehensive for the provided features) implementation of the Mastodon API

      If you want you can follow both the profiles of my blogs - they are now both federated:

      • My personal blog: @fabio@manganiello.blog (it used to run WriteFreely before, so if you followed it you may need to unfollow it and re-follow it)

      • The #Platypush blog: @blog@platypush.tech

      julian@activitypub.spaceJ This user is from outside of this forum
      julian@activitypub.spaceJ This user is from outside of this forum
      julian@activitypub.space
      wrote sidst redigeret af
      #2

      @fabio@manganiello.eu very interesting to see, nice work on the Python lib!

      Any chance we could have the blog be exposed as a Group actor, announcing posts by the author (a Person)?

      Then it would be compatible with threadiverse implementations as well.

      fabio@manganiello.euF 1 Reply Last reply
      0
      • fabio@manganiello.euF fabio@manganiello.eu

        #ActivityPub support in #Madblog

        https://blog.fabiomanganiello.com/article/Madblog-federated-blogging-from-markdown

        I am glad to announce that Madblog has now officially joined the #Fediverse family.

        If you want to test it out, search for this URL on your Fediverse client.

        Madblog has already supported #Webmentions for the past couple of weeks, allowing your blog posts to be mentioned by other sites with Webmentions support (WordPress, Lemmy, HackerNews…) and get those mentions directly rendered on your page.

        It now adds ActivityPub support too, using #Pubby, another little Python library that I’ve put together myself (just like Webmentions) as a mean to quickly plug ActivityPub support to any Python Web app.

        Webmentions and Pubby follow similar principles and implement a similar API, and you can easily use them to add federation support to your existing Web applications - a single bind_webmentions or bind_activitypub call to your existing Flask/FastAPI/Tornado application should suffice for most of the cases.

        Madblog may have now become the easiest way to publish a federated blog - and perhaps the only way that doesn’t require a database, everything is based on plain Markdown files.

        If you have a registered domain and a certificate, then hosting your federated blog is now just a matter of:

        mkdir -p ~/madblog/markdown
        cat <<EOF > ~/madblog/markdown/hello-world.md
        # My first post
        
        This is my first post on [Madblog](https://git.fabiomanganiello.com/madblog)!
        EOF
        
        docker run -it \
          -p 8000:8000 \
          -v "$HOME/madblog:/data" \
          quay.io/blacklight/madblog
        

        And Markdown files can be hosted wherever you like - a Git folder, an Obsidian Vault, a Nextcloud Notes installation, a folder on your phone synchronized over SyncThing…

        Federation support is also at a quite advanced state compared to e.g. #WriteFreely. It currently supports:

        • Interactions rendered on the articles: if you like, boost, quote or reply to an article, all interactions are rendered directly at the bottom of the article (interactions with WriteFreely through federated accounts were kind of lost in the void instead)

        • Guestbook support (optional): mentions to the federated Madblog handle that are not in response to articles are now rendered on a separate /guestbook route

        • Email notifications: all interactions can have email notifications

        • Support for quotes, also on Mastodon

        • Support for mentions, just drop a @joe@example.com in your Markdown file and Joe will get a notification

        • Support for hashtag federation

        • Support for split-domain configurations, you can host your blog on blog.example.com but have a Fediverse handle like @blog@example.com. Search by direct post URL on Mastodon will work with both cases

        • Support for custom profile fields, all rendered on Mastodon, with verification support

        • Support for moderation, either through blocklist or allowlist, with support for rules on handles/usernames, URLs, domains or regular expressions

        • A partial (but comprehensive for the provided features) implementation of the Mastodon API

        If you want you can follow both the profiles of my blogs - they are now both federated:

        • My personal blog: @fabio@manganiello.blog (it used to run WriteFreely before, so if you followed it you may need to unfollow it and re-follow it)

        • The #Platypush blog: @blog@platypush.tech

        silverpill@mitra.socialS This user is from outside of this forum
        silverpill@mitra.socialS This user is from outside of this forum
        silverpill@mitra.social
        wrote sidst redigeret af
        #3

        @fabio @fabio

        This request returns an HTML page instead of ActivityPub object:

        curl -H 'Accept: application/ld+json; profile="https://www.w3.org/ns/activitystreams"' https://blog.fabiomanganiello.com/article/Madblog-federated-blogging-from-markdown
        
        fabio@manganiello.euF 1 Reply Last reply
        0
        • fabio@manganiello.euF fabio@manganiello.eu

          #ActivityPub support in #Madblog

          https://blog.fabiomanganiello.com/article/Madblog-federated-blogging-from-markdown

          I am glad to announce that Madblog has now officially joined the #Fediverse family.

          If you want to test it out, search for this URL on your Fediverse client.

          Madblog has already supported #Webmentions for the past couple of weeks, allowing your blog posts to be mentioned by other sites with Webmentions support (WordPress, Lemmy, HackerNews…) and get those mentions directly rendered on your page.

          It now adds ActivityPub support too, using #Pubby, another little Python library that I’ve put together myself (just like Webmentions) as a mean to quickly plug ActivityPub support to any Python Web app.

          Webmentions and Pubby follow similar principles and implement a similar API, and you can easily use them to add federation support to your existing Web applications - a single bind_webmentions or bind_activitypub call to your existing Flask/FastAPI/Tornado application should suffice for most of the cases.

          Madblog may have now become the easiest way to publish a federated blog - and perhaps the only way that doesn’t require a database, everything is based on plain Markdown files.

          If you have a registered domain and a certificate, then hosting your federated blog is now just a matter of:

          mkdir -p ~/madblog/markdown
          cat <<EOF > ~/madblog/markdown/hello-world.md
          # My first post
          
          This is my first post on [Madblog](https://git.fabiomanganiello.com/madblog)!
          EOF
          
          docker run -it \
            -p 8000:8000 \
            -v "$HOME/madblog:/data" \
            quay.io/blacklight/madblog
          

          And Markdown files can be hosted wherever you like - a Git folder, an Obsidian Vault, a Nextcloud Notes installation, a folder on your phone synchronized over SyncThing…

          Federation support is also at a quite advanced state compared to e.g. #WriteFreely. It currently supports:

          • Interactions rendered on the articles: if you like, boost, quote or reply to an article, all interactions are rendered directly at the bottom of the article (interactions with WriteFreely through federated accounts were kind of lost in the void instead)

          • Guestbook support (optional): mentions to the federated Madblog handle that are not in response to articles are now rendered on a separate /guestbook route

          • Email notifications: all interactions can have email notifications

          • Support for quotes, also on Mastodon

          • Support for mentions, just drop a @joe@example.com in your Markdown file and Joe will get a notification

          • Support for hashtag federation

          • Support for split-domain configurations, you can host your blog on blog.example.com but have a Fediverse handle like @blog@example.com. Search by direct post URL on Mastodon will work with both cases

          • Support for custom profile fields, all rendered on Mastodon, with verification support

          • Support for moderation, either through blocklist or allowlist, with support for rules on handles/usernames, URLs, domains or regular expressions

          • A partial (but comprehensive for the provided features) implementation of the Mastodon API

          If you want you can follow both the profiles of my blogs - they are now both federated:

          • My personal blog: @fabio@manganiello.blog (it used to run WriteFreely before, so if you followed it you may need to unfollow it and re-follow it)

          • The #Platypush blog: @blog@platypush.tech

          liaizon@social.wake.stL This user is from outside of this forum
          liaizon@social.wake.stL This user is from outside of this forum
          liaizon@social.wake.st
          wrote sidst redigeret af
          #4

          @fabio cc @julian look another QP supporting software for your implementors PR

          wakest@app.wafrn.netW julian@fietkau.socialJ 2 Replies Last reply
          0
          • liaizon@social.wake.stL liaizon@social.wake.st

            @fabio cc @julian look another QP supporting software for your implementors PR

            wakest@app.wafrn.netW This user is from outside of this forum
            wakest@app.wafrn.netW This user is from outside of this forum
            wakest@app.wafrn.net
            wrote sidst redigeret af
            #5

            cc @gabboman not able to follow or look up these new actors in WAFRN

            fabio@manganiello.euF 1 Reply Last reply
            0
            • liaizon@social.wake.stL liaizon@social.wake.st

              @fabio cc @julian look another QP supporting software for your implementors PR

              julian@fietkau.socialJ This user is from outside of this forum
              julian@fietkau.socialJ This user is from outside of this forum
              julian@fietkau.social
              wrote sidst redigeret af
              #6

              @liaizon @fabio Alas, the PR has been merged, so it'll be a long while until I bother Claire again. 🙂

              But I'll keep updating my own list. I see in the code where the interaction policy is declared, but not where individual quotes are authorized. If I quote this post here, let's test if both of us will see the quote.

              https://blog.fabiomanganiello.com/article/Madblog-federated-blogging-from-markdown

              julian@fietkau.socialJ fabio@manganiello.euF 2 Replies Last reply
              0
              • julian@fietkau.socialJ julian@fietkau.social

                @liaizon @fabio Alas, the PR has been merged, so it'll be a long while until I bother Claire again. 🙂

                But I'll keep updating my own list. I see in the code where the interaction policy is declared, but not where individual quotes are authorized. If I quote this post here, let's test if both of us will see the quote.

                https://blog.fabiomanganiello.com/article/Madblog-federated-blogging-from-markdown

                julian@fietkau.socialJ This user is from outside of this forum
                julian@fietkau.socialJ This user is from outside of this forum
                julian@fietkau.social
                wrote sidst redigeret af
                #7

                @liaizon Yeah, works on my server but not yours. 😅

                Hey @fabio, congrats on the ActivityPub support! The quote authorization that my server got from your blog for the above post seems to 404: https://manganiello.blog/ap/actor/quote_authorizations/34bcaca1-62d8-4620-b97d-552008426bce

                1 Reply Last reply
                0
                • fabio@manganiello.euF fabio@manganiello.eu

                  #ActivityPub support in #Madblog

                  https://blog.fabiomanganiello.com/article/Madblog-federated-blogging-from-markdown

                  I am glad to announce that Madblog has now officially joined the #Fediverse family.

                  If you want to test it out, search for this URL on your Fediverse client.

                  Madblog has already supported #Webmentions for the past couple of weeks, allowing your blog posts to be mentioned by other sites with Webmentions support (WordPress, Lemmy, HackerNews…) and get those mentions directly rendered on your page.

                  It now adds ActivityPub support too, using #Pubby, another little Python library that I’ve put together myself (just like Webmentions) as a mean to quickly plug ActivityPub support to any Python Web app.

                  Webmentions and Pubby follow similar principles and implement a similar API, and you can easily use them to add federation support to your existing Web applications - a single bind_webmentions or bind_activitypub call to your existing Flask/FastAPI/Tornado application should suffice for most of the cases.

                  Madblog may have now become the easiest way to publish a federated blog - and perhaps the only way that doesn’t require a database, everything is based on plain Markdown files.

                  If you have a registered domain and a certificate, then hosting your federated blog is now just a matter of:

                  mkdir -p ~/madblog/markdown
                  cat <<EOF > ~/madblog/markdown/hello-world.md
                  # My first post
                  
                  This is my first post on [Madblog](https://git.fabiomanganiello.com/madblog)!
                  EOF
                  
                  docker run -it \
                    -p 8000:8000 \
                    -v "$HOME/madblog:/data" \
                    quay.io/blacklight/madblog
                  

                  And Markdown files can be hosted wherever you like - a Git folder, an Obsidian Vault, a Nextcloud Notes installation, a folder on your phone synchronized over SyncThing…

                  Federation support is also at a quite advanced state compared to e.g. #WriteFreely. It currently supports:

                  • Interactions rendered on the articles: if you like, boost, quote or reply to an article, all interactions are rendered directly at the bottom of the article (interactions with WriteFreely through federated accounts were kind of lost in the void instead)

                  • Guestbook support (optional): mentions to the federated Madblog handle that are not in response to articles are now rendered on a separate /guestbook route

                  • Email notifications: all interactions can have email notifications

                  • Support for quotes, also on Mastodon

                  • Support for mentions, just drop a @joe@example.com in your Markdown file and Joe will get a notification

                  • Support for hashtag federation

                  • Support for split-domain configurations, you can host your blog on blog.example.com but have a Fediverse handle like @blog@example.com. Search by direct post URL on Mastodon will work with both cases

                  • Support for custom profile fields, all rendered on Mastodon, with verification support

                  • Support for moderation, either through blocklist or allowlist, with support for rules on handles/usernames, URLs, domains or regular expressions

                  • A partial (but comprehensive for the provided features) implementation of the Mastodon API

                  If you want you can follow both the profiles of my blogs - they are now both federated:

                  • My personal blog: @fabio@manganiello.blog (it used to run WriteFreely before, so if you followed it you may need to unfollow it and re-follow it)

                  • The #Platypush blog: @blog@platypush.tech

                  shellsharks@shellsharks.socialS This user is from outside of this forum
                  shellsharks@shellsharks.socialS This user is from outside of this forum
                  shellsharks@shellsharks.social
                  wrote sidst redigeret af
                  #8

                  @fabio@manganiello.eu @fabio@manganiello.blog @blog This looks really cool. I’ve always been kinda interested in federating my blog, or having my fedi account be more closely associated with my main blog domain. This looks like a path to doing something in that realm. Out of curiosity, would it be possible to stand something like this up and migrate followers from an existing fedi account to it? Thanks!

                  fabio@manganiello.euF 1 Reply Last reply
                  0
                  • wakest@app.wafrn.netW wakest@app.wafrn.net

                    cc @gabboman not able to follow or look up these new actors in WAFRN

                    fabio@manganiello.euF This user is from outside of this forum
                    fabio@manganiello.euF This user is from outside of this forum
                    fabio@manganiello.eu
                    wrote sidst redigeret af
                    #9

                    @wakest@app.wafrn.net @gabboman@gabboman.xyz @liaizon@wake.st the FQN is @fabio@manganiello.blog in my case, not @fabio@blog.fabiomanganiello.com (I made a split-domain configuration).

                    The actor URL is https://manganiello.blog/ap/actor

                    gabboman@gabboman.xyzG 1 Reply Last reply
                    0
                    • fabio@manganiello.euF fabio@manganiello.eu

                      @wakest@app.wafrn.net @gabboman@gabboman.xyz @liaizon@wake.st the FQN is @fabio@manganiello.blog in my case, not @fabio@blog.fabiomanganiello.com (I made a split-domain configuration).

                      The actor URL is https://manganiello.blog/ap/actor

                      gabboman@gabboman.xyzG This user is from outside of this forum
                      gabboman@gabboman.xyzG This user is from outside of this forum
                      gabboman@gabboman.xyz
                      wrote sidst redigeret af
                      #10

                      will investigate, thanks

                      1 Reply Last reply
                      0
                      • julian@fietkau.socialJ julian@fietkau.social

                        @liaizon @fabio Alas, the PR has been merged, so it'll be a long while until I bother Claire again. 🙂

                        But I'll keep updating my own list. I see in the code where the interaction policy is declared, but not where individual quotes are authorized. If I quote this post here, let's test if both of us will see the quote.

                        https://blog.fabiomanganiello.com/article/Madblog-federated-blogging-from-markdown

                        fabio@manganiello.euF This user is from outside of this forum
                        fabio@manganiello.euF This user is from outside of this forum
                        fabio@manganiello.eu
                        wrote sidst redigeret af
                        #11

                        @julian@fietkau.social @liaizon@wake.st I got the quote https://blog.fabiomanganiello.com/article/Madblog-federated-blogging-from-markdown 🙂

                        julian@fietkau.socialJ 1 Reply Last reply
                        0
                        • shellsharks@shellsharks.socialS shellsharks@shellsharks.social

                          @fabio@manganiello.eu @fabio@manganiello.blog @blog This looks really cool. I’ve always been kinda interested in federating my blog, or having my fedi account be more closely associated with my main blog domain. This looks like a path to doing something in that realm. Out of curiosity, would it be possible to stand something like this up and migrate followers from an existing fedi account to it? Thanks!

                          fabio@manganiello.euF This user is from outside of this forum
                          fabio@manganiello.euF This user is from outside of this forum
                          fabio@manganiello.eu
                          wrote sidst redigeret af
                          #12

                          @shellsharks@shellsharks.social this is still WIP https://git.platypush.tech/blacklight/madblog/issues/20

                          It requires properly implementing the movedTo notifications both on the receiving and sending side, but the implementation details (especially for the asynchronous migration jobs) require me to dig a bit deeper in Mastodon’s implementation.

                          1 Reply Last reply
                          0
                          • fabio@manganiello.euF fabio@manganiello.eu

                            @julian@fietkau.social @liaizon@wake.st I got the quote https://blog.fabiomanganiello.com/article/Madblog-federated-blogging-from-markdown 🙂

                            julian@fietkau.socialJ This user is from outside of this forum
                            julian@fietkau.socialJ This user is from outside of this forum
                            julian@fietkau.social
                            wrote sidst redigeret af
                            #13

                            @fabio Right, and my server seems to have gotten the corresponding `Accept`. 👍 But if you look at https://social.wake.st/@liaizon/116205306320048221 and scroll down, you see that @liaizon can't see the quote in my reply (and neither can people on any other server looking at this thread). This is because the `QuoteAuthorization` needs to be publicly resolvable: https://fediverse.codeberg.page/fep/fep/044f/#verifying-third-party-quote-posts

                            fabio@manganiello.euF 1 Reply Last reply
                            0
                            • silverpill@mitra.socialS silverpill@mitra.social

                              @fabio @fabio

                              This request returns an HTML page instead of ActivityPub object:

                              curl -H 'Accept: application/ld+json; profile="https://www.w3.org/ns/activitystreams"' https://blog.fabiomanganiello.com/article/Madblog-federated-blogging-from-markdown
                              
                              fabio@manganiello.euF This user is from outside of this forum
                              fabio@manganiello.euF This user is from outside of this forum
                              fabio@manganiello.eu
                              wrote sidst redigeret af
                              #14

                              @silverpill@mitra.social @fabio@manganiello.blog good catch! https://git.platypush.tech/blacklight/madblog/commit/9024ba9c2dd1b4ad77e50892189c6a155eb199ce

                              1 Reply Last reply
                              0
                              • julian@fietkau.socialJ julian@fietkau.social

                                @fabio Right, and my server seems to have gotten the corresponding `Accept`. 👍 But if you look at https://social.wake.st/@liaizon/116205306320048221 and scroll down, you see that @liaizon can't see the quote in my reply (and neither can people on any other server looking at this thread). This is because the `QuoteAuthorization` needs to be publicly resolvable: https://fediverse.codeberg.page/fep/fep/044f/#verifying-third-party-quote-posts

                                fabio@manganiello.euF This user is from outside of this forum
                                fabio@manganiello.euF This user is from outside of this forum
                                fabio@manganiello.eu
                                wrote sidst redigeret af
                                #15

                                @julian@fietkau.social @liaizon@wake.st good catch, that was actually a bug in the quote_authorizations URL routing on Pubby’s side - I’ve just pushed a fix for it https://git.platypush.tech/blacklight/pubby/commit/2b37e604defb8dbd9580af890c5854c2f9cd9dfd

                                julian@fietkau.socialJ 1 Reply Last reply
                                0
                                • fabio@manganiello.euF fabio@manganiello.eu

                                  @julian@fietkau.social @liaizon@wake.st good catch, that was actually a bug in the quote_authorizations URL routing on Pubby’s side - I’ve just pushed a fix for it https://git.platypush.tech/blacklight/pubby/commit/2b37e604defb8dbd9580af890c5854c2f9cd9dfd

                                  julian@fietkau.socialJ This user is from outside of this forum
                                  julian@fietkau.socialJ This user is from outside of this forum
                                  julian@fietkau.social
                                  wrote sidst redigeret af
                                  #16

                                  @fabio @liaizon Oh excellent! Please let me know when the new version is live on your blog and I'll test again. 🙂

                                  1 Reply Last reply
                                  0
                                  • julian@activitypub.spaceJ julian@activitypub.space

                                    @fabio@manganiello.eu very interesting to see, nice work on the Python lib!

                                    Any chance we could have the blog be exposed as a Group actor, announcing posts by the author (a Person)?

                                    Then it would be compatible with threadiverse implementations as well.

                                    fabio@manganiello.euF This user is from outside of this forum
                                    fabio@manganiello.euF This user is from outside of this forum
                                    fabio@manganiello.eu
                                    wrote sidst redigeret af
                                    #17

                                    @julian@activitypub.space @general@activitypub.space that would be very cool, but from my understanding Person vs. Group actor are mutually exclusive, so I can’t have both on the same handle right?

                                    If that’s the case I may have to rethink a bit of the current single-user approach - I guess that I’ll need a @user@example.com Person actor (or optionally multiple of them) and a @blog@example.com Group actor. Which AFAIK is similar to what #WriteFreely does, but it requires me to rethink a bit of the general design.

                                    I’ve braindumped my thoughts here for now https://git.platypush.tech/blacklight/madblog/issues/21, thanks for the feedback!

                                    julian@activitypub.spaceJ 1 Reply Last reply
                                    0
                                    • fabio@manganiello.euF fabio@manganiello.eu

                                      @julian@activitypub.space @general@activitypub.space that would be very cool, but from my understanding Person vs. Group actor are mutually exclusive, so I can’t have both on the same handle right?

                                      If that’s the case I may have to rethink a bit of the current single-user approach - I guess that I’ll need a @user@example.com Person actor (or optionally multiple of them) and a @blog@example.com Group actor. Which AFAIK is similar to what #WriteFreely does, but it requires me to rethink a bit of the general design.

                                      I’ve braindumped my thoughts here for now https://git.platypush.tech/blacklight/madblog/issues/21, thanks for the feedback!

                                      julian@activitypub.spaceJ This user is from outside of this forum
                                      julian@activitypub.spaceJ This user is from outside of this forum
                                      julian@activitypub.space
                                      wrote sidst redigeret af
                                      #18

                                      @fabio@manganiello.eu

                                      > from my understanding Person vs. Group actor are mutually exclusive, so I can’t have both on the same handle right?

                                      Correct, while you can have webfinger resolve both a group actor and person actor from a single handle, that gets messy quickly because how the receiving end handles this is not specified. Mastodon for example only takes the first entry, which crucially means if a community and user have the same handle, then one of the actors is inaccessible to Mastodon.

                                      I don’t think you need to introduce breaking changes (I hope!), the threadiverse component can be bolted on to existing functionality. In fact, I’d recommend maintaining the existing Person actor so that microblog compatibility is not impacted. It’s not an either-or approach, NodeBB does handle both types effectively.

                                      Here are some quick answers to the open questions:

                                      Should the Person actor have its own inbox?
                                      Yes, the Person actor and the Group actor are two separate identities (as far as anybody outside of your instance is concerned.)

                                      Outbox representation — Should the Group’s outbox contain the Announce
                                      activities, the inner Create activities, or both?

                                      This is optional (at least for NodeBB). If you investigate NodeBB’s actors, all of their outboxes return an empty OrderedCollection because I simply haven’t gotten around to it yet, and I don’t know many implementations that read it. Federation works fine without it, but it would make sense to follow Lemmy or Piefed’s lead here.

                                      Backwards compatibility — Should Madblog support a “hybrid” mode that sends both Create (for Mastodon) and Announce (for threadiverse)?

                                      Mastodon will correctly de-duplicate the object so sending both Create(Note/Article) and Announce(Create(Note/Article)) is fine. The former serves non-threadiverse followers, and the latter ensures threadiverse syncronization capability.

                                      NodeBB actually sends three <img class=“not-responsive emoji” src=“https://activitypub.space/assets/plugins/nodebb-plugin-emoji/emoji/android/1f648.png?v=42a4d91a3c1” title=“🙈” />: Create(Note/Article), Announce(Create(Note/Article)), and Announce(Note/Article). That last one is not needed.

                                      Separate keypair for the Person actor? If the Person actor eventually needs to sign requests (e.g. for inbox delivery), it would need its own keypair.

                                      I believe so. It was trivial for me to just generate keypairs for everybody, so I don’t know off-hand whether things break if your Person actor doesn’t have one. It might not resolve in some implementations?

                                      1 Reply Last reply
                                      1
                                      0
                                      • nodebb@fosstodon.orgN nodebb@fosstodon.org shared this topic
                                      Svar
                                      • Svar som emne
                                      Login for at svare
                                      • Ældste til nyeste
                                      • Nyeste til ældste
                                      • Most Votes


                                      • Log ind

                                      • Har du ikke en konto? Tilmeld

                                      • Login or register to search.
                                      Powered by NodeBB Contributors
                                      Graciously hosted by data.coop
                                      • First post
                                        Last post
                                      0
                                      • Hjem
                                      • Seneste
                                      • Etiketter
                                      • Populære
                                      • Verden
                                      • Bruger
                                      • Grupper