Better Erome download links

Exposes media-download links for erome media galleries

  1. // ==UserScript==
  2. // @name Better Erome download links
  3. // @namespace greasyfork.org
  4. // @icon https://www.erome.com/android-chrome-192x192.png
  5. // @description Exposes media-download links for erome media galleries
  6. // @include http://erome.com/*
  7. // @include http://*.erome.com/*
  8. // @include https://erome.com/*
  9. // @include https://*.erome.com/*
  10. // @grant none
  11. // @run-at document-end
  12. // @copyright 2021 the-juju
  13. // @grant none
  14. // @author the-juju
  15. // @version 1.0.2
  16. // @license MIT
  17. // Credits : https://greasyfork.org/en/scripts/415766-erome-download-links/
  18.  
  19. // ==/UserScript==
  20.  
  21. (function() {
  22. 'use strict';
  23.  
  24. var addLink = function(media) {
  25. var tagName = media.tagName;
  26. var src = tagName === 'IMG' ? media.src || media.getAttribute('data-src') : '';
  27.  
  28. if (tagName === 'VIDEO') {
  29. var sourceElement = media.querySelector('source');
  30. src = !src && sourceElement ? sourceElement.src : '';
  31. }
  32.  
  33. var br = document.createElement('br');
  34. var link = document.createElement('a');
  35. link.setAttribute('href', src);
  36. link.download = '';
  37. link.textContent = tagName + ': ' + src;
  38. link.target = '_blank';
  39. link.rel = 'noopener';
  40.  
  41. media.parentElement.parentElement.appendChild(link);
  42. media.parentElement.parentElement.appendChild(br);
  43. }
  44.  
  45. var init = function() {
  46. var mediaElements = document.querySelectorAll('.media-group .video video, .media-group .img img');
  47.  
  48. for (var i = 0; i < mediaElements.length; i++) {
  49. var media = mediaElements[i];
  50. addLink(media);
  51. }
  52. }
  53.  
  54. window.addEventListener('load', init, false);
  55. document.addEventListener('DOMContentLoaded', init, false);
  56. })();