The Works Burger Chooser

Choose a random burger on the works menu

Per 24-08-2016. Zie de nieuwste versie.

  1. // ==UserScript==
  2. // @name The Works Burger Chooser
  3. // @namespace https://greasyfork.org/users/649
  4. // @version 1.0.2
  5. // @description Choose a random burger on the works menu
  6. // @author Adrien Pyke
  7. // @match *://www.worksburger.com/Menu/Burger-Menu.aspx*
  8. // @grant unsafeWindow
  9. // ==/UserScript==
  10.  
  11. (function() {
  12. 'use strict';
  13.  
  14. var W = (typeof unsafeWindow === 'undefined') ? window : unsafeWindow;
  15.  
  16. var SCRIPT_NAME = 'The Works Burger Chooser';
  17.  
  18. var Util = {
  19. log: function () {
  20. var args = [].slice.call(arguments);
  21. args.unshift('%c' + SCRIPT_NAME + ':', 'font-weight: bold;color: #233c7b;');
  22. console.log.apply(console, args);
  23. },
  24. q: function(query, context) {
  25. return (context || document).querySelector(query);
  26. },
  27. qq: function(query, context) {
  28. return [].slice.call((context || document).querySelectorAll(query));
  29. },
  30. css: function(css) {
  31. var out = '';
  32. for (var rule in css) {
  33. out += rule + ':' + css[rule] + '!important;';
  34. }
  35. return out;
  36. },
  37. prepend: function(parent, child) {
  38. parent.insertBefore(child, parent.firstChild);
  39. },
  40. randomColor: function() {
  41. var letters = '0123456789ABCDEF'.split('');
  42. var color = '#';
  43. for (var i = 0; i < 6; i++) {
  44. color += letters[Math.floor(Math.random() * letters.length)];
  45. }
  46. return color;
  47. }
  48. };
  49.  
  50. var selectBurger = function() {
  51. Util.log('Choosing Random Burger...');
  52.  
  53. var burgers = Util.qq('.burger-block');
  54. burgers.forEach(function(burger) {
  55. burger.removeAttribute('style');
  56. });
  57.  
  58. var burger = burgers[Math.floor(Math.random() * burgers.length)];
  59.  
  60. burger.setAttribute('style', Util.css({
  61. 'transition': '.5s',
  62. 'box-shadow': 'inset 0 0 100px ' + Util.randomColor(),
  63. 'transform': 'scale(1.2, 1.2)',
  64. 'border-radius': '20px'
  65. }));
  66.  
  67. setTimeout(function() {
  68. burger.style.transform = 'scale(1, 1)';
  69. }, 500);
  70.  
  71. W.scroll(0, burger.offsetTop);
  72. };
  73.  
  74. if (W.BM_MODE) {
  75. selectBurger();
  76. } else {
  77. Util.log('Adding Button...');
  78. var button = document.createElement('button');
  79. button.textContent = 'Choose Random Burger';
  80. button.setAttribute('style', Util.css({
  81. 'position': 'fixed',
  82. 'bottom': '20px',
  83. 'left': '20px',
  84. 'padding': '5px',
  85. 'z-index': 99999
  86. }));
  87. button.onclick = function(e) {
  88. e.stopImmediatePropagation();
  89. e.preventDefault();
  90. selectBurger();
  91. };
  92. document.body.appendChild(button);
  93. }
  94. })();