// Vimperator plugin: 'Show Hatena Bookmark Comments' // Last Change: 21-Mar-2008. Jan 2008 // License: Creative Commons // Maintainer: Trapezoid - http://unsigned.g.hatena.ne.jp/Trapezoid // // show hatena bookmark comments script for Vimperator 0.6 (function(){ function showComments(url){ const endPoint = "http://b.hatena.ne.jp/entry/json/"; var xhr = new XMLHttpRequest(); var tagString,showString = "
"; xhr.open("GET",endPoint + url.replace(/#/,"%23") ,false); xhr.send(null); var response; if(!(response = window.eval(xhr.responseText))){ liberator.echoerr("Does not exists!!");return; } var bookmarks = response["bookmarks"]; showString += response["count"] + " users : " + response["title"] + "
"; bookmarks.forEach(function(bookmark){ tagString = bookmark.tags.length ? "[" + bookmark.tags.join("][") + "]":""; showString += "
" + bookmark.user + "
"; showString += "
" showString += tagString + (bookmark.tags.length > 0 && bookmark.comment ? "
":"") + bookmark.comment + "
"; }); showString += "
"; liberator.commandline.echo(showString, liberator.commandline.HL_NORMAL, liberator.commandline.FORCE_MULTILINE); } liberator.commands.addUserCommand(["hbinfo"], "show hatena bookmark comments", function(arg,special){ var clipboard = readFromClipboard(); if(special) arg = window.content.document.getSelection() || clipboard; showComments(arg?encodeURIComponent(arg):liberator.buffer.URL); },{ completer: liberator.completion.url } ); liberator.mappings.addUserMap([liberator.modes.VISUAL], [",h"], "show hatena bookmark comments", function(count){ showComments(window.content.document.getSelection()); },{ noremap: true } ); })();