Google Search Category Sanity

Adds a bar of search category links that STAY IN ORDER!

  1. // ==UserScript==
  2. // @name Google Search Category Sanity
  3. // @namespace https://greasyfork.org/en/users/1148791-vuccala
  4. // @icon https://archive.org/download/userscripticon/userscripticon.png
  5. // @author Vuccala
  6. // @version 0.7
  7. // @description Adds a bar of search category links that STAY IN ORDER!
  8. // @match https://*.google.*/search*
  9. // @grant none
  10. // @license MIT
  11. // @run-at document-body
  12. // ==/UserScript==
  13.  
  14. (function() {
  15. 'use strict';
  16.  
  17. // Get the current URL's query string
  18. const queryString = window.location.search;
  19. const urlParams = new URLSearchParams(queryString);
  20. const copiedQueryString = urlParams.get('q');
  21.  
  22. const goog = window.location.origin;
  23.  
  24. // Create the links
  25. const textsearch = document.createElement('a');
  26. textsearch.href = `${goog}/search?q=${copiedQueryString}&tbs=li:1`;
  27. textsearch.textContent = 'Web';
  28.  
  29. const imagesearch = document.createElement('a');
  30. imagesearch.href = `${goog}/search?q=${copiedQueryString}&tbm=isch`;
  31. imagesearch.textContent = 'Images';
  32.  
  33. const videosearch = document.createElement('a');
  34. videosearch.href = `${goog}/search?q=${copiedQueryString}&tbm=vid`;
  35. videosearch.textContent = 'Videos';
  36.  
  37. const mapsearch = document.createElement('a');
  38. mapsearch.href = `https://maps.google.com/maps?q=${copiedQueryString}`;
  39. mapsearch.textContent = 'Maps';
  40.  
  41. const booksearch = document.createElement('a');
  42. booksearch.href = `${goog}/search?q=${copiedQueryString}&tbm=bks`;
  43. booksearch.textContent = 'Books';
  44.  
  45. const newssearch = document.createElement('a');
  46. newssearch.href = `${goog}/search?q=${copiedQueryString}&tbm=nws`;
  47. newssearch.textContent = 'News';
  48.  
  49. const youtube = document.createElement('a');
  50. youtube.href = `https://www.youtube.com/results?search_query=${copiedQueryString}`;
  51. youtube.textContent = 'YouTube';
  52.  
  53. const trsearch = document.createElement('a');
  54. trsearch.href = `https://translate.google.com/?text=${copiedQueryString}`;
  55. trsearch.textContent = 'Translate';
  56.  
  57. // Extra, non-Google search sites:
  58. const redditsearch = document.createElement('a');
  59. redditsearch.href = `https://reddit.com/search?q=${copiedQueryString}`;
  60. redditsearch.textContent = 'Reddit';
  61.  
  62. const googredditsearch = document.createElement('a');
  63. googredditsearch.href = `${goog}/search?q=${copiedQueryString} site:reddit.com`;
  64. googredditsearch.textContent = '+site:reddit.com';
  65.  
  66. const githubsearch = document.createElement('a');
  67. githubsearch.href = `https://github.com/search?q=${copiedQueryString}`;
  68. githubsearch.textContent = 'Github';
  69.  
  70. const gitlabsearch = document.createElement('a');
  71. gitlabsearch.href = `https://gitlab.com/search?search=${copiedQueryString}`;
  72. gitlabsearch.textContent = 'Gitlab';
  73.  
  74. const twittersearch = document.createElement('a');
  75. twittersearch.href = `https://twitter.com/search?q=${copiedQueryString}`;
  76. twittersearch.textContent = 'Twitter';
  77.  
  78. const wikisearch = document.createElement('a');
  79. wikisearch.href = `https://en.wikipedia.org/w/index.php?search=${copiedQueryString}`;
  80. wikisearch.textContent = 'Wikipedia';
  81.  
  82. const azsearch = document.createElement('a');
  83. azsearch.href = `https://www.amazon.com/s/?field-keywords=${copiedQueryString}`;
  84. azsearch.textContent = 'Amazon';
  85.  
  86. // Create div element for the new bar
  87. const betterbar = document.createElement('div');
  88. betterbar.style.cssText = `
  89. position: absolute;
  90. top: -20px;
  91. width: 100%;
  92. background-color: #DDD2;
  93. padding: 10px;
  94. font-size: 16px;
  95. font-weight: bold;
  96. z-index: 9999;
  97. `;
  98.  
  99. betterbar.appendChild(textsearch);
  100. betterbar.appendChild(document.createTextNode(' | '));betterbar.appendChild(imagesearch);
  101. betterbar.appendChild(document.createTextNode(' | '));betterbar.appendChild(videosearch);
  102. betterbar.appendChild(document.createTextNode(' | '));betterbar.appendChild(mapsearch);
  103. betterbar.appendChild(document.createTextNode(' | '));betterbar.appendChild(newssearch);
  104. betterbar.appendChild(document.createTextNode(' | '));betterbar.appendChild(booksearch);
  105. betterbar.appendChild(document.createTextNode(' | '));betterbar.appendChild(trsearch);
  106. betterbar.appendChild(document.createTextNode(' | '));betterbar.appendChild(youtube);
  107.  
  108. // CUSTOMIZATION
  109. // You can customize the new search bar with extra search links.
  110. // Below, find what sites you want to add, delete the // that precedes its line of code, then click Save
  111.  
  112. /* Reddit */
  113. // betterbar.appendChild(document.createTextNode(' | ')); betterbar.appendChild(redditsearch);
  114.  
  115. /* Add "site:reddit.com" to your Google query */
  116. // betterbar.appendChild(document.createTextNode(' | ')); betterbar.appendChild(googredditsearch);
  117.  
  118. /* Github */
  119. // betterbar.appendChild(document.createTextNode(' | ')); betterbar.appendChild(githubsearch);
  120.  
  121. /* Gitlab */
  122. // betterbar.appendChild(document.createTextNode(' | ')); betterbar.appendChild(gitlabsearch);
  123.  
  124. /* Twitter */
  125. // betterbar.appendChild(document.createTextNode(' | ')); betterbar.appendChild(twittersearch);
  126.  
  127. /* Wikipedia */
  128. // betterbar.appendChild(document.createTextNode(' | ')); betterbar.appendChild(wikisearch);
  129.  
  130. /* Amazon */
  131. // betterbar.appendChild(document.createTextNode(' | ')); betterbar.appendChild(azsearch);
  132.  
  133. /* Moves down the page to make room for betterbar */
  134. document.body.style.cssText = `
  135. position: relative;
  136. top:20px;
  137. `;
  138.  
  139. document.body.appendChild(betterbar);
  140.  
  141. })();