> mostly stupid bash tricks_ 

c u t u p @ c u t u p . o r g

 xml 

[del.icio.us bookmarklet php] last modified: 03/25/2007 02:06 pm

Well, John Ressig's excellent del.icio.us super-fast bookmarklet stopped working a while ago when delicious changed their posting method. It used to allow one click transparent posting to del.icio.us - now it leaves you on the posting page with an error message 'A required security token was not received with your form data.', albeit with all the fields nicely filled in, and you have to manually hit post. The horror!

But I'm proud to say I've managed to cobble something together that works the way it used to. It's a bit more complicated though, and requires your own web space (localhost works if you're running a web server on your own machine).

It's a php script that generates a bookmarklet that works just like the old one did. However, instead of sending the information straight to delicious, it sends its information to the script, and the script uses the del.icio.us API to post the item.

The script lives here. Put it in a web accessible directory, fill in the username, password, and (optional) default_tags, then visit the script in your browser for instructions. It's a very good idea to use .htaccess to protect the script from anyone else, otherwise whoever has the bookmarklet can post to your account.

There are some things I don't like about the script.

I'll keep working on some improvements, but for now it at least works.

UPDATE:

This is now rendered useless (and thats a good thing) by the following bookmarklet code. It submits direct to the api, will prompt for user:pass the first time you submit in a session, and automatically closes the post acknowledgment tab, which the whole point of the php script was to avoid. Here you go:

javascript:e=%22%22+(window.getSelection ? window.getSelection() : document.getSelection ? document.getSelection() : document.selection.createRange().text);void(delicious = open('https://api.del.icio.us/v1/posts/add?description='+encodeURIComponent(document.title)+'&extended='+escape(e).replace(/ /g, %22+%22)+'&tags=%s'+'&url='+window.location.href,'delicious','toolbar=no,width=500,height=150'), setTimeout('delicious.close()',5000))

create a bookmark with that as the location, assign a keyword, and then typing keyword tag1 tag2 ... in the url bar will submit that page to delicious, with any highlighted text on the page submitted as extended.




[javascript bookmarklet] last modified: 03/25/2007 02:03 pm

The little-big thing that got me comfortable reading books on my laptop was realizing that the shape of my browser window was important. There I am, reading Accelerando! and something wasn't right.

I resized my browser window narrow and tall, like a paperback book, and all the sudden it was no problem. I didn't realize how wide the columns of the Internets are! And how much of a difference it makes. I read a lot, I guess I'm wired up this way now.

It got me to thinking - I'm always resizing my browser window anyway, and there's basically one size I like by default, wide and covering most of the screen of my 12" pbook.

I don't have a javascript bone in my body, but a bunch of googling and one ask.metafilter question later, I had a couple of pieces of javascript that I could have in my Bookmarks Bar that resize and move the browser window.

This one:

javascript:resizeTo(600,screen.availHeight-40);moveTo(2,2)

is nice for reading long-form book type writing. And:

javascript:resizeTo(screen.availWidth-50,screen.availHeight-40);moveTo(2,2)

is the default browse setting I like.

It should be obvious how to customize these to your liking. Just enter the code as Location in a new bookmark, and throw it in the Bookmarks Toolbar Folder in Firefox. They work in Safari too. When I got FF 1.5 beta they stopped working - I had to go to Preferences -> Content -> Javascript Advanced, and check "move or resize existing windows", which was disabled by default.

Also, here's another interesting piece of javascript for a bookmarklet:

javascript:location.href='http://your_path_here?'+escape(location.href)

What this does is goes to the href= page and makes the page you clicked the bookmarklet on available as $_ENV['QUERY_STRING']. Useful for del.icio.us-style bookmarking and stuff.




[All Posts] [top]

tags:

bookmarklet
del.icio.us
javascript
php