From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Daniel Semyonov Newsgroups: gmane.emacs.devel Subject: Atom backend for Gnus (nnatom) Date: Wed, 31 May 2023 10:48:36 +0300 Message-ID: <871qix9c17.fsf@dsemy.com> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="31989"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Wed May 31 09:51:30 2023 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1q4GcE-00084e-FL for ged-emacs-devel@m.gmane-mx.org; Wed, 31 May 2023 09:51:30 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1q4GbU-0001sb-BU; Wed, 31 May 2023 03:50:44 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q4GbB-0001lg-FU for emacs-devel@gnu.org; Wed, 31 May 2023 03:50:26 -0400 Original-Received: from dsemy.com ([46.23.89.208]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q4Gb9-0002HV-Dy for emacs-devel@gnu.org; Wed, 31 May 2023 03:50:25 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; s=dkim; bh=6Z5Ft2SRj05iV NOSONN9chQlazPF41EkkvtevZsVR3Q=; h=date:subject:to:from; d=dsemy.com; b=XP/UDI8ddFegtcpzryY8lNv6SlR0EIXJ8P2ZYzf8gHp2cHL7wrJxv2eAeyI+WxwjtTu8 fqtQM+uRMWcJcMMwwTmtZ80RsEBT0ajAuW4iUP8+cfObKdGId5826UevSPzT0Og5E99QxM /ngmc/5EY7sperOznC+7lmeppG60YBI44lR3Dewlfo6zyuFKMRlrEU69NaKHfKVn2dfPEA 6DDQ+UZZgL1zOWAlNLbmsvtRMHKaCj4FVNZaCCNGRmlaqpBsTxlxOijuMkpgzyYiedEZYU smworBESqWJI2MI8cTQpUgddWBN+luSZwn7g96xgPZfqbyr/LeZ/I7EJO3gxcC5w== Original-Received: from coldharbour.home.arpa (bzq-79-179-230-143.red.bezeqint.net [79.179.230.143]) by dsemy.com (OpenSMTPD) with ESMTPSA id 2b16f7eb (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO) for ; Wed, 31 May 2023 09:50:16 +0200 (CEST) Original-Received: from localhost (coldharbour.home.arpa [local]) by coldharbour.home.arpa (OpenSMTPD) with ESMTPA id 6eaf4b87 for ; Wed, 31 May 2023 07:48:36 +0000 (UTC) Received-SPF: pass client-ip=46.23.89.208; envelope-from=daniel@dsemy.com; helo=dsemy.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, UNPARSEABLE_RELAY=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:306433 Archived-At: 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:". 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