Google Images - search by paste

Reverse search an image by pasting it

  1. // ==UserScript==
  2. // @name Google Images - search by paste
  3. // @description Reverse search an image by pasting it
  4. // @license MIT
  5. // @version 1.1.0
  6. // @namespace tithen-firion.github.io
  7. // @match *://images.google.com/*
  8. // @match *://www.google.com/*
  9. // @grant GM.xmlHttpRequest
  10. // @grant GM_xmlhttpRequest
  11. // @require https://greasemonkey.github.io/gm4-polyfill/gm4-polyfill.js
  12. // ==/UserScript==
  13.  
  14. document.body.addEventListener('paste', e => {
  15. for(let item of e.clipboardData.items) {
  16. if(item.type.indexOf('image') > -1) {
  17. let progress = document.createElement('div');
  18. progress.style.position = 'fixed';
  19. progress.style.top = 0;
  20. progress.style.left = 0;
  21. progress.style.width = '5%';
  22. progress.style.height = '5px';
  23. progress.style.background = 'green';
  24. document.body.appendChild(progress);
  25.  
  26. let data = new FormData();
  27. let file = item.getAsFile();
  28. let fileSize = file.size;
  29. data.set('encoded_image', file);
  30. GM.xmlHttpRequest({
  31. url: 'https://images.google.com/searchbyimage/upload',
  32. method: 'post',
  33. data: data,
  34. onload: response => {
  35. document.location = response.finalUrl;
  36. },
  37. onprogress: response => {
  38. progress.style.width = response.loaded / fileSize * 100 + '%';
  39. }
  40. });
  41. e.preventDefault();
  42. return;
  43. }
  44. }
  45. });