Python CLI to edit Firefox bookmarks?

2020-06-30 02:48发布

问题:

Has anyone done a Python CLI to edit Firefox bookmarks ? My worldview is that of Unix file trees; I want

  • find /re/ in given or all fields in given or all subtrees
  • cd
  • ls with context
  • mv this ../there/

Whether it uses bookamrks.html or places.sqlite is secondary -- whatever's easier.
Clarification added: I'd be happy to quit Firefox, edit bookmarks in the CLI, import the new database in Firefox. In otherwords, database locking is a moot point; first let's see code for a rough cut CLI.

(Why a text CLI and not a GUI ? CLIs are simpler (for me), and one could easily program e.g. mv old-bookmarks to 2009/same-structure/. Nonetheless links to a really good bookmarker GUI, for Firefox or anything else, would be useful too.)

回答1:

Assuming we're talking about Firefox 3 or better, the bookmarks are kept in a SQLite file, places.sqlite in the profile folder. So you need a routine to find the profile folder (depending on your platform) and then you can load the SQLite file.

The schema's rich and a bit complicated, but well documented, and of course with Python's SQLite support you can explore it interactively.

Of course, Firefox keeps the DB locked when it's running. For read-only access, you can just copy places.sqlite into a temporary file, then open and explore that one; to perform changes as you seem to require, however, it seems best to require the user to quit Firefox (if that's unacceptable, you could explore if Firefox offers a way to ask for its cooperation).

Is this the kind of things you had in mind...?



回答2:

I don't know about all the features you've mentioned but "Organize bookmars" option in the Bookmarks menu is pretty decent with respect to features.