AMO: Randomize Contribute Button

Randomize 'Contribute' button on Mozilla Add-ons

  1. /*
  2. Randomize 'Contribute' button on Mozilla Add-ons
  3. Copyright (C) 2012 LouCypher
  4.  
  5. This program is free software: you can redistribute it and/or modify
  6. it under the terms of the GNU General Public License as published by
  7. the Free Software Foundation, either version 3 of the License, or
  8. (at your option) any later version.
  9.  
  10. This program is distributed in the hope that it will be useful,
  11. but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13. GNU General Public License for more details.
  14.  
  15. You should have received a copy of the GNU General Public License
  16. along with this program. If not, see <http://www.gnu.org/licenses/>
  17. */
  18.  
  19. // ==UserScript==
  20. // @name AMO: Randomize Contribute Button
  21. // @namespace http://userstyles.org/users/12
  22. // @description Randomize 'Contribute' button on Mozilla Add-ons
  23. // @version 1.1
  24. // @author LouCypher
  25. // @license GPL
  26. // @include https://addons.mozilla.org/*
  27. // @grant GM_addStyle
  28. // ==/UserScript==
  29.  
  30. var contributt = document.getElementById("contribute-button");
  31. if (contributt) {
  32.  
  33. var things = [
  34. { name: "drink",
  35. icon: "data:image/png;base64,\
  36. iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAABl0RVh0\
  37. U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAGUSURBVDiNnZM/a8JAGIffpEeTNDFylVYh\
  38. CZKhuLh1KFLoV3Bwahc/QYcODkIXtw5S3Do4qEvBSejQtV3bqYtgq0sVBFMQjJ7xT5Lr5KLXVPzB\
  39. LcdzD7/3uOMopbCeYrF443meiTEeUkrpZDI59H2/lcvlHtZZtHEaAHRdT5qmmbBtGyRJAowxtFot\
  40. FsoWIITkUCi01DQNFEUB27YBISRuJcjn85FEr3c2bjT2Zd+njixT2/P4KcfFIJ3+X9Dv9ye9dvv4\
  41. o9k8OJVlPwbA9QjhOqkUumQ04Nc3arXaXAyHRzIhELUs/sSyuCNCQFBVizXChgAAQNX1d8TzIACA\
  42. BgA0EvH3DKOytSAcj1+hTOZzGI3St0TC/U6nn25LpXsWC5TSP1elXH6uVat3QQyzwSqionz5lHaC\
  43. GOY7WIUQQhzHCRQENlgsFuA4znBngaqqCGOc3ElQKBQQQigqiqIZJOBYv7Fer18bhnE+GAwuBEEg\
  44. kiS9dLvdx2w2+7rOMi/Rdd3uaDTSlsvl1HXd+Xg87s9msx8W+wtNAsYdXG2+UAAAAABJRU5ErkJg\
  45. gg=="
  46. },
  47.  
  48. { name: "coffee",
  49. icon: "data:image/png;base64,\
  50. iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0\
  51. U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAANZSURBVHjaYvj//z/D379/Gf79+8fw48cP\
  52. htOnLzMcPnyRuaioWpmBgYGRAQ8A6QUIICZUIUYGSUkxBiEhftNfv37qMhABAAIIzQCwjV6vXr2M\
  53. 3rx57QOQJdzcvAyWlh4MoqIyWA0ACCAWZA4zM7Pnnz+/Uh8+vHvz7dvX9ywtHRmcnYMYPn36yXD3\
  54. 7lWsBgAEENgARkaIV79///bt7t27r4WERMX6+mbF/f/Pce3RoyfPfv789ggo/Q2bAQABBDbgwoUb\
  55. QEOYGL58+Xigrq7m7O/ff6V4ePjFFRXVDQQEJBJ///71HqhsOhBfRzcAIIDABpw5c5Xhz5+/QPyP\
  56. wd09/NuVKxeeionJfhEWFlR8+/YTx+vXz/9/+fIBEXBMrEAM8T1AAIFJFhZmBlZWViMhIYF0HT0N\
  57. O2c3J+l3796zfvvyg+3zp/ff3717tl9UVFbg27fPYEvExfUYnj69DDYAIIDABvDyciepqMlPe/ns\
  58. PvvLW2cY/v78xvDuy18GBjYOBl1DM247uyKf7dstPFas2FD08uWLyaysnMA08BdsAEAAgQ1Q01Cp\
  59. v3hkPfvldX0M4gwfGJ59Z2W49OInw9XnPxje/WJmsHd0ZsjPz2FRUpJqevXq7X1gYB8EavsM0gsQ\
  60. QGAD2DjYeZ5cP8Vw4+ozhq/izAzvfv5i+Pj1L8PPPwwMP3//Zdi1axeDqqoqQ2ZmtEBs7J/NBw6c\
  61. fzN16sV0oNZ1AAEETki/vn9nSK3sZjDyDWB48peP4f4nRoY3P5gYfvxnYhAWFmYICAhgkJOTY9i7\
  62. 9zgwpr4yJCX5izAzsziA9AIEENgF9+4+uqer4yhU0r+c4dXzpwz3bl1nePfhIwMjMLTZ2NmB6eM7\
  63. w4MH94EB9xqYIkUYenpOMnz+/OE2SC9AAEGj8cp6dXVZEyFhXgYpKWmGv//+M/x78IDh88ePDC9e\
  64. PGf4+PEDw5s3XxnY2DgZlizZ9PTUqf3T/v79vBikFyCAwAa8fPl62sKFG91dXS3stLQUGb4Do+vj\
  65. +7fAJPwJaNMXhtu3XwPD4ejJJ0+uTPz37+tJoBZQPvkH0gsQQJBAZGP/cO7cBf8dOzbnGRtbRgoK\
  66. 8kl9+vSR4f37j/8ePnz++ObN81s/fXoyB5i37qKnRIAAAwDdZWeKqj9F5wAAAABJRU5ErkJggg=="
  67. },
  68.  
  69. { name: "beer",
  70. icon: "data:image/png;base64,\
  71. iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QAAAAAAAD5Q7t/AAAACXBI\
  72. WXMAAABIAAAASABGyWs+AAAACXZwQWcAAAAQAAAAEABcxq3DAAADO0lEQVQ4y2WTz2sjZQCG32/m\
  73. m8k30yTdzaZNKouKTaVWKruHXsTNFnr14mHBgnjx7EGvetNCkWXtRf8B2S2KoiKywi4UWXtbL1o0\
  74. NQnVzaZJJ8lkMsnMZL4f+TxUkNX3D3h44X0fAgC1Wg3FYhFKqSsA3lFKVZRSMef8N6XUD8vLy3cP\
  75. Dw9RrVbx35Bms4lsNmuMRqPXtNbv2rb9smmaIIRASok4ju/3er3XLcsaCCGwubn5BIAOBgP4vr8O\
  76. 4CPG2HNaawghQAhBJpOBlHLTtu1bruu+DSD8X4OTkxP4vv+h4zjvua6LKIowHo/BGEM+n4fWGsPh\
  77. MP36m29vx1F0s7iw8Pv+nds4OjoCAJiUUrKxseEUCoXrhmHk0zSF4zhgjCFNU4RhiMlkQovFS1dL\
  78. pZJ92m4frK+vi62tLRwcHIDU63VUKhX89ODBB+WlpfcBII5jWJaFs7MzNBoNSClRKpVAKQ1yudwf\
  79. Usovjo+PP3UcJzFWVlZw7959tE/bHaUUoiiC53ngnCObzcJ1XVBKwRgD51xyzp+2bXunUCjcWFtb\
  80. AwWAIAgQR5EQQqDVeox+vw/HmYOUAr1eH74/gEkppsn08+Fw+N3i4uJXWutXt7e371AA6Pc9TJOE\
  81. h8EAcdhBBj5s7SJjKjxVmKKcJZhzR6j3gknDS37lnA8syypXq1VGASAMfHCRCjOp6etXGaGUwXY6\
  82. MAwLq8+UIZMpuh5HrT7mYZiao9GIuq4rhBCKAoAGQIgpkDzSltTEcgPQjAFCLMjEBg+HmI7mIMWM\
  83. U1O/oLUuJkny5/7+/pQCAPkHIJKzmUoCI3NxBJp5HiA2ZmkLKupATMp4dGreUGTuDcMwZlEU3d3Z\
  84. 2dH0/E4ExIBQQmk5kZhFCYz5ADAYZvEUciwgUoHCpaXV3IWSxxjb9Tzveynl+QrnECPtRUyVxnnL\
  85. aBPoaABi2EgnC5hEAv0kBxDz4yhKPul2ux1Kqdzd3T0HaK1hmWbt2Lv4sDuef6Vy+QKetRahZjPU\
  86. T9potmwEid2IU/0lScetvb29f2UCAJ7GePHKtcde96+3GHPflLmFa3z+8pKQ0ogzmR7JZh9SHX7W\
  87. /OXHn1dWX3pCpr8BQw+yP2VtRpwAAAAldEVYdGNyZWF0ZS1kYXRlADIwMDktMDktMjhUMTE6Mjc6\
  88. NTUtMDQ6MDDs/LGJAAAAJXRFWHRtb2RpZnktZGF0ZQAyMDA5LTA3LTAzVDEyOjQ1OjE4LTA0OjAw\
  89. HcBz2wAAAABJRU5ErkJggg=="
  90. },
  91.  
  92. { name: "donut",
  93. icon: "data:image/png;base64,\
  94. iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADMklEQVR4nG2TX2hbVQCHv3POzbm5\
  95. N03SpGmStq7OtaNr98fOIkZ9qQ+i4FCfRhFEBR/0RWETGaigIliLjD2oWDYoQ7cVxxz+xTmwm0xW\
  96. BVmnMsvY2Fpc27TWtkmbe5P03uOTINu+tx98/N4+wW14qWvg3Z2t3YW2tg0b/aDuX/PnJn+a+fW7\
  97. z37+cvhmV/x/vN7/wshj6u4B7SSiyXSceEpjrDqh8alOOUzrpeVP574/cHDsk7duOTj01HsX+nJe\
  98. rww6mFfN7KgWUWkXIR1MaAi8CJ4oEqo0P85fPvPsyN6HABTA0PN7xvrdbYVsY0iDF8O2fWLNVVS2\
  99. ARP6GAWiRaO0jRaa9mhm447OnsIXEz8cUV3Nd9739oP3vpMJ81ihIIgGJDpSRLpyQB3PW8YzBjn/\
  100. D3OBhzSKqZYEval85+XSzKR6pf+ZD7abrVuidoDctIhMNBHpbsbKx6lfnYbSCmJmieDGIiYBTtbH\
  101. iUWwVEB7blOntc3O9dreOiQd8DYgHJ96xaO+OsWf81/5s5cWlreu3ZFfbmwnZVfRToZoIo78O6Sn\
  102. Kb9F5mvkZb0MMsCEJURGY1YqTPzytf/c8OlHd4+ebTm/fmlSTi0gaxmUlSQsB4SRJaKJKlKEdaAE\
  103. rEPNwSymYFZx7mLtzJUbK2cB/li0JpVySZQ9pKMQbWsEWrNGiKy6li+kS6BqhNLFrKwi1iweqRUK\
  104. T7Y98DJAQd/Tm+3Zie4oY8pFZNmgmzLMrpavi8+ffu1Ch0r3NsYbcVuTCD+ESJywElIqTlMLYySq\
  105. EnuDi8gZgrRFGNHYCZvBE8cGlUq4PL65ZVctEidiBML4VByNdi3cbJJYs4uVtpBJCbkkbLaxIppS\
  106. 6C3vfnXvw/LouVPDF0V5XKfAWBVo0LjuKjIWIKIhmDLVtEa2Oui7UiQ7ulHxJG8eGtkHIAF2vT90\
  107. /2/FqXGhDVgBUtoIHWJkHZW1iLUb9PY8IuOwcq3ofzh65MDhk8eHb4npoxf3HHuiu2/AiTugFMJS\
  108. GFXFaotj3Ay/X7k68cb+/fvGxs+fum2N/3F0aPBkX3dXwY7Y0Yqp+38tLF4/OHri4+PffnP4Zvdf\
  109. ODY4wwDjrcYAAAAASUVORK5CYII="
  110. },
  111.  
  112. { name: "hamburger",
  113. icon: "data:image/png;base64,\
  114. iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAAAZiS0dE\
  115. AAAAAAAA+UO7fwAAAAlwSFlzAAAASAAAAEgARslrPgAAAAl2cEFnAAAAEAAAABAAXMatwwAAA0hJ\
  116. REFUOMtdk8trXFUAh797z9x7JzPpTDPTxCaZNMFqa7GNJdXGoiBYsJZGQURwoehCRHAjgiiC6B/g\
  117. yoUFwQoiuKvURyE+FkqrBELVJmlsTZpJ85xXOjOZ+77nHBcipH6r3+Ljt/sM/se798PGFsZzz5Lt\
  118. HSSTSCgv0nnvM/wDRfTFxp2+8d+Y+9hhcyNMHxwbe7S77+gZK9M3aohUQcW+Dt1mtVlZni4vLn39\
  119. 7feLV4YGMsmbX3j/HuzZAwuf9nJzrTW4/8iT72f7H3/e7B7ZZZgCpIeWETL28dtVquXZ2o25+U8u\
  120. Ta1/2FdMN984t4I4/04PP15u5B88dvyjwt0TL4lMn2PIJiRboDropIMKK6ioAabKKikf0Ulsnfuu\
  121. 9vPT470ydep0ntuf61Om6nnGTCJwb4GsoA0DMNBRHRU0UJGBEZtks5bI55yXTx7LfXXiYP5X03io\
  122. bAS+MxY1a47amoXtBQjqEGyCfxPCGoS3kd4mcWeDsLWCTtxi2hKjEy+USAHUO8JrVFYp7vbIFAqY\
  123. 6SyYEq1cVBKgEhMdK+JOG7+5TeDZqu3pgL05Ulq/pl9/7MvWUMGhuLuCIZvYGQdDKFAuUkqkShMH\
  124. grAdEPqwUZFyZsntnH3xEmLy/LT9ymn16uzf9lEhUtiGC9E2OuggPY/EDwk7IW47YqspWFh1WK35\
  125. YvgpS70lBn9IDXeTPXJADwVRwNRMnmorR6kY0dMVk04ptAY3FNQ7Nst1m7VazMmHA6J7usbtW95Q\
  126. 6uoceupsd1w6YREecllaybLSyJK2wBaggSiBMNZoHbNv0KPeb/H7dkZ0JUkqNd8mLF9R1Yx3F+o+\
  127. l/2lOsr08DyLMBAoBVprolDjS8UvqourrR55XTnX5HqjJQDZJ5Oo5Ibjw1Wr0Foyqd1OiK0YlZV4\
  128. UrIeGyzvMrh2xGHfQJoH5qOL0xcqbye/VZdECbiMXk3CYCYrYnsox4iTM+0Lh/NMHUijBgSjg4pS\
  129. KUXGdCJ7Xk7+can1wfUbrT8BaewIyyz02HsnDnc/ce+Ic6Y8kjlkZPTu4y3fzLVlp9o0F/5ak5M/\
  130. zXa+ud7wlwF5R407sBzD3HOwx+7vzVvFWBii4qpmuR6shXFSA4Kd8j9rhLeN1CHvhgAAACJ6VFh0\
  131. U29mdHdhcmUAAHjac0zJT0pV8MxNTE8NSk1MqQQAL5wF1K4MqU0AAAAASUVORK5CYII=",
  132. pos: "center center"
  133. },
  134.  
  135. { name: "car",
  136. icon: "data:image/png;base64,\
  137. iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAADyUlEQVR4nO2UXWhbdRjGn///fCSx\
  138. bdJ8rWtSugxX00YG4o2b64ZgEdGBsKETB+rsJuKF3nglggrqxbAb4q4EEcSKrGxOKQxRL3QzXfel\
  139. taPtuqZt2ibNR3OSk4+Tk/PxHq+82BhzIOLNftfv877wwu8B7nGPe/znsLsZGh8fvy+Tybwjy7K/\
  140. UqmUCqVyplrXE+Vi5o2vR0edV1593dNhtryffPF5/tas+E/Lfzny2oFlpfReKBLud8suEABXhw8c\
  141. DiQW33761ClvONL7wLXJc21vR6La3i2xdPDBxFnZ5xvZOvJx9o4Hjg8feupCd/gbdeG6A4eRWmtA\
  142. cLcz2eVxMukV9lCib8+OPY9DFGWUG5rzmW15rpU2+o+J4oAQCh2Ze/nQ7ptelD05Jnpk+QnHtp8x\
  143. 8vmnl6b/jI5OT1M1FuNShxeVeh3edh+ZLZ27JYk2hQKcbdSgSRIpi/N8sFrB7lCIKmqJG1oDrpr+\
  144. EQOAP44dd8cSiQ+YKA7bqtrZmJ937JLCrPV16MUCKeUyv1ypYNGyURYF0lwyj27ro+xqmh+u1mCH\
  145. g5SI9XHDMtFcXqIz9Qb/7sYM3vT5X2QAcPLo0R93uT1DAuewSgpaxQI11ta4kctB0FvkEHHLMGCb\
  146. BpgkkqvDy22Ph5xOP2ecQTIM0op5rqsq1r1+Or9zB19cWMDK+V8jYvKxoYOlVGqolMs7jkt2GNmw\
  147. yyoz8nkya1UQOYxxTr7NEQiMo2w3WXt4EzUrChM2CqSXFeiNGtONFhmmyWZ6IuzZ/fvpzLen+UTy\
  148. N6/oX1zpC7ncsMMBR0+n+UK5DOngCxTY0sspm4P7xAmKPPIoP7u2irHfr2Ib0+ilrgqv6RoZjsV1\
  149. 04BmW44J4mmL1i/VtQB+/sk1MTGRUlW1yK7G4gMjrdpMP5EzGO1mlmUi26iR1dS4rNWwtT1Mk/EB\
  150. Pg6CptWxPHnR+TIcYkWr6RhksVXbyV82rdlLLXs6R05GkuVWwO9niqJ8b5rmsvjw8vXZsfv73pq0\
  151. zA8Pp1LykzCx082Z2dtL6mwRRdJYss1Nw88dQF1rsE9n5+xks5q72LLmrpj2TIGcAgAVwBKAOdMw\
  152. svl8vnmTaM+nbnzl54K6z9uxb7vU1h8Eeng6J7XcXszqhhOMRHkwGISiKFixrMn36/oPADQAawDm\
  153. AKQBVAHQrS797YEMYDOAHgBRAF1dnEfCnAcqotTdP7hrbzwe51NTU2oymXyXiK4AWACwAcC6k6y3\
  154. 6yIBgAeAD0AQQFAQhC6v19tZrVbP2ba9CKB5m9y/4q5K8X/hL0DF8v+cqeYsAAAAAElFTkSuQmCC",
  155. pos: "bottom center",
  156. margin: "6px"
  157. }
  158. ]
  159.  
  160. var num = parseInt(Math.random() * things.length);
  161. contributt.innerHTML = "<b></b>Buy me a " + things[num].name;
  162. GM_addStyle(".button.contribute.prominent b {\n"
  163. + " background-image: url('" + things[num].icon + "');\n"
  164. + " background-position: "
  165. + (things[num].pos ? things[num].pos : "center 2px") + ";\n"
  166. + " margin-right: "
  167. + (things[num].margin ? things[num].margin : "0") + ";\n"
  168. + "}")
  169. }