Synchronizing bookmarks - Request for comments
- 🗣️ From: skyjake (skyjake (a) dengine.net)
- 📅 Sent: 2020-12-16 06:57
- 📧 Message 5 of 14
On 15. Dec 2020, at 23:08, C?me Chilliet <come at chilliet.eu> wrote:
> I?ve put together an idea of simple specification to allow clients to
synchronize bookmarks and feeds across Gemini, as this is something that
I?m currently missing in my daily Gemini use.
>
> You can read it at
gemini://gemlog.lanterne.chilliet.eu/2020-12-15%20link-sync-rev-1.en.gmi
I think this is a valid use case, and it's something I have been thinking
about myself just running Lagrange on a number of different computers.
When you bring in a mix of different clients and desktop/mobile operating
systems, sync is even more important.
The lowest common denominator should be export to/import from a .gmi file.
Such a file (that Adnan Maolood suggested, for example) is guaranteed to
be at least viewable by all clients. It supports folders, has no line
length limitations, and can support tags as well (e.g., an optional
line/bullet/quote following a link). The user can then manually manage
the files via any means they see fit.
However, the UX of doing that on an ongoing basis to sync your
bookmarks/feeds isn't great. An automated mechanism is certainly more desirable.
When it comes to basing sync on the Gemini protocol, it makes a certain
amount of sense (clients know how to do Gemini requests) but it's not a perfect fit:
- one add/del per request ? what if you have a 100 bookmarks to sync?
- request URL length limit
- does not address tags, folders, manual ordering
> * Would you consider implementing support for something like this?
Something like this, yes.
The current proposal needs revising, though. I suggest creating a
mechanism that allows using Gemini subscriptions as a core part of the
sync. A client would view and/or subscribe to a bookmarks page served by
the bookmark sync server. Client-side, the subscription would track all
links instead of dated links, and ensure that all links on the bookmarks
page have copies in the local set of bookmarks. (And somehow get rid of
deleted bookmarks, too.)
This way, a public bookmarks feed could be served as a static file by any Gemini server.
It's a good idea that a client cert is used to ensure privacy of the
served bookmarks, unless they are meant to be public.
The upload part is where it's gets tricky, and I don't think the Gemini
protocol should be used for that. As a client author what I'd like to see
is that I just export the bookmarks .gmi file as usual, and then send it
to the server, perhaps via a TLS socket at a port specifically reserved
for uploads ? just open a socket, set a client cert, and write the .gmi
file to the socket. The client cert would be required for user
identification. It would be up to the server to merge the bookmarks and
get rid of deleted ones on server-side.
This does make things a bit more difficult for the server implementation,
but keeping things easy for clients at least encourages wider support.
> * Does your client have some kind of plugin system which would allow a
third-party to add support?
Not currently. However, Lagrange's MIME hooks could be extended to allow
manual activation, so you could run an external program on your
"about:bookmarks" page to do the sync. It would need to edit the internal
bookmarks.txt file, and Lagrange would then need to detect that the file
has changed after the hook program finishes. I wouldn't prefer going down
this route, though. It's better to have a mechanism that benefits all clients equally.
So let's keep working on this! Automatic bookmark (and client cert?) sync
would be great features for Gemini clients.
--jaakko
---
Previous in thread (4 of 14): 🗣️ Côme Chilliet (come (a) chilliet.eu)
Next in thread (6 of 14): 🗣️ Jason McBrayer (jmcbray (a) carcosa.net)
View entire thread.