all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* Atom backend for Gnus (nnatom)
@ 2023-05-31  7:48 Daniel Semyonov
  2023-05-31 14:08 ` Thomas Fitzsimmons
  2023-06-13  7:07 ` Daniel Semyonov
  0 siblings, 2 replies; 20+ messages in thread
From: Daniel Semyonov @ 2023-05-31  7:48 UTC (permalink / raw)
  To: emacs-devel

Hi,

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:
https://git.sr.ht/~dsemy/nnatom
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.

Regards,
Daniel



^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2023-06-19 16:52 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-05-31  7:48 Atom backend for Gnus (nnatom) Daniel Semyonov
2023-05-31 14:08 ` Thomas Fitzsimmons
2023-05-31 15:45   ` Daniel Semyonov
2023-05-31 16:21     ` Thomas Fitzsimmons
2023-05-31 16:51       ` Daniel Semyonov
2023-05-31 18:33         ` Thomas Fitzsimmons
2023-05-31 18:50           ` Daniel Semyonov
2023-05-31 19:37             ` Thomas Fitzsimmons
2023-05-31 21:02               ` Daniel Semyonov
2023-05-31 21:11                 ` Thomas Fitzsimmons
2023-06-13  7:07 ` Daniel Semyonov
2023-06-13 11:22   ` Eli Zaretskii
2023-06-13 11:43     ` Arsen Arsenović
2023-06-13 13:34     ` Daniel Semyonov
2023-06-13 14:20   ` Thomas Fitzsimmons
2023-06-13 17:07     ` Eric Abrahamsen
2023-06-15  8:44       ` Eli Zaretskii
2023-06-18 15:53         ` Eric Abrahamsen
2023-06-19 11:11           ` Daniel Semyonov
2023-06-19 16:52             ` Eli Zaretskii

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.