mirror of
https://github.com/floccusaddon/floccus.git
synced 2026-04-26 14:45:59 +03:00
[GH-ISSUE #240] Store .XBEL in a Local Folder #229
Labels
No labels
browser-specific
bug
correctness issues
enhancement
feature: Google Drive
feature: Linkwarden
feature: git
feature: nextcloud-bookmarks
feature: tabs
feature: webdav
help wanted
native-app
priority: high
priority: low
priority: medium
pull-request
question
question
stale
upstream
waiting for more information
wontfix
🙁 Not following issue template
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/floccus#229
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @TCB13 on GitHub (Mar 16, 2019).
Original GitHub issue: https://github.com/floccusaddon/floccus/issues/240
Hello,
I was looking for a good bookmark solution and I found Floccus, it does almost everything I need and keeps it simple, however I've an idea/request to make it even simpler.
We have the ability to store XBEL files in WebDAV but what about a local folder in our machines?
Why? Because this way I can sync the file using Syncthing, Dropbox, MEGA, or any other public cloud service. Someone might even do it with git!
This feature will also make it possible for people that aren't that tech savvy / own servers etc to use this extension. For instance, KeePass/KeePassXC store the file anywhere you would like and then you can sync it around with your favourite tool.
Software versions
@marcelklehr commented on GitHub (Mar 19, 2019):
Hey there,
this is a great idea, theoretically. However, browsers don't allow extensions to access the file system, and this is unlikely to change. I see no easy workaround for this limitation, other than implementing adapters that work with Syncthing/Dropbox/etc. directly (which is possible).
@MA3o commented on GitHub (Mar 19, 2019):
Hi,
I would also be very interested in some solution where a local .xbel file could be synced directly between my devices (be it using syncthing or dropbox or a USB-Stick or rsync or whatever).
KeePassXC (which was mentioned by the OP) uses Native Messaging to communicate with an app that is running locally on the computer. Basically, one could write a very simple local app that just serves a local .xbel file on request. From the floccus side, this would be pretty much identical to a WebDavAdapter, just with altered "downloadFile" and "uploadFile" functions.
The obvious downside is of course the need for an external program to run.
The mozilla Wiki provides a detailed documentation on this feature, including a sample python script for the "server-side" implementation: Link
If there is an interest in going down that route, I'd be willing to help with the server side. I've been waiting far too long for a good reason to learn python ;-)
@TCB13 commented on GitHub (Mar 19, 2019):
@marcelklehr thank you for the update. I don't particularly like the adapter idea because that will restrict the number of services available for the user. I believe that as @MA3o pointed out, a local app running and native messaging would be a good workaround.
Another option: a small program with a built in webdav server (maybe https://github.com/mar10/wsgidav with https://wsgidav.readthedocs.io/en/latest/addons-virtual.html) and then connect floccus to it. This would avoid the need to implement native messaging.
@marcelklehr commented on GitHub (Mar 19, 2019):
I'd be happy to review and coach work on a native messaging adapter. I will likely not have time to work on this myself. I think in the interest of simplicity a relatively self-contained GUI app would be nice, as I think mostly non-techsavvy users will have the need for something that doesn't involve setting up a webdav server or similar. Perhaps an electron app (I'm not particular about this)?
For now the workaround with a local webdav server would also have been my suggestion. WsgiDAV looks like a nice option. @TCB13 Would you like to write a tutorial in the Wiki on how to set this up?
@TCB13 commented on GitHub (Mar 19, 2019):
Its not about just writing a Wiki page. WsgiDAV is a generic server we still need to write an App/GUI around it, the problem with using it as it is, it that it would probably mean exposing more than we should.
@marcelklehr commented on GitHub (Mar 19, 2019):
I agree. I should have explained my reasoning more thoroughly: As I see it, the short-term solution would be to run a local webDAV server, while the long-term solution is definitely to have some GUI app that ideally also cuts out the need for configuring webDAV in the extension. From its docs it looks like wsgiDAV allows setting an arbitrary root folder, which would allow a floccus user to create a webdav folder just for the xbel file inside e.g. a dropbox folder. It even allows restricting access using Basic Auth.
@TCB13 commented on GitHub (Mar 19, 2019):
Yes it does and I can write a guide on how to use it that way, however we would be better suited with the virtual add on restricted to a bookmarks file.
Why can't we keep using WebDAV? Maybe we can write a GUI around WsgiDAV that only allows the user to pick a bookmarks file. Then we can duplicate the current WebDavAdapter to something like WebDavLocalAdapter that automatically connects to the local WebDAV. The user doesn't really have to know that it uses WebDAV at all or do any configuration. Possible downside: anything in the localhost can access the favorites in a know port.
@marcelklehr commented on GitHub (Mar 19, 2019):
Good question! I hadn't considered that. In that case we should make sure to secure that webDAV wrapper in a way that still keeps it as easy to use as possible. But I like the idea. That way we don't need a new/different protocol.
@TCB13 commented on GitHub (Mar 24, 2019):
@marcelklehr I've come up with a very crude GUI to do what we were discussing.
This small GUI was designed to: 1) only accept webdav connections from the localhost 2) generate a random port, username and password for each setup 3) only accept digest auth 4) store your XBEL location across sessions and 5) minimize to Windows tray / macOS top bar.
Link for the code: https://gist.github.com/TCB13/8f59088a807aebe58bd67bc0f9fd6b55
Packed exe for Windows: https://cdn.iklive.eu/tcb13/2019/floccus-local-xbel.rar
And yes, the code is ugly, but I'm not python dev and this was my first experience with the language. I didn't even cared to make it pretty.
@marcelklehr commented on GitHub (Mar 24, 2019):
@TCB13 Awesome! That looks quite good already. And the code is not that crude IMO. :D
@jlbprof commented on GitHub (Mar 24, 2019):
That is cool, can you link this project from your README.md so others can
see it too?
On Sun, Mar 24, 2019 at 7:39 AM Marcel Klehr notifications@github.com
wrote:
@TCB13 commented on GitHub (Mar 24, 2019):
@jlbprof allow me to improve it a bit and I'll PR.
@TCB13 commented on GitHub (Mar 24, 2019):
@marcelklehr @jlbprof ,
From now on, my GUI is called LoFloccus and is available here https://github.com/TCB13/LoFloccus. I've made several importements to it, it has more options now and looks better:
You can find an updated Windows exe here: https://github.com/TCB13/LoFloccus/blob/master/LoFloccus.exe (not working properly, please run
python LoFloccus.py. I need assisting packing this withpyinstaller.)Hope you enjoy.
@marcelklehr commented on GitHub (Mar 24, 2019):
Thanks for the PR. Looks even better now. I'm not sure if the webDAV adapter currently supports Digest Authentication, though.
@TCB13 commented on GitHub (Mar 24, 2019):
I just have to say one thing: it works. I'm using it and it is able to sync without trouble.
Anyway, does anyone have experience with
pyinstaller? I'm having issues packing the App into an exe...@marcelklehr commented on GitHub (Mar 24, 2019):
Mh. Alright :)
Not me :D
@TCB13 commented on GitHub (Mar 24, 2019):
@marcelklehr well anyone can run LoFloccus via
python LoFloccus.pyand it works just fine. The currentexedoesn't start the server properly, probably due to some issue withpyinstaller. My ultimate goal is to provide a standalone Windows exe and macOS app that anyone can download and run without touching the CLI.@marcelklehr commented on GitHub (Mar 24, 2019):
Meta aspect: Let's continue this in the issues of LoFloccus :)
@allobrogica commented on GitHub (Apr 3, 2019):
I know this item is already closed, but for anyone who checks it: If you are on a Mac and have High Sierra or above you don't need any additional WebDAV software to enable local XBEL storage. WebDAV services are built-in and very easy to enable. I wrote up a wiki page on how to do it (just enter 2 commands at the command line and your specified folder will be available via WebDAV on localhost).
https://github.com/marcelklehr/floccus/wiki/Using-Floccus-locally-with-MacOS-built-in-WebDAV-service
@jlbprof commented on GitHub (Apr 3, 2019):
Awesome
On Wed, Apr 3, 2019 at 6:54 AM allobrogica notifications@github.com wrote:
@TCB13 commented on GitHub (Apr 3, 2019):
@allobrogica @jlbprof the idea of a standalone app is to make it easy to use to anyone, not only those who know their way around the terminal....
@marcelklehr commented on GitHub (Apr 3, 2019):
I think both are worthwhile approaches for the respective audiences :)
@TCB13 commented on GitHub (Apr 27, 2019):
Just released v1.1.1 LoFloccus, the solution to sync Floccus to a local folder. It was a complete rewritte in GoLand featuring a Qt5 UI. Get it at https://github.com/TCB13/LoFloccus .
@github-actions[bot] commented on GitHub (Mar 21, 2023):
This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.