[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Atom backend for Gnus (nnatom)

From: Daniel Semyonov
Subject: Atom backend for Gnus (nnatom)
Date: Wed, 31 May 2023 10:48:36 +0300
User-agent: Gnus/5.13 (Gnus v5.13)


About a year ago I wrote an Atom backend for Gnus based on the "Back End
Interface" section of the Gnus manual, and I've been working on it
on-and-off since then.
I have been reluctant to share it since unfortunately I don't have a
good understanding of Gnus' internals (and I don't have the time or
motivation to get a good understanding of it), and I ran into some
issues which I don't know how to fix.

That said, once those issues are worked around it seems to work very
well (I have been using it regularly for almost a year at this point,
without any further issues).

If there is anyone is interested in this, I'd appreciate help with the
remaining major issues; the repository for the backend can be found at:
I have already assigned copyright to the FSF for Emacs a few months ago.

Some more details about the major issues:
- Group methods of new groups are usually corrupted, being replaced
  completely by the string "nnatom:<url or file of some nnatom group>".
  This can be worked around in the following way:
  1. Open the server containing the group and subscribe to it without
     opening the group itself.
  2. Press 'M-e' (gnus-group-edit-group-method) while point is on the
     new group in the *Group* buffer.
  3. Either write a new Gnus method or replace the URL with the correct
     one and confirm the change.
  This only needs to be done once for every group (if it is needed at
  all).  I've tried debugging this issue many times; I assume at this
  point that I'm missing something pretty obvious, but I can't figure it
  out unfortunately.
- Not plugged in at all to Gnus' inheritance system.
  I tried implementing this around half a year ago by following the
  manual and looking at other backends, but I ran into very weird issues
  (which I can't really remember the details of).
  Currently the function which reads and parses feeds,
  'nnatom--read-feed', uses simple subroutines to actually read the
  different parts of the feed.  If nnatom is plugged into Gnus'
  inheritance system, it should be very simple to modify
  'nnatom--read-feed' to run subroutines stored in variables, which in
  turn would make it very easy IMO to create new backend for read-only
  feeds which inherits from nnatom.  I made a POC RSS feed backend using
  this method a few days ago in less than an hour.

A few other minor issues are listed in the README.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]