// ==UserScript== // @name Cross Post_Hatena_Timelog // @namespace http://timelog.wiki.zoho.com/ // @include http://b.hatena.ne.jp/add?mode=confirm* // @version 0.2 // ==/UserScript==
(function () { var form = document.getElementById('edit_form'); var twitBtn = document.getElementsByName('commit')[0].cloneNode(false); twitBtn.value += '(with Timelog)'; twitBtn.style.margin = '0 0 0 5px'; var edit = document.createElement('textarea'); edit.style.width='100%'; edit.style.height='38px'; edit.style.fontSize = '0.9em'; edit.style.verticalAlign = 'bottom'; edit.addEventListener('keyup',twitcount,false); var count = document.createElement('span'); function twitcount(){ count.innerHTML=byteCount(this.value)+'/140'; } function byteCount(str){ len = []; Array.prototype.forEach.call(str,function(c){ len.push((c.charCodeAt() <= 255) ? '1': '2b') }); return len.join('').length; } function addTwit(shorturl){ edit.value = [ '/b ' ,document.getElementsByName('title')[0].value ,' ' ,shorturl ].join(''); form.insertBefore(twitBtn, document.getElementById('tags_completion')); form.insertBefore(edit, document.getElementById('tags_completion')); form.insertBefore(count, document.getElementById('tags_completion')); twitcount.apply(edit,[]); } twitBtn.addEventListener('click', function (e) { var status = encodeURIComponent(edit.value); var url = 'http://ID:PASSWORD@api.timelog.jp/new.asp'; GM_xmlhttpRequest({ method : 'POST', url : url, data: 'text=' + status, headers: { 'Content-Type':'application/x-www-form-urlencoded', 'User-Agent':'Cross Post_Hatena_Timelog' } }); }, false); var url = document.getElementsByName('url')[0].value; var w = (typeof unsafeWindow == "undefined") ? window : unsafeWindow; if (url.length > 40) { w.tinyurlTimelogCallback = function(url) { addTwit(url); }; var s = document.createElement('script'); s.src = 'http://remysharp.com/tinyurlapi?callback=tinyurlTimelogCallback&url=' + url; document.body.appendChild(s); } else { addTwit(url); } })();
|