「またOperaでググってる」とTwitterに投稿するスクリプト
自動でやるのはやっぱりマゾすぎるので、クリックするまで投稿しないバージョンを作りました。一番下に置いてあります。
の続き。
os0x さんの助言を受けて、オリジナルの「また Opera でニコニコ動画みてる」スクリプトを改変した「また Opera でググってる」スクリプトを書いてみた。
これは何?
Opera の検索欄やキーワードから Google 検索したとき、検索した語句を Twitter に瞬時にポストしてくれるマゾっ気の強いスクリプトです。
使い方は以下の通り。(Twitter には事前にログインしている必要があります)
- 下記の UserJavaScript を、自分のスクリプトフォルダに保存してください。
- Opera の検索エンジンの編集から、Google 検索のアドレス中に sourceid=opera というのが含まれていることを確認して下さい。(デフォルトの google.com 検索には含まれていますが、自前で登録したものには含まれていないと思います)
- Opera のアドレス欄で「g オペラ 最強」などと検索してください。
- 下のように、Twitter のアイコンが出て、アイコンの色が黒から水色に変ったら投稿終了です。お疲れ様でした。
あとは Twitter で確認すれば反映されているのが分かります。
// ==UserScript== // @name mata opera de google // @include http://www.google.co.jp/search* // @include http://www.google.com/search* // @include http://twitter.com/public_timeline?from=userjs // ==/UserScript== (function() { if (/www\.google\.co(m|\.jp)\/search.*sourceid=opera/.test(location.href)) { var google = function() { var prs = document.getElementById('prs'); if (!prs) return; var result = prs.nextSibling; if (!result) return; var object = document.createElement('object'); object.setAttribute('style', 'margin:0;padding:0;border:none;height:12px;width:12px;visibility:hidden;'); object.id = 'mataoperadegoogle'; setTimeout(function() { object.addEventListener('load', function() { object.contentWindow.postMessage(encodeURIComponent([ '['+result.textContent+']', location.href ].join(' ')), '*'); setTimeout(function() { object.style.visibility = 'visible'; }, 100); }, false); object.data = 'http://twitter.com/public_timeline?from=userjs'; }, 0); result.insertBefore(object, result.firstChild); } if (window.opera) document.addEventListener('DOMContentLoaded', google, false); else google(); } else if (location.host == 'twitter.com') { if (window.opera) document.addEventListener('DOMContentLoaded', function() { if (document.body) { document.body.innerHTML = ''; document.body.setAttribute('style', 'margin:0;padding:0;background-image:url("data:image/gif;base64,' + 'R0lGODlhEAAQAOYAAP///3d3d/7+/vr6+rm5ubW1tfv7+/39/fPz83Z2durq6vn5+fz8/OLi4q6u' + 'rq2trevr67a2tvf39+7u7r6+vrq6upWVlXt7e+/v74mJic/Pz3h4eHp6esHBwfj4+OXl5YSEhI2N' + 'jfDw8Ojo6MbGxqurq87OzqqqqpSUlN3d3fb29t/f3+np6dHR0fT09NXV1cnJyfHx8eHh4ampqcLC' + 'wtDQ0KGhoYKCgtfX17+/v9vb27Ozs5ycnMzMzMTExKWlpaCgoOPj483Nzezs7MfHx7u7uwAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5' + 'BAAAAAAALAAAAAAQABAAAAesgAAABwuFBoKIiYIDLCsfCwKKiggtLxoYh5KIIkQwJBMGA6IGB4oY' + 'HT40OEENrQ0iDIkTFRQUFQS4uEUqiUM7EQXBBcARDwqJCicOyw8ODw8lFLGIIzY/QDoSCC4IMaWJ' + 'HxY8FjLTAJGKIxkhID0C7wLfiRIhGxs3HTUmQhoTigI5EgQYOFAgCASJBDCYIZBgwRSKDgggkYED' + 'hwsXAqDwIEnAAAkQFEAI6SFTIAA7' + '");-o-background-size:12px 12px;text-align:left;height:16px;width:16px;overflow:hidden;'); } }, false); document.addEventListener('message', function(e) { if (e.domain != 'www.google.com' && e.domain != 'www.google.co.jp') return; var url = 'http://twitter.com/statuses/update.json'; var x = new XMLHttpRequest(); x.open('POST', url, true); x.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); x.onreadystatechange = function() { if (x.readyState == 4 && x.status == 200) { document.body.style.backgroundImage = 'url(data:image/gif;base64,' + 'R0lGODlhEAAQAPYAAP////7+/gDe7nzq9QDc7f3+/mjn8+n6/Hbp9Gfn8wjd7fj7+/z9/f/9/P79' + '/cj2+/39/fn8/Cni8Nj4+8f2+9n4+975/Hfq9Qfd7f7//yPh7wDa7Pn7/ITr9vz+/vr8/WPm86Dx' + '+Drj8Bjg72Dn8/H7+/P7/Nf5/Pv9/bTz+fj6+771+gDd7hne7v/+/ljm8l7n89X3+v7//vr7+nXp' + '9FDl8Zru9+f6/XXq9ZPu9/X6+4bt9vL8/Zbu98L0++b6+7Hx+PX8/Ivs9t/4+zji8OH5/Pf8/Iru' + '9qTx+PD7/ZTu9+H5+3zq9p7x+ADb7Pb7+/H6/IXs9RTg74Dq9QDb7X7q9dT4/Nr4+6bx+Knx+OL6' + '/Or6/Hbp9X/q9XHp9c33/Pn8/fv8/NT2+vr9/uP5+wDg78/2+qXw+Pj8/Gbn89z4+8r2+/z8/IXr' + '9e37/ZDt9vr6+fj+/sb2+gDf76Lx+Izs9kbk8dj3+07k8QDc7Lz0+f///vT7/Dni8Gjo8wAAACH5' + 'BAAAAAAALAAAAAAQABAAAAfFgAAAKDp8T2iCiYoAGUZWPl9BBYuKAQdZQGdFEZSJAWQ9NjkWMwsL' + 'KhwMlUtCb3Upaw8UFA9aH4pDXR1tVQMDTL5TbopqXhcICDQ4XAgXaSeedyQGfgYJ1gkgUXGJLjE1' + 'L3h6SQdbBz9jintmInZ9cmEZAQEeiwFiGhIjTQ0QDg5sZFQqIWFOGSlHsNAJgcTCogY7nAgQQKBi' + 'HiotbigqAAbGBhYTQ25YsYgBBCUaMGBQoIAAER6UCsCBcmVChQoTTHACEAgAOw==)'; } } x.send('status=\u307E\u305FOpera\u3067\u30b0\u30b0\u3063\u3066\u308b\u3002' + e.data); }, false); } })();
自分は Google 検索のキーワードを「ge」にしているのだけど、前に間違えて「tw」と打っちゃって Twitter に投稿しちゃってウギャーとなることが何度かあったので、みんなにもこの恥らいを分かってほしかった。
ご利用は自己責任で。
クリックしないと投稿しないバージョン
黒い Twitter アイコンをクリックして投稿するバージョンも作りました。
「また Opera でググってた」と過去形になります。
// ==UserScript== // @name mata opera de google // @include http://www.google.co.jp/search* // @include http://www.google.com/search* // @include http://twitter.com/public_timeline?from=userjs // ==/UserScript== (function() { if (/www\.google\.co(m|\.jp)\/search.*sourceid=opera/.test(location.href)) { var google = function() { var prs = document.getElementById('prs'); if (!prs) return; var result = prs.nextSibling; if (!result) return; var object = document.createElement('object'); object.setAttribute('style', 'margin:0;padding:0;border:none;height:12px;width:12px;visibility:hidden;'); object.id = 'mataoperadegoogle'; setTimeout(function() { object.addEventListener('load', function() { object.contentWindow.postMessage(encodeURIComponent([ '['+result.textContent+']', location.href ].join(' ')), '*'); setTimeout(function() { object.style.visibility = 'visible'; }, 100); }, false); object.data = 'http://twitter.com/public_timeline?from=userjs'; }, 0); result.insertBefore(object, result.firstChild); } if (window.opera) document.addEventListener('DOMContentLoaded', google, false); else google(); } else if (location.host == 'twitter.com') { if (window.opera) document.addEventListener('DOMContentLoaded', function() { if (document.body) { document.body.innerHTML = ''; document.body.setAttribute('style', 'margin:0;padding:0;background-image:url("data:image/gif;base64,' + 'R0lGODlhEAAQAOYAAP///3d3d/7+/vr6+rm5ubW1tfv7+/39/fPz83Z2durq6vn5+fz8/OLi4q6u' + 'rq2trevr67a2tvf39+7u7r6+vrq6upWVlXt7e+/v74mJic/Pz3h4eHp6esHBwfj4+OXl5YSEhI2N' + 'jfDw8Ojo6MbGxqurq87OzqqqqpSUlN3d3fb29t/f3+np6dHR0fT09NXV1cnJyfHx8eHh4ampqcLC' + 'wtDQ0KGhoYKCgtfX17+/v9vb27Ozs5ycnMzMzMTExKWlpaCgoOPj483Nzezs7MfHx7u7uwAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5' + 'BAAAAAAALAAAAAAQABAAAAesgAAABwuFBoKIiYIDLCsfCwKKiggtLxoYh5KIIkQwJBMGA6IGB4oY' + 'HT40OEENrQ0iDIkTFRQUFQS4uEUqiUM7EQXBBcARDwqJCicOyw8ODw8lFLGIIzY/QDoSCC4IMaWJ' + 'HxY8FjLTAJGKIxkhID0C7wLfiRIhGxs3HTUmQhoTigI5EgQYOFAgCASJBDCYIZBgwRSKDgggkYED' + 'hwsXAqDwIEnAAAkQFEAI6SFTIAA7' + '");-o-background-size:12px 12px;text-align:left;height:16px;width:16px;overflow:hidden;'); } }, false); document.addEventListener('message', function(e) { if (e.domain != 'www.google.com' && e.domain != 'www.google.co.jp') return; document.body.onclick = function(){ var url = 'http://twitter.com/statuses/update.json'; var x = new XMLHttpRequest(); x.open('POST', url, true); x.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); x.onreadystatechange = function() { if (x.readyState == 4 && x.status == 200) { document.body.style.backgroundImage = 'url(data:image/gif;base64,' + 'R0lGODlhEAAQAPYAAP////7+/gDe7nzq9QDc7f3+/mjn8+n6/Hbp9Gfn8wjd7fj7+/z9/f/9/P79' + '/cj2+/39/fn8/Cni8Nj4+8f2+9n4+975/Hfq9Qfd7f7//yPh7wDa7Pn7/ITr9vz+/vr8/WPm86Dx' + '+Drj8Bjg72Dn8/H7+/P7/Nf5/Pv9/bTz+fj6+771+gDd7hne7v/+/ljm8l7n89X3+v7//vr7+nXp' + '9FDl8Zru9+f6/XXq9ZPu9/X6+4bt9vL8/Zbu98L0++b6+7Hx+PX8/Ivs9t/4+zji8OH5/Pf8/Iru' + '9qTx+PD7/ZTu9+H5+3zq9p7x+ADb7Pb7+/H6/IXs9RTg74Dq9QDb7X7q9dT4/Nr4+6bx+Knx+OL6' + '/Or6/Hbp9X/q9XHp9c33/Pn8/fv8/NT2+vr9/uP5+wDg78/2+qXw+Pj8/Gbn89z4+8r2+/z8/IXr' + '9e37/ZDt9vr6+fj+/sb2+gDf76Lx+Izs9kbk8dj3+07k8QDc7Lz0+f///vT7/Dni8Gjo8wAAACH5' + 'BAAAAAAALAAAAAAQABAAAAfFgAAAKDp8T2iCiYoAGUZWPl9BBYuKAQdZQGdFEZSJAWQ9NjkWMwsL' + 'KhwMlUtCb3Upaw8UFA9aH4pDXR1tVQMDTL5TbopqXhcICDQ4XAgXaSeedyQGfgYJ1gkgUXGJLjE1' + 'L3h6SQdbBz9jintmInZ9cmEZAQEeiwFiGhIjTQ0QDg5sZFQqIWFOGSlHsNAJgcTCogY7nAgQQKBi' + 'HiotbigqAAbGBhYTQ25YsYgBBCUaMGBQoIAAER6UCsCBcmVChQoTTHACEAgAOw==)'; } } x.send('status=\u307e\u305fOpera\u3067\u30b0\u30b0\u3063\u3066\u305f\u3002' + e.data); } }, false); } })();