@monnier I know of one Mastodon client that makes an effort to open Mastodon URLs inside the client instead of sending you to a webbrowser: #MastodonEl which runs inside #Emacs (available on MELPA). It uses some heuristics (i.e. a bunch of regexps) to decide whether to try webfinger on the server, and if it turns out it is a Mastodon server, will open the post in a new mastodon.el buffer, otherwise it calls browse-url.
@gargle @admin I think the hashtag stops at the period, so the mastodon.el developer uses #mastodonEl.
These commands I wrote make following @j824h_arXiv_math_AT and other similar accounts even more useful (specially, of course, when using #MastodonEl, so that you already have the link in #Emacs —the commands also work on the hashtags that those accounts create for each paper; which I've never seen a human being use, but still).
@glitzersachen @publicvoit i could possibly help out. using what i learned with mastodon.el, i've working on lem.el, and i deliberately built a separate api layer (lem-api.el) that could be used to build any frontend, as lemmy/emacs-ers were suggesting about 10 different frontends that they wanted. perhaps it wouldn't be too hard to extract out a similar layer from mastodon.el, as lem-api.el sits atop what is basically mastodon.el's http layer. (wouldn't be too hard -- famous last words, but hey.) the problem is that i don't (know how to) use gnus.
edit: i guess i'd only bother to do that if someone was actually gonna build a gnus backend with the result, and if it would actually save them work by providing an API interface.
#emacs #mastodonEl i can't even remember the names of half the functions i implemented. hihi.
with the recent reddit turmoil, i got to wondering if we couldn't break out some of the layers of #mastodonEl to be a general fedi client library, then add different layers atop it for using different front ends or making new ones. i made a repo, fedi.el, which for now just has the http functions from masto, but cd also have the auth/client files too: https://codeberg.org/martianh/fedi.el (could be simplified/cleand up too, i don't know if everything in there is needed) and i made a v v small 10-minute start on lemmy: https://codeberg.org/martianh/lem.
the idea being that you cd make a library for a given fedi server (here lemmy), that returns plain JSON for all the endpoints, then people can code their desired plug-ins or frontends. for now i ony wrote a few endpoints, as extricating them out of the lemmy rust code is pretty slow without docs. also lemmy relies heavily on query params for things i would think should be path params, but oh well.
if there's a better http layer to build fedi.el on, i'm open to it. the mastodon.el one is far from perfect.
i'm also not much of a link-aggregate site user, so maybe others are more keen on this than i am.
i was playing around with using EIEIO and jeison.el for mastodon.el, but ran into this problem: how to have a slot on an object that contains a list of objects: https://emacs.stackexchange.com/questions/77383/hold-a-list-of-objects-in-the-slot-of-another-object. perhaps someone around here knows EIEIO or CLOS or just OOP and has an idea?
i was also struggling to have a slot hold an object of the same class as itself (i.e. for mastodon, a boost is a status with a 'reblog' field containing the original status).
by contrast, a status object can have an account object in a slot, no problems.
#clos #lisp #mastodonEl #emacs
The wrong branch was accidentally pushed to MELPA for a time. It is fixed now. So if you encounter any issues, please update to the latest version on MELPA. Apologies.
#emacs #mastodonEl merged develop into main. added reporting to moderators, propertizing of URLs in compose buffer, and some other minor improvements and clean-ups.
coming up in develop branch: visual cues for posts that are linked in thread branches, and having proportional fonts in the compose buffer.
@xenodium thanks for this, i had wondered about such a thing before, with #mastodonEl's long lists of commands, but never took the time to discover how to do it.
i also added bindings for commands to my version, which you can fetch with (help-key-description (vector (car (rassoc your-command-symbol your-mode-map))) nil), or similar, depending on how your mode-map branches or doesn't.
i had also wondered about how to programmatically generate the emacs-discover commands code, which always ends up out of date, but that's for another day.
@maxi https://github.com/mattn/vim-mastodon? but obvs i think you should just use #mastodonEl! hehe.
@Mina some are using mastodon.el yes. i follow the #mastodonEl tag to keep up with what people say about it (i'm the maintainer). there might be a few screenshots in posts with that tag also. i enjoy using it, but i'm obviously biased. some EXWM users rely on it entirely.
slowing adding report to admin functionality. it's just not so easy to work on without reporting people. so gotta write some tests and other shenanigans.
@khinsen @ntnsndr there have been some whispers about trying to use gnus style rankings (which receive high praise by users) for feeds in #mastodonEl. but i never used gnus, so i'm not the one to programme it.
should replies default to 'unlisted' visibility?
#emacs #mastodonEl man it would be nice if i could work out how to get async completion of mentions/tags going. as it is, i can't see how a completion backend can involve an async http request...
having a wild time of geekery spontaneously, blindly, adding multiple account support. it works in preliminary way, but it's a mess, like frakenstein levels of stitched up monstrosity, all of which i gleaned from others, of course!
added a timeline of all your followed tags. in branch develop.
binding is M-: (shift alt ;)