Advertisement
Guest User

Untitled

a guest
Nov 28th, 2014
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.45 KB | None | 0 0
  1. var fs = require('fs');
  2. var colors = JSON.parse(fs.readFileSync('infofiles/usercolors.json'));
  3. var color = exports.color = {
  4.  
  5. has: function(name) {
  6. if (colors[toId(name)]) return true;
  7. return false;
  8. },
  9.  
  10. get: function(name, target) {
  11. if (colors[toId(name)]) return '#' + colors[toId(name)];
  12.  
  13. function MD5(e) {
  14. function t(e, t) {
  15. var n, r, i, s, o;
  16. i = e & 2147483648;
  17. s = t & 2147483648;
  18. n = e & 1073741824;
  19. r = t & 1073741824;
  20. o = (e & 1073741823) + (t & 1073741823);
  21. return n & r ? o ^ 2147483648 ^ i ^ s : n | r ? o & 1073741824 ? o ^ 3221225472 ^ i ^ s : o ^ 1073741824 ^ i ^ s : o ^ i ^ s
  22. }
  23.  
  24. function n(e, n, r, i, s, o, u) {
  25. e = t(e, t(t(n & r | ~n & i, s), u));
  26. return t(e << o | e >>> 32 - o, n)
  27. }
  28.  
  29. function r(e, n, r, i, s, o, u) {
  30. e = t(e, t(t(n & i | r & ~i, s), u));
  31. return t(e << o | e >>> 32 - o, n)
  32. }
  33.  
  34. function i(e, n, r, i, s, o, u) {
  35. e = t(e, t(t(n ^ r ^ i, s), u));
  36. return t(e << o | e >>> 32 - o, n)
  37. }
  38.  
  39. function s(e, n, r, i, s, o, u) {
  40. e = t(e, t(t(r ^ (n | ~i), s), u));
  41. return t(e << o | e >>> 32 - o, n)
  42. }
  43.  
  44. function o(e) {
  45. var t = "",
  46. n = "",
  47. r;
  48. for (r = 0; r <= 3; r++) n = e >>> r * 8 & 255, n = "0" + n.toString(16), t += n.substr(n.length - 2, 2);
  49. return t
  50. }
  51. var u = [],
  52. a, f, l, c, h, p, d, v, e = function(e) {
  53. for (var e = e.replace(/\r\n/g, "\n"), t = "", n = 0; n < e.length; n++) {
  54. var r = e.charCodeAt(n);
  55. r < 128 ? t += String.fromCharCode(r) : (r > 127 && r < 2048 ? t += String.fromCharCode(r >> 6 | 192) : (t += String.fromCharCode(r >> 12 | 224), t += String.fromCharCode(r >> 6 & 63 | 128)), t += String.fromCharCode(r & 63 | 128))
  56. }
  57. return t
  58. }(e),
  59. u = function(e) {
  60. var t, n = e.length;
  61. t = n + 8;
  62. for (var r = ((t - t % 64) / 64 + 1) * 16, i = Array(r - 1), s = 0, o = 0; o < n;) t = (o - o % 4) / 4, s = o % 4 * 8, i[t] |= e.charCodeAt(o) << s, o++;
  63. i[(o - o % 4) / 4] |= 128 << o % 4 * 8;
  64. i[r - 2] = n << 3;
  65. i[r - 1] = n >>> 29;
  66. return i
  67. }(e);
  68. h = 1732584193;
  69. p = 4023233417;
  70. d = 2562383102;
  71. v = 271733878;
  72. for (e = 0; e < u.length; e += 16) a = h, f = p, l = d, c = v, h = n(h, p, d, v, u[e + 0], 7, 3614090360), v = n(v, h, p, d, u[e + 1], 12, 3905402710), d = n(d, v, h, p, u[e + 2], 17, 606105819), p = n(p, d, v, h, u[e + 3], 22, 3250441966), h = n(h, p, d, v, u[e + 4], 7, 4118548399), v = n(v, h, p, d, u[e + 5], 12, 1200080426), d = n(d, v, h, p, u[e + 6], 17, 2821735955), p = n(p, d, v, h, u[e + 7], 22, 4249261313), h = n(h, p, d, v, u[e + 8], 7, 1770035416), v = n(v, h, p, d, u[e + 9], 12, 2336552879), d = n(d, v, h, p, u[e + 10], 17, 4294925233), p = n(p, d, v, h, u[e + 11], 22, 2304563134), h = n(h, p, d, v, u[e + 12], 7, 1804603682), v = n(v, h, p, d, u[e + 13], 12, 4254626195), d = n(d, v, h, p, u[e + 14], 17, 2792965006), p = n(p, d, v, h, u[e + 15], 22, 1236535329), h = r(h, p, d, v, u[e + 1], 5, 4129170786), v = r(v, h, p, d, u[e + 6], 9, 3225465664), d = r(d, v, h, p, u[e + 11], 14, 643717713), p = r(p, d, v, h, u[e + 0], 20, 3921069994), h = r(h, p, d, v, u[e + 5], 5, 3593408605), v = r(v, h, p, d, u[e + 10], 9, 38016083), d = r(d, v, h, p, u[e + 15], 14, 3634488961), p = r(p, d, v, h, u[e + 4], 20, 3889429448), h = r(h, p, d, v, u[e + 9], 5, 568446438), v = r(v, h, p, d, u[e + 14], 9, 3275163606), d = r(d, v, h, p, u[e + 3], 14, 4107603335), p = r(p, d, v, h, u[e + 8], 20, 1163531501), h = r(h, p, d, v, u[e + 13], 5, 2850285829), v = r(v, h, p, d, u[e + 2], 9, 4243563512), d = r(d, v, h, p, u[e + 7], 14, 1735328473), p = r(p, d, v, h, u[e + 12], 20, 2368359562), h = i(h, p, d, v, u[e + 5], 4, 4294588738), v = i(v, h, p, d, u[e + 8], 11, 2272392833), d = i(d, v, h, p, u[e + 11], 16, 1839030562), p = i(p, d, v, h, u[e + 14], 23, 4259657740), h = i(h, p, d, v, u[e + 1], 4, 2763975236), v = i(v, h, p, d, u[e + 4], 11, 1272893353), d = i(d, v, h, p, u[e + 7], 16, 4139469664), p = i(p, d, v, h, u[e + 10], 23, 3200236656), h = i(h, p, d, v, u[e + 13], 4, 681279174), v = i(v, h, p, d, u[e + 0], 11, 3936430074), d = i(d, v, h, p, u[e + 3], 16, 3572445317), p = i(p, d, v, h, u[e + 6], 23, 76029189), h = i(h, p, d, v, u[e + 9], 4, 3654602809), v = i(v, h, p, d, u[e + 12], 11, 3873151461), d = i(d, v, h, p, u[e + 15], 16, 530742520), p = i(p, d, v, h, u[e + 2], 23, 3299628645), h = s(h, p, d, v, u[e + 0], 6, 4096336452), v = s(v, h, p, d, u[e + 7], 10, 1126891415), d = s(d, v, h, p, u[e + 14], 15, 2878612391), p = s(p, d, v, h, u[e + 5], 21, 4237533241), h = s(h, p, d, v, u[e + 12], 6, 1700485571), v = s(v, h, p, d, u[e + 3], 10, 2399980690), d = s(d, v, h, p, u[e + 10], 15, 4293915773), p = s(p, d, v, h, u[e + 1], 21, 2240044497), h = s(h, p, d, v, u[e + 8], 6, 1873313359), v = s(v, h, p, d, u[e + 15], 10, 4264355552), d = s(d, v, h, p, u[e + 6], 15, 2734768916), p = s(p, d, v, h, u[e + 13], 21, 1309151649), h = s(h, p, d, v, u[e + 4], 6, 4149444226), v = s(v, h, p, d, u[e + 11], 10, 3174756917), d = s(d, v, h, p, u[e + 2], 15, 718787259), p = s(p, d, v, h, u[e + 9], 21, 3951481745), h = t(h, a), p = t(p, f), d = t(d, l), v = t(v, c);
  73. return (o(h) + o(p) + o(d) + o(v)).toLowerCase()
  74. }
  75.  
  76. function hslToRgb(e, t, n) {
  77. var r, i, s, o, u, a;
  78. if (!isFinite(e)) e = 0;
  79. if (!isFinite(t)) t = 0;
  80. if (!isFinite(n)) n = 0;
  81. e /= 60;
  82. if (e < 0) e = 6 - -e % 6;
  83. e %= 6;
  84. t = Math.max(0, Math.min(1, t / 100));
  85. n = Math.max(0, Math.min(1, n / 100));
  86. u = (1 - Math.abs(2 * n - 1)) * t;
  87. a = u * (1 - Math.abs(e % 2 - 1));
  88. if (e < 1) {
  89. r = u;
  90. i = a;
  91. s = 0
  92. } else if (e < 2) {
  93. r = a;
  94. i = u;
  95. s = 0
  96. } else if (e < 3) {
  97. r = 0;
  98. i = u;
  99. s = a
  100. } else if (e < 4) {
  101. r = 0;
  102. i = a;
  103. s = u
  104. } else if (e < 5) {
  105. r = a;
  106. i = 0;
  107. s = u
  108. } else {
  109. r = u;
  110. i = 0;
  111. s = a
  112. }
  113. o = n - u / 2;
  114. r = Math.round((r + o) * 255);
  115. i = Math.round((i + o) * 255);
  116. s = Math.round((s + o) * 255);
  117. return {
  118. r: r,
  119. g: i,
  120. b: s
  121. }
  122. }
  123.  
  124. function rgbToHex(e, t, n) {
  125. return toHex(e) + toHex(t) + toHex(n)
  126. }
  127.  
  128. function toHex(e) {
  129. if (e == null) return "00";
  130. e = parseInt(e);
  131. if (e == 0 || isNaN(e)) return "00";
  132. e = Math.max(0, e);
  133. e = Math.min(e, 255);
  134. e = Math.round(e);
  135. return "0123456789ABCDEF".charAt((e - e % 16) / 16) + "0123456789ABCDEF".charAt(e % 16)
  136. }
  137. var colorCache = {};
  138. var hashColor = function(e) {
  139. if (colorCache[e]) return colorCache[e];
  140. var t = MD5(e);
  141. var n = parseInt(t.substr(4, 4), 16) % 360;
  142. var r = parseInt(t.substr(0, 4), 16) % 50 + 50;
  143. var i = parseInt(t.substr(8, 4), 16) % 20 + 25;
  144. var s = hslToRgb(n, r, i);
  145. colorCache[e] = "#" + rgbToHex(s.r, s.g, s.b);
  146. return colorCache[e]
  147. }
  148. return hashColor(name);
  149. },
  150.  
  151.  
  152. set: function(name, hex) {
  153. colors[toId(name)] = hex;
  154. var finished = JSON.stringify(colors, null, 1);
  155. fs.writeFile('infofiles/usercolors.json', finished);
  156. return;
  157. },
  158.  
  159. remove: function(name) {
  160. delete colors[toId(name)];
  161. return;
  162. }
  163. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement