// ==UserScript== // @name Twitter OAuth Caution // @namespace http://github.com/mooz/ // @description Display caution when application requests a 'write' access // @include http://twitter.com/oauth/authorize?* // @include http://twitter.com/oauth/authenticate?* // @include https://twitter.com/oauth/authorize?* // @include https://twitter.com/oauth/authenticate?* // @include http://api.twitter.com/oauth/authorize?* // @include http://api.twitter.com/oauth/authenticate?* // @include https://api.twitter.com/oauth/authorize?* // @include https://api.twitter.com/oauth/authenticate?* // ==/UserScript== (function () { var msgElem = document.querySelector(".signin-content > h4"); var msgText = msgElem.textContent; var writeRequired = ["update", "\u66F4\u65B0"].some(function (w) {return msgText.indexOf(w) !== -1}); var readOnly = ["to access your", "\u306B\u30A2\u30AF\u30BB\u30B9\u3057\u3088\u3046\u3068"].some(function (w) {return msgText.indexOf(w) !== -1}); if (!writeRequired && !readOnly) return; function p(text, style, _p) { _p = document.createElement("p"); _p.textContent = text; _p.setAttribute("style", style); return _p; }; var caution = document.createElement("div"); var bgcolor = writeRequired?'#ff0000':'#fbd71c'; caution.setAttribute("style", ['-moz-border-radius : 3px' ,'border-radius : 3px' ,'padding : 10px' ,'margin : 10px' ,'background-color : '+bgcolor ,'-moz-box-shadow : 0px 0px 3px #353535' ,'-webkit-box-shadow : 0px 0px 3px #353535' ,'box-shadow : 0px 0px 3px #353535' ,'text-align : center' ].join(';')); caution.appendChild(p("CAUTION", "color : #000000; font-weight : bold; font-size : 40px;")); var accessType = writeRequired?'Write':'Read Only'; caution.appendChild(p("This application is requesting a '"+accessType+"' access", "color : #000000; font-size : 20px;")); msgElem.parentNode.insertBefore(caution, msgElem.nextSibling); })();