skeeto / elfeed

An Emacs web feeds client
The Unlicense
1.52k stars 120 forks source link

Can we support `thr:in-reply-to` tags? #522

Closed ackerleytng closed 4 months ago

ackerleytng commented 4 months ago

I'm trying to use elfeed to read the atom feeds of a kernel patch series, as in https://lore.kernel.org/all/20240507180729.3975856-1-pbonzini@redhat.com/t.atom.

It would be nice to have the entries sorted in a tree view.

The data is available in the feed as Atom's threading extensions (https://datatracker.ietf.org/doc/rfc4685/).

Are you open to parsing this thr:in-reply-to tag?

ackerleytng commented 4 months ago

This can be solved with a custom parser. Credits go to the elfeed-goodies package for this example:

(defun elfeed-threaded--parse-in-reply-to (_type entry db-entry)
  "Take TYPE (ignored), ENTRY, DB-ENTRY, parse thr:in-reply-to and store it in DB-ENTRY."
  (let ((in-reply-to (xml-query* (in-reply-to :ref) entry)))
    (setf (elfeed-meta db-entry :in-reply-to) in-reply-to)))
(add-hook 'elfeed-new-entry-parse-hook #'elfeed-threaded--parse-in-reply-to)