Flarum Syndication

Brings RSS and Atom feeds to Flarum.
 

Installation

Run this command with SSH in your Flarum root folder, assuming you're using Flarum beta 8 or a compatible version:

composer require amaurycarrade/flarum-ext-syndication

 

Usage

This extension adds the following feeds to Flarum:

  • /atom: feed with the last discussions with activity (the /all page as an Atom feed);
  • /adom/d: feed with the newly created discussions in the forum;
  • /atom/t/tag: feed with the last discussions in the given tag (the /t/tag page as an Atom feed);
  • /atom/t/tag/d: feed with the newly created discussions in the given tag;
  • /atom/d/21-discussion-slug: feed with the recent posts in the given discussion.

You can replace atom by rss in the URLs above to get RSS feeds instead. The tags-related feeds are only available if the tags extension is installed and enabled (obviously).

Feeds are linked in the pages for autodiscovery and listing in the browser (at least in Firefox, as Chrome, Vivaldi, and a lot of others doesn't support syndication feeds out of the box). This said, they are not dynamically updated as the page change (except when fully reloaded), becuse of this Firefox bug. If a workaround is found, they will be.

The extension is available in English and French. You can submit translations here or on GitHub (there are very few sentences).
 

Planned later

  • RSS tokens, so the feeds are not linked to the current session (better to read feeds for private forums on external readers).
  • RSS/Atom feeds for users activity.
  • Private RSS/Atom feed with notifications.
  • The TODOs in the source code.
     

Links

Thanks to @deseven for funding this!
This work is published under the CeCILL-B license in French law.

5 days later

Well, here my finding after installed ?

  • Tested, tag is working..
  • We can switch between atom or RSS. Brilliant idea from @deseven and implement by @AmauryPi for just adding/typing "atom/rss" between, on normal flarum link
  • I think, flarum should protect this "atom/rss" name directory for this feed features. @Davis @Toby
  • Damn, the individual posts discussion-slug perfectly working. And I think only Flarum has this potential ability comparing other forum engine, I ever used since 2000!!
  • For recent replied, it just pointing in to slug-discussion RSS. This is good for user/visitor with slow connection. Or, implementing other 3rd party features such fetching data, since resulting in XML format.

Hopefully, there is admin panel which control the size/limit of fetched RSS characters, attachment, image detection view etc..

10 months later
a month later

GameBurrow Are you sure the extension is correctly installed? It returns a 404 (also for /atom); of course the « not found » error page of Flarum is not a valid RSS feed.

    AmauryPi Ah I disabled it after it wasn't working, that's why you got 404. Can't really see how I can install it wrongly, since it's installed via composer.

    Enabled it again.

    19 days later

    This extension is really nice and useful, thanks for developed it! However and sadly, I can't use it as I would like because with the /atom feed:
    - The GUID (id) are not unique, they match the discussion URL. So RSS readers don't see replies in a same discussion thread as they seem to be updates of existing entries and not full new entries. A solution would be to use a hash from the publication date + author for example.
    - Only the last reply of a discussion is in the feed. So if two or more replies occur between two feed fetching, only the last one is available. Is it possible to store every replies in the feed, or at least those from the week or the day?

    Also, I'm wondering if, by any chance, it would be possible to have primary tags somewhere in the entries?

    Thank you!

    6 months later

    how to change this ? --> Derniers messages dans cette discussion

    2 months later

    Broke on installation, producing the following error....

    Updating dependencies (including require-dev)
    Your requirements could not be resolved to an installable set of packages.

    Problem 1
    - Installation request for amaurycarrade/flarum-ext-syndication 0.1.5 -> satisfiable by amaurycarrade/flarum-ext-syndication[v0.1.5].
    - amaurycarrade/flarum-ext-syndication v0.1.5 requires flarum/core 0.1.0-beta.6 -> satisfiable by flarum/core[0.1.x-dev, v0.1.0-beta.6, v0.1.0-beta.7, v0.1.0-beta.7.1] but these conflict with your requirements or minimum-stability.

    Installation failed, deleting ./composer.json.

      4 months later
      23 days later
      6 days later

      @jordanjay29 At the moment, my flarum website is only in maintenance mode so I so not expect to actively develop any of the extensions I updated. I feel that amount of inactive forks of forks of forks is already too high in Flarum community and publishing my forks would only make this issue worse.

      Having a community GitHub group for important extensions with larger pool of developers would be nice. I imagine something like Friends of Flarum but with open membership policy. That would at least solve the problem of having to replace the extension repository every few months. Unfortunately, since the Flarum community is so small, some extensions might not have a maintainer for a while. The repositories would probably need to carry a disclaimer like “This extension is occasionally maintained, if it seems like it is abandoned and you want to contribute, please request a membership of our group by pinging @OurFlarumGroup/admins in your pull requests.” The group would need to be reasonably big so there were always someone available to add new members and it would be also nice if there were volunteers who could help review the pull requests. Not sure the Flarum community has enough resources for something like this.

        jtojnar the thing we worry about most before even considering adding any new members (especially in ReFlar) is if people can live up to the standards of not only updating, but creating quality extensions altogether. A problem that I notice the most with new or currently active/returning 3rd party extension developers is that everyone seems to follow a different coding style and have different opinions of how they want an extension to function. Being part of a team is not only about being a team player, but the very idea of our minds, opinions, goals, and philosophies being in sync. Although it may sound easy to do, it actually isn't as I've experienced this first-hand through my time in this community and being the co-owner of ReFlar. We would rather form a group of well-known developers that get along well enough to bring you constantly updated (to match the breaking changes in Flarum core development) and bring you the best quality and support we can possibly provide 🙂

        If we let any willy-nilly person join, there is guaranteed to be conflicts and things would get messy really quick, Plus, you wouldn't trust a stranger in the street to look after your car and home while you were working, would ya? Who knows what traps and intentions that person may have, let alone the fact that you never met them before. It's not always about numbers, just the amazing minds and people that can get the job done and ultimately work in harmony 😉

        All-in-all, being part of a team is not just being another number within the group, it's a privilege and ongoing trust to where you don't have to wake up one day and one of your new members you just added completely cleaned house and deleted all of your repositories ⚰️

        a month later

        jtojnar Friends of Flarum but with open membership policy

        Friends of flarum doesn't even have a membership policy yet. This means anyone can join. Joining something like that means pushing code.

        22 days later

        Fatal error: Interface 'Flarum\Http\Controller\ControllerInterface' not found in /vendor/amaurycarrade/flarum-ext-syndication/src/Controller/AbstractFeedController.php on line 57