-
-
Save bakkot/844abe61318432ab9387c2beea55a394 to your computer and use it in GitHub Desktop.
A golden crown, that men shall tremble to behold
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ==UserScript== | |
// @name SSC-crown | |
// @namespace http://github.com/bakkot/SlateStarComments | |
// @description A golden crown, that men shall tremble to behold! | |
// @include http://slatestarcodex.com/* | |
// ==/UserScript== | |
let crown = 'data:image/png;base64,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' | |
let md5 = (function () { | |
// md5 implementation from https://gist.github.com/MichaelPote/3f0cefaaa9578d7e30be | |
var md5cycle = function (x, k) { | |
var a = x[0], | |
b = x[1], | |
c = x[2], | |
d = x[3]; | |
a = ff(a, b, c, d, k[0], 7, -680876936); | |
d = ff(d, a, b, c, k[1], 12, -389564586); | |
c = ff(c, d, a, b, k[2], 17, 606105819); | |
b = ff(b, c, d, a, k[3], 22, -1044525330); | |
a = ff(a, b, c, d, k[4], 7, -176418897); | |
d = ff(d, a, b, c, k[5], 12, 1200080426); | |
c = ff(c, d, a, b, k[6], 17, -1473231341); | |
b = ff(b, c, d, a, k[7], 22, -45705983); | |
a = ff(a, b, c, d, k[8], 7, 1770035416); | |
d = ff(d, a, b, c, k[9], 12, -1958414417); | |
c = ff(c, d, a, b, k[10], 17, -42063); | |
b = ff(b, c, d, a, k[11], 22, -1990404162); | |
a = ff(a, b, c, d, k[12], 7, 1804603682); | |
d = ff(d, a, b, c, k[13], 12, -40341101); | |
c = ff(c, d, a, b, k[14], 17, -1502002290); | |
b = ff(b, c, d, a, k[15], 22, 1236535329); | |
a = gg(a, b, c, d, k[1], 5, -165796510); | |
d = gg(d, a, b, c, k[6], 9, -1069501632); | |
c = gg(c, d, a, b, k[11], 14, 643717713); | |
b = gg(b, c, d, a, k[0], 20, -373897302); | |
a = gg(a, b, c, d, k[5], 5, -701558691); | |
d = gg(d, a, b, c, k[10], 9, 38016083); | |
c = gg(c, d, a, b, k[15], 14, -660478335); | |
b = gg(b, c, d, a, k[4], 20, -405537848); | |
a = gg(a, b, c, d, k[9], 5, 568446438); | |
d = gg(d, a, b, c, k[14], 9, -1019803690); | |
c = gg(c, d, a, b, k[3], 14, -187363961); | |
b = gg(b, c, d, a, k[8], 20, 1163531501); | |
a = gg(a, b, c, d, k[13], 5, -1444681467); | |
d = gg(d, a, b, c, k[2], 9, -51403784); | |
c = gg(c, d, a, b, k[7], 14, 1735328473); | |
b = gg(b, c, d, a, k[12], 20, -1926607734); | |
a = hh(a, b, c, d, k[5], 4, -378558); | |
d = hh(d, a, b, c, k[8], 11, -2022574463); | |
c = hh(c, d, a, b, k[11], 16, 1839030562); | |
b = hh(b, c, d, a, k[14], 23, -35309556); | |
a = hh(a, b, c, d, k[1], 4, -1530992060); | |
d = hh(d, a, b, c, k[4], 11, 1272893353); | |
c = hh(c, d, a, b, k[7], 16, -155497632); | |
b = hh(b, c, d, a, k[10], 23, -1094730640); | |
a = hh(a, b, c, d, k[13], 4, 681279174); | |
d = hh(d, a, b, c, k[0], 11, -358537222); | |
c = hh(c, d, a, b, k[3], 16, -722521979); | |
b = hh(b, c, d, a, k[6], 23, 76029189); | |
a = hh(a, b, c, d, k[9], 4, -640364487); | |
d = hh(d, a, b, c, k[12], 11, -421815835); | |
c = hh(c, d, a, b, k[15], 16, 530742520); | |
b = hh(b, c, d, a, k[2], 23, -995338651); | |
a = ii(a, b, c, d, k[0], 6, -198630844); | |
d = ii(d, a, b, c, k[7], 10, 1126891415); | |
c = ii(c, d, a, b, k[14], 15, -1416354905); | |
b = ii(b, c, d, a, k[5], 21, -57434055); | |
a = ii(a, b, c, d, k[12], 6, 1700485571); | |
d = ii(d, a, b, c, k[3], 10, -1894986606); | |
c = ii(c, d, a, b, k[10], 15, -1051523); | |
b = ii(b, c, d, a, k[1], 21, -2054922799); | |
a = ii(a, b, c, d, k[8], 6, 1873313359); | |
d = ii(d, a, b, c, k[15], 10, -30611744); | |
c = ii(c, d, a, b, k[6], 15, -1560198380); | |
b = ii(b, c, d, a, k[13], 21, 1309151649); | |
a = ii(a, b, c, d, k[4], 6, -145523070); | |
d = ii(d, a, b, c, k[11], 10, -1120210379); | |
c = ii(c, d, a, b, k[2], 15, 718787259); | |
b = ii(b, c, d, a, k[9], 21, -343485551); | |
x[0] = add32(a, x[0]); | |
x[1] = add32(b, x[1]); | |
x[2] = add32(c, x[2]); | |
x[3] = add32(d, x[3]); | |
} | |
var cmn = function (q, a, b, x, s, t) { | |
a = add32(add32(a, q), add32(x, t)); | |
return add32((a << s) | (a >>> (32 - s)), b); | |
} | |
var ff = function (a, b, c, d, x, s, t) { | |
return cmn((b & c) | ((~b) & d), a, b, x, s, t); | |
} | |
var gg = function (a, b, c, d, x, s, t) { | |
return cmn((b & d) | (c & (~d)), a, b, x, s, t); | |
} | |
var hh = function (a, b, c, d, x, s, t) { | |
return cmn(b ^ c ^ d, a, b, x, s, t); | |
} | |
var ii = function (a, b, c, d, x, s, t) { | |
return cmn(c ^ (b | (~d)), a, b, x, s, t); | |
} | |
var md51 = function (s) { | |
var txt = '', | |
n = s.length, | |
state = [1732584193, -271733879, -1732584194, 271733878], | |
i; | |
for (i = 64; i <= s.length; i += 64) { | |
md5cycle(state, md5blk(s.substring(i - 64, i))); | |
} | |
s = s.substring(i - 64); | |
var tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; | |
for (i = 0; i < s.length; i++) | |
tail[i >> 2] |= s.charCodeAt(i) << ((i % 4) << 3); | |
tail[i >> 2] |= 0x80 << ((i % 4) << 3); | |
if (i > 55) { | |
md5cycle(state, tail); | |
for (i = 0; i < 16; i++) tail[i] = 0; | |
} | |
tail[14] = n * 8; | |
md5cycle(state, tail); | |
return state; | |
} | |
var md5blk = function (s) { | |
var md5blks = [], i; | |
for (i = 0; i < 64; i += 4) { | |
md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24); | |
} | |
return md5blks; | |
} | |
var hex_chr = '0123456789abcdef'.split(''); | |
var rhex = function (n) { | |
var s = '', | |
j = 0; | |
for (; j < 4; j++) | |
s += hex_chr[(n >> (j * 8 + 4)) & 0x0F] + hex_chr[(n >> (j * 8)) & 0x0F]; | |
return s; | |
} | |
var hex = function (x) { | |
for (var i = 0; i < x.length; i++) | |
x[i] = rhex(x[i]); | |
return x.join(''); | |
} | |
var add32 = function (a, b) { | |
return (a + b) & 0xFFFFFFFF; | |
} | |
return function (s) { | |
return hex(md51(s)); | |
} | |
})(); | |
let user = document.cookie.match(/_author_email[^=]*=(.*)($|;)/)[1]; | |
if (user) { | |
let hash = md5(decodeURIComponent(user)); | |
let img = document.createElement('img'); | |
img.src = crown; | |
img.style.position = 'absolute'; | |
img.style.top = '-13px'; | |
img.style.left = '0px'; | |
img.style.zIndex = '1'; | |
img.style.width = '50px'; | |
let avatars = Array.from(document.querySelectorAll('.avatar')); | |
for (let av of avatars) { | |
if (av.src.match(hash)) { | |
av.parentNode.insertBefore(img.cloneNode(), av); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment