// ==UserScript== // @id neogaf_gravatars // @name NeoGAF : Monster ID Gravatars // @version 2.5.1 // @namespace hateradio))) // @author hateradio // @icon https://dl.dropbox.com/u/14626536/userscripts/i/p/neogaf_grav32.png // @icon64 https://dl.dropbox.com/u/14626536/userscripts/i/p/neogaf_grav64.png // @description Displays Gravatars (the monster variety) on NeoGAF // @include http*://*neogaf.*/forum/* // @grant none // @downloadURL none // ==/UserScript== (function () { //'use strict'; // MD5 Hash | https://github.com/blueimp/JavaScript-MD5 (function(a){function b(a,b){var c=(65535&a)+(65535&b),d=(a>>16)+(b>>16)+(c>>16);return d<<16|65535&c}function c(a,b){return a<>>32-b}function d(a,d,e,f,g,h){return b(c(b(b(d,a),b(f,h)),g),e)}function e(a,b,c,e,f,g,h){return d(b&c|~b&e,a,b,f,g,h)}function f(a,b,c,e,f,g,h){return d(b&e|c&~e,a,b,f,g,h)}function g(a,b,c,e,f,g,h){return d(b^c^e,a,b,f,g,h)}function h(a,b,c,e,f,g,h){return d(c^(b|~e),a,b,f,g,h)}function i(a,c){a[c>>5]|=128<>>9<<4)+14]=c;var d,i,j,k,l,m=1732584193,n=-271733879,o=-1732584194,p=271733878;for(d=0;d>5]>>>b%32&255);return c}function k(a){var b,c=[];for(c[(a.length>>2)-1]=void 0,b=0;b>5]|=(255&a.charCodeAt(b/8))<16&&(e=i(e,8*a.length)),c=0;16>c;c+=1)f[c]=909522486^e[c],g[c]=1549556828^e[c];return d=i(f.concat(k(b)),512+8*b.length),j(i(g.concat(d),640))}function n(a){var b,c,d="0123456789abcdef",e="";for(c=0;c>>4&15)+d.charAt(15&b);return e}function o(a){return unescape(encodeURIComponent(a))}function p(a){return l(o(a))}function q(a){return n(p(a))}function r(a,b){return m(o(a),o(b))}function s(a,b){return n(r(a,b))}function t(a,b,c){return b?c?r(b,a):s(b,a):c?p(a):q(a)}"function"==typeof define&&define.amd?define(function(){return t}):a.md5=t}(this)); var $$, gravatar; $$ = { a: function (e) {var i = 1, j = arguments.length, f = document.createDocumentFragment(); for (i; i < j; i++) { f.appendChild(arguments[i]); } e.appendChild(f); return e; }, e: function (t, o, e) { var a, b, c = document.createElement(t); if (typeof (o) === 'object') { for (a in o) { if (o.hasOwnProperty(a)) { b = a.charAt(0); switch (b) { case '_': c.style[a.substring(1)] = o[a]; break; case '$': c.setAttribute(a.substring(1), o[a]); break; default: c[a] = o[a]; break; } } } } if (e) { c.appendChild(e); } return c; }, s: function (selector, cb) { var s = document.querySelectorAll(selector), i = -1; while (++i < s.length) { if (cb(s[i], i, s) === false) { break; } } } }; gravatar = { g: { a: 'https://secure.gravatar.com/avatar/', s: '?s=200', d: '&d=monsterid' }, names: document.querySelectorAll('.postbit-details-username a'), init: function () { $$.s('.postbit-details', function (t, idx) { if (!t.querySelector('img[alt*="Avatar"]')) { var name = gravatar.names[idx].textContent; $$.a(t, $$.e('div', {className: 'postbit-details-avatar gm-gravatar'}, $$.e('a', {href: gravatar.names[idx].href, title: name + "'s Gravatar"}, $$.e('img', { width: 100, height: 100, src : gravatar.url(name), className: 'inlineimg' })))); } }); }, url: function (name) { // name = name === 'hateradio' ? '9fe8816c98441fdb4928df6540ee9f52' : md5(name); return [this.g.a, md5(name), this.g.s, this.g.d].join(''); } }; gravatar.init(); }());