The lack of keyboard interface on Lemmy is killing me, but really what I want is a good client in Emacs. However, it’s beyond my Elisp to design and start such a project, but I could probably help. Anyone on it?
This might work -https://codeberg.org/martianh/mastodon.el
Any emacs interface would be great. Perhaps someone who is familiar with elfeed could hook into that?
FWIW I’m reading lemmy RSS feed with elfeed (hope this gets through - popping my lemmy cherry here)
can you see comments that way? you just subscribe to communities i imagine?
Sorry for delayed response, just getting used to lemmy …
No, I don’t see comments - if I’m interested in the headline, I press ‘b’ to pop up the full item in my browser.
Yes, I subscribe to communities like this:
(use-package elfeed :bind (:map elfeed-search-mode-map ("s" . elfeed-search-set-filter) ("S" . elfeed-search-live-filter)) :config (setf elfeed-sort-order 'ascending)) ;; elfeed-dashboard is a nice add-on (use-package elfeed-dashboard :ensure t :bind ("C-x w" . 'elfeed-dashboard) :config (setq elfeed-dashboard-file "~/.config/emacs/elfeed-dashboard.org") ;; update feed counts on elfeed-quit (advice-add 'elfeed-search-quit-window :after #'elfeed-dashboard-update-links)) (setq elfeed-feeds '( ("http://xkcd.com/rss.xml" comic xkcd) ("http://rss.slashdot.org/Slashdot/slashdotMain" slashdot) ("https://www.reddit.com/r/emacs/new/.rss?sort=new" reddit emacs) ("https://www.reddit.com/r/linux/new/.rss?sort=new" reddit linux) ("https://rss.beehiiv.com/feeds/iiTciQgHPG.xml" fossweekly linux) ("https://distrowatch.com/news/dw.xml" news distrowatch linux) ("http://oglaf.com/feeds/rss/" comic oglaf) ("https://www.reddit.com/r/linuxquestions/new/.rss?sort=new" reddit linuxquestions) ("https://www.reddit.com/r/fedora/new/.rss?sort=new" reddit fedora) ("https://feeds.bbci.co.uk/news/rss.xml" news bbc) ("https://www.rt.com/rss/" news rt) ("https://hnrss.org/frontpage?count=100" news hacker) ("https://www.reddit.com/r/swaywm/new/.rss?sort=new" reddit sway) ("https://www.reddit.com/r/i3wm/new/.rss?sort=new" reddit i3wm) ("https://www.reddit.com/r/nordvpn/new/.rss?sort=new" reddit nordvpn) ("https://lwn.net/headlines/rss" news LWN.net) ("https://lobste.rs/t/linux.rss" news lobsterlinux linux) ("https://www.emacswiki.org/emacs?action=rss" news EmacsWiki emacs) ("https://feeds.arstechnica.com/arstechnica/index" news arstechnica) ("https://www.engadget.com/rss.xml" news engadget) ("https://lemmy.ml/feeds/c/emacs.xml?sort=Active" emacs lemmy) ("https://lemmy.ml/feeds/c/linux.xml?sort=New" linux lemmy) ("https://lemmy.ml/feeds/c/swaywm.xml?sort=New" sway lemmy)))
made some progress. mainly spent time working on getting the sorting types and listing types going, so you can cycle between them on the go. v basic display of post details in byline, etc., but that can easily be spruced up by pulling code from mastodon.el. + markdown rendered posts/comments, uwu!
https://codeberg.org/martianh/lem. the readme has a rough todo list.
logging in and loading lem as package is still pretty rough, or kinda broken. but i’ll get it sorted soon.
still gotta build a comments tree also, that’s a biggie.
I have quite a few endpoints working now, each mostly just with the basic options implemented, and its easy to add endpoints with a handy macro i wrote. There are still quite a few quirks with lemmy itself that i’m struggling to work out, like how to search for my second account on another instance and actually have it appear in results. I might ask in a support room. The type-heavy rust and ts code is super foreign to me, it’s also very large. Moreover, the various documentation links, another one is https://join-lemmy.org/api/classes/LemmyHttp.html, sometime contradict each other. Maybe having the basics down I cd start on some necrco diy interface. [posted and edited via lem.el]
I think this would be the best way to go.
Myself, I’d love to be able to interact with Lemmy through Gnus, but it would be great to have a general emacs API for flexibility so you can choose the front-end.
It looks as though the api for a client is defined in api_common.
thanks for the link. so https://github.com/LemmyNet/lemmy/blob/main/src/api_routes_http.rs shows the paths and params, i tried them in a rest client and it’s no too hard to follow.
the mastodon.el http layer isn’t great, but it could be v quickly adapted for this case.
Thanks, yes that’s a more useful source than my one.
https://codeberg.org/martianh/lem has some basics, functions returning plain JSON. i didn’t do any auth, but if its oauth and so similar to mastodon.el, we cd also just move its auth code into the fedi.el library. and fedi-http.el is already set up to handle auth tokens.
discovering lemmy’s query parameters is quite a pain for me, as i don’t know rust.
Help the world and start learning Elisp while writing a Lemmy client.