aboutsummaryrefslogtreecommitdiffstats
path: root/notifier
AgeCommit message (Collapse)Author
2009-02-08twitter.com/home 取得 XPath 変更対応suVene
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@29733 d0d07461-0603-4401-acd4-de1884942a52
2009-01-13add updateURL for pluginManager.jssuVene
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@28389 d0d07461-0603-4401-acd4-de1884942a52
2009-01-12 * fixed typos.drry
* et cetera. git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@28368 d0d07461-0603-4401-acd4-de1884942a52
2009-01-12new addteramako
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@28312 d0d07461-0603-4401-acd4-de1884942a52
2009-01-09 * cosmetic changes.drry
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@28232 d0d07461-0603-4401-acd4-de1884942a52
2009-01-09* cosmetic changes.suVene
* SubjectHttp#diff return parsed. * subject_weather_yahoo ajust next time. git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@28211 d0d07461-0603-4401-acd4-de1884942a52
2009-01-06* sticky_keywords を Regexp(keyword, 'i') で比較。 suVene
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@28057 d0d07461-0603-4401-acd4-de1884942a52
2009-01-06- GET でええやん。suVene
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@28013 d0d07461-0603-4401-acd4-de1884942a52
2009-01-04 * fixed missing `var` statements.drry
* fixed a regex. * removed subversion props. * et cetera. git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@27924 d0d07461-0603-4401-acd4-de1884942a52
2009-01-04- remove判定整理。suVene
- sticky_keyword → sticky_keywords 変更。 - liberator.echomsg の filter 実装。 git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@27851 d0d07461-0603-4401-acd4-de1884942a52
2009-01-03 * fix:typoteramako
* sticky_keyword有効化(コード恰好悪し修正求む) git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@27826 d0d07461-0603-4401-acd4-de1884942a52
2009-01-03first releaseteramako
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@27811 d0d07461-0603-4401-acd4-de1884942a52
2009-01-02add "subject_liberator_echomsg.js".suVene
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@27801 d0d07461-0603-4401-acd4-de1884942a52
2008-12-29* add !important.suVene
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@27577 d0d07461-0603-4401-acd4-de1884942a52
2008-12-29updateURLsuVene
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@27571 d0d07461-0603-4401-acd4-de1884942a52
2008-12-29add subject_twitter.scraper.jssuVene
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@27570 d0d07461-0603-4401-acd4-de1884942a52
2008-12-28del debug log.suVene
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@27535 d0d07461-0603-4401-acd4-de1884942a52
2008-12-28add notifier/subject_wassr.jssuVene
mod libly.js bugfix. etc. git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@27534 d0d07461-0603-4401-acd4-de1884942a52
2008-12-25typo className.suVene
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@27428 d0d07461-0603-4401-acd4-de1884942a52
2008-12-22licensesuVene
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@27241 d0d07461-0603-4401-acd4-de1884942a52
2008-12-22 * XPath を修正しました。drry
* ほか。 git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@27220 d0d07461-0603-4401-acd4-de1884942a52
2008-12-21* shutdown 時の timer cleanup.suVene
* document.unload 時の interval cleanup. git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@27175 d0d07461-0603-4401-acd4-de1884942a52
2008-12-20missss! [27132]suVene
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@27133 d0d07461-0603-4401-acd4-de1884942a52
2008-12-20add <updateURL> for pluginManager.js [27131]suVene
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@27132 d0d07461-0603-4401-acd4-de1884942a52
2008-12-19* bugfix.(無駄なtimer)suVene
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@27111 d0d07461-0603-4401-acd4-de1884942a52
2008-12-18* observer_growl. EventListener の登録失敗回避.[close all]追加.suVene
* subject_weather_yahoo.js url の設定読込み. * growl.css className modify. git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@27040 d0d07461-0603-4401-acd4-de1884942a52
2008-12-18* add subject_weather_yahoo.js.suVene
* observer_growl.js のオプション設定. * css微調整. * etc. git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@27023 d0d07461-0603-4401-acd4-de1884942a52
2008-12-15* growl.css - add head link style.suVene
* observer_growl.js - add hyperlink.mod default life 10 seconds. * subject_hatelabo_bottle.js - parse permalink. * notifier.js - follow pluginManager.etc. git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@26822 d0d07461-0603-4401-acd4-de1884942a52
2008-12-09* _libly.js ver.0.1.4 にあわせた修正. [26222]suVene
* event 追加. git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@26230 d0d07461-0603-4401-acd4-de1884942a52
2008-12-09 * もしバグったらごめんなさい。drry
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@26163 d0d07461-0603-4401-acd4-de1884942a52
2008-12-08とりあえず、はてなボトルの変更通知はできるようにな ↵suVene
た。TODO: wedata, animation. git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@26154 d0d07461-0603-4401-acd4-de1884942a52
2008-12-08*SubjectHttp定義.suVene
*registerするときに下位クラスから基底クラスを指定するように変更. *notifier/observer/subject の PLUGIN_INFO対応 @see http://coderepos.org/share/browser/lang/javascript/vimperator-plugins/trunk/pluginManager.js *ほか. git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@26152 d0d07461-0603-4401-acd4-de1884942a52
2008-12-07 * removed an unused variable.drry
* et cetera. git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@26088 d0d07461-0603-4401-acd4-de1884942a52
2008-12-07*libty.js bug fix.suVene
*それに伴うmulti_requester.jsの修正 *subject_test.js rename to subject_hatelabo_bottle.js(途中) *etc. git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@26085 d0d07461-0603-4401-acd4-de1884942a52
2008-12-06jquery.jgrowl.css > growl.csssuVene
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@26021 d0d07461-0603-4401-acd4-de1884942a52
2008-12-06変更通知framework.& それを利用したGrowl風plugin(途中)suVene
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@26017 d0d07461-0603-4401-acd4-de1884942a52
s(), 2), ":", zeropad(aDate.getUTCMinutes(), 2), ":", zeropad(aDate.getUTCSeconds(), 2), "Z" ].join(""); return result; } }; // copied from AutoPagerize (c) id:swdyh function getElementsByXPath(xpath, node){ node = node || document; var nodesSnapshot = (node.ownerDocument || node).evaluate(xpath, node, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null); var data = []; for (var i = 0, l = nodesSnapshot.snapshotLength; 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 httpGET(uri,callback){ var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function(){ if(xhr.readyState == 4){ if(xhr.status == 200) callback.call(this,xhr.responseText); else throw new Error(xhr.statusText) } }; xhr.open("GET",uri,true); xhr.send(null); } 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; } function getTags(arg){ liberator.plugins.hatena_tags = []; httpGET("http://b.hatena.ne.jp/my", function(mypage_text){ var mypage_html = parseHTML(mypage_text); var tags = getElementsByXPath("//ul[@id=\"tags\"]/li/a",mypage_html); tags.forEach(function(tag){ liberator.plugins.hatena_tags.push(tag.innerHTML); }); liberator.echo("HatenaBookmark: Tag parsing is finished. Taglist length: " + tags.length); }); } getTags(); function addHatenaBookmarks(user,password,url,comment,normalize){ var target = normalize ? getNormalizedPermalink(url) : url; var request = <entry xmlns="http://purl.org/atom/ns#"> <title>dummy</title> <link rel="related" type="text/html" href={target}/> <summary type="text/plain">{comment}</summary> </entry>; var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function(){ if(xhr.readyState == 4){ if(xhr.status == 201) liberator.echo("HatenaBookmark: success"); else liberator.echoerr("HatenaBookmark:" + xhr.statusText); } }; var wsse = new WSSEUtils(user,password); xhr.open("POST","http://b.hatena.ne.jp/atom/post", true); xhr.setRequestHeader("X-WSSE",wsse.getWSSEHeader()); xhr.setRequestHeader("Content-Type","application/atom+xml"); xhr.send(request.toString()); } commands.addUserCommand(['hbtags'],"Update HatenaBookmark Tags", getTags, {} ); commands.addUserCommand(['hb'],"Post to HatenaBookmark", function(args){ var arg = args.string; try { var passwordManager = Cc["@mozilla.org/login-manager;1"].getService(Ci.nsILoginManager); var logins = passwordManager.findLogins({}, 'https://www.hatena.ne.jp', 'https://www.hatena.ne.jp', null); if(logins.length) [hatenaUser, hatenaPassword] = [logins[0].username, logins[0].password]; else liberator.echoerr("HatenaBookmark: account not found"); } catch(ex){ } addHatenaBookmarks(hatenaUser,hatenaPassword,modules.buffer.URL,arg,isNormalize); },{ completer: function(context, arg, special){ let filter = context.filter; //var match_result = filter.match(/(.*)\[(\w*)$/); //[all, commited, now inputting] var match_result = filter.match(/((?:\[[^\]]*\])+)?\[?(.*)/); //[all, commited, now inputting] //var m = new RegExp("^" + match_result[2]); var m = new RegExp(XMigemoCore ? "^(" + XMigemoCore.getRegExp(match_result[2]) + ")" : "^" + match_result[2],'i'); var completionList = []; liberator.plugins.hatena_tags.forEach(function(tag){ if(m.test(tag)){ completionList.push([(match_result[1] || "") + "[" + tag + "]","Tag"]); } }); context.title = ['Tag','Description']; // context.advance(match_result[1].length); context.completions = completionList; } } ); })(); // vim:sw=4 ts=4 et: