aboutsummaryrefslogtreecommitdiffstats
path: root/moreqmarks.js
AgeCommit message (Collapse)Author
2009-07-02follow HEAD(2.2pre)anekos
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@34243 d0d07461-0603-4401-acd4-de1884942a52
2009-04-03間違ったコミットの取消hogelog
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@31877 d0d07461-0603-4401-acd4-de1884942a52
2009-04-03 * fix typo s/histsio/hintsio/ (thanks tekezo)hogelog
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@31876 d0d07461-0603-4401-acd4-de1884942a52
2008-12-10Follow Head.anekos
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@26315 d0d07461-0603-4401-acd4-de1884942a52
2008-11-26ゴミ除去anekos
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@24903 d0d07461-0603-4401-acd4-de1884942a52
2008-11-26Follow CVS Headanekos
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@24898 d0d07461-0603-4401-acd4-de1884942a52
2008-11-01CVS Head対応。anekos
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@22530 d0d07461-0603-4401-acd4-de1884942a52
2008-11-01CVS Head対応。anekos
他。 git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@22507 d0d07461-0603-4401-acd4-de1884942a52
2008-09-24 * markを削除したときにデータ保存が行われないバグの修正hogelog
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@19809 d0d07461-0603-4401-acd4-de1884942a52
2008-09-24* キューの保存に失敗していたバグの修正hogelog
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@19807 d0d07461-0603-4401-acd4-de1884942a52
2008-09-24 * デフォルトのQuickMarksのデータを引き継げるようにhogelog
* その他微調整 git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@19806 d0d07461-0603-4401-acd4-de1884942a52
2008-09-23 * フレームページがqmarkできなくなっていたのを修正hogelog
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@19793 d0d07461-0603-4401-acd4-de1884942a52
2008-09-23QuickMarksの機能を拡張するプラグインhogelog
* qmarkでもmark同様、位置を記憶 * jump対象がbuffer内にあればフォーカス、無ければ新規タブで開くgjマッピング追加 * qmarkをpush, pop, queue, dequeなど行なえるqmarkスタック、qmarkキューを追加 git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@19791 d0d07461-0603-4401-acd4-de1884942a52
span>; i < l; data.push(nodesSnapshot.snapshotItem(i++))); return (data.length > 0) ? data : null; } function getFirstElementByXPath(xpath, node) { node = node || document; var result = (node.ownerDocument || node).evaluate(xpath, node, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null); return result.singleNodeValue ? result.singleNodeValue : null; } // copied from Pagerization (c) id:ofk function parseHTML(str) { str = str.replace(/^[\s\S]*?<html(?:\s[^>]+?)?>|<\/html\s*>[\S\s]*$/ig, ''); var res = document.implementation.createDocument(null, 'html', null); var range = document.createRange(); range.setStartAfter(window.content.document.body); res.documentElement.appendChild(res.importNode(range.createContextualFragment(str), true)); return res; } function getNormalizedPermalink(url){ var xhr = new XMLHttpRequest(); xhr.open("GET","http://api.pathtraq.com/normalize_url?url=" + url,false); xhr.send(null); if(xhr.status != 200){ liberator.echoerr("Pathtraq: FAILED to normalize URL!!"); return undefined; } return xhr.responseText; } liberator.plugins.delicious_tags = []; var deliciousUser, deliciousPassword; try { var passwordManager = Cc["@mozilla.org/login-manager;1"].getService(Ci.nsILoginManager); var logins = passwordManager.findLogins({}, 'https://secure.delicious.com', 'https://secure.delicious.com', null); if(logins.length) [deliciousUser, deliciousPassword] = [logins[0].username, logins[0].password]; else liberator.echoerr("DeliciousBookmark: account not found"); } catch(ex) { } function getTags(){ const feed_url = 'https://api.del.icio.us/v1/tags/get'; var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function(){ if(xhr.readyState == 4){ if(xhr.status == 200) { var tags = xhr.responseXML.getElementsByTagName('tag'); for each(var tag in tags) liberator.plugins.delicious_tags.push(tag.getAttribute('tag')); liberator.echo("DeliciousBookmark: Tag parsing is finished. Taglist length: " + tags.length); } else throw new Error(xhr.statusText) } }; xhr.open("GET", feed_url, true, deliciousUser, deliciousPassword); xhr.send(null); } getTags(); function addDeliciousBookmarks(url, title, comment, normalize) { var target = normalize ? getNormalizedPermalink(url) : url; var tags = []; var re = /\[([^\]]+)\]([^\[].*)?/g; if (/^\[.*\]/.test(comment)) { var tag, text; while((tag = re.exec(comment))) { [, tag, text] = tag; tags.push(tag); } comment = text || ''; } var request_url = 'https://api.del.icio.us/v1/posts/add?' + [ ['url', target], ['description', title], ['extended', comment], ['tags', tags.join(' ')] ].map(function(p) p[0] + '=' + encodeURIComponent(p[1])).join('&'); var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function(){ if(xhr.readyState == 4){ if(xhr.status == 200) liberator.echo("DeliciousBookmark: success"); else liberator.echoerr("DeliciousBookmark:" + xhr.statusText); } }; xhr.open("GET", request_url, true); xhr.send(null); } liberator.commands.addUserCommand(['delbtags'],"Update DeliciousBookmark Tags", getTags, {}); liberator.commands.addUserCommand(['delb'],"Post to DeliciousBookmark", function(arg){ addDeliciousBookmarks(liberator.buffer.URL, liberator.buffer.title, arg, isNormalize); },{ completer: function(filter){ var match_result = filter.match(/(\[[^\]]*\])?\[?(.*)/); //[all, commited, now inputting] var m = new RegExp(XMigemoCore ? "^(" + XMigemoCore.getRegExp(match_result[2]) + ")" : "^" + match_result[2],'i'); var completionList = []; for each(var tag in liberator.plugins.delicious_tags) if(m.test(tag)){ completionList.push([(match_result[1] || "") + "[" + tag + "]","Tag"]); } return [0, completionList]; } } ); })();