No Fuss Bookmarks is a very simple software and service to store bookmarks especially designed for hackers (that don't need fancy interfaces, but nice API).
The software is a simple RESTful server, written using Flask, providing a CRUD interface to a mongoDB store, plus a very basic Google Chrome extension to submit bookmarks. The code is released under the GPL and available from GitHub.
The service is just an incarnation of such software hosted by heroku and mongolab that you can freely use just submitting your email below to obtain your API key.
Install the No Fuss Bookmark Chrome extension that will, by default, use this server as a backend.
Attention After installing it, point your Chrome browser at
chrome://settings/extensionSettings
and, follow the "Option" link of the extension, enter the API key you
got submitting your email in the above form.
If you want to use an alternate server (and API key), you must download the extension source code and edit it accordingly, than you can install it following for instance this instructions.
Point your browser at http://nofussbm.herokuapp.com/<EMAIL>
, where <EMAIL>
is
your email, to get a list of all your bookmarks as a (tab separated) text file (that you can, for instance, conveniently
grep, or sort); moreover you can set an alias if your email is just too long (see the API section for instructions).
You can optionally filter such list by tag and/or title adding to the above URL a (suitably encoded) query string with the field tags
having as value a
(comma separated list) of tags that will all match, and/or the field title
having as value a string that
will match as a (case insensitive) substring.
Attention All bookmarks are public, anyone with your email can get your bookmarks. For instance, you can see a list of all my bookmarks, or just the one tagged with Python.
Important You can easily export your bookmarks from the now fussy Delicious and import them here! See the API section for instructions.
The API are so simple that you can perform all the CRUD operations from the command line, using simple tools such as, for instance, cURL.
Assume that KEY
contains your API key (for instance, the one you got submitting your email in the above
form), URL
contains the API endpoint (that is http://nofussbm.herokuapp.com/api/v1/
if you
use this server as a backend), and the bm.json
file contains the following JSON representation of a bookmark
[{ "title": "mapio/nofussbm - GitHub", "url": "https://github.com/mapio/nofussbm", "tags": "flask,mongodb,python,bookmarks" }]
Them, you can create such a bookmark by the following command
curl -X POST -d @bm.json -H "Content-type: application/json" -H "X-Nofussbm-Key: $KEY" $URL
Hence, you can read your bookmarks (and record them in the bms.json
file) using
curl -H "Content-type: application/json" -H "X-Nofussbm-Key: $KEY" $URL > bms.json
If the store was initially empty and you added just bm.json
, then bms.json
will contain
[{ "date-added": "2011-11-24 21:33:50.290000", "id": "4eceb83e57ae478fc5000000", "tags": "flask,mongodb,python,bookmarks", "title": "mapio/nofussbm - GitHub", "url": "https://github.com/mapio/nofussbm" }]
If you want, you can edit bms.json
and then update (matching bookmarks by id
) the store with
curl -X PUT -d @bms.json -H "Content-type: application/json" -H "X-Nofussbm-Key: $KEY" $URL
Finally, you can delete bookmarks (matching the id
) in bms.json
with
curl -X DELETE -d @bms.json -H "Content-type: application/json" -H "X-Nofussbm-Key: $KEY" $URL
Important You can import your Delicious bookmarks as follows: first, export them from their site and you should get
an HTML file (usually named delicious.html
) containing a sequence of lines of the form
<DT><A HREF="[url]" ADD_DATE="[timestamp]" PRIVATE="[0|1]" TAGS="[tags]">[title]</A>
Then, import it (preserving all the information except for the PRIVATE
field) as simply as
curl -T delicious.html -H "X-Nofussbm-Key: $KEY" ${URL}import
If you feel that your email is too long, or you want to post somewhere the list of your bookmarks without reveailng your identity, you can setup an alias as follows
curl -X POST -H "X-Nofussbm-Key: $KEY" ${URL}setalias/<YOUR_ALIAS>
where <YOUR_ALIAS>
is any word of your choice (look at the answer to see if, in case of
duplicates, your request wasnt satisfyed).