Imgur Mirror

Switches all imgur links to the mirror site http://kageurufu.net/imgur

当前为 2016-07-28 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Imgur Mirror
  3. // @description Switches all imgur links to the mirror site http://kageurufu.net/imgur
  4. // @include *
  5. // @version 1.0.9
  6. // @grant none
  7. // @require https://greasyfork.org/scripts/5679-wait-for-elements/code/Wait%20For%20Elements.js?version=122976
  8. // @namespace https://greasyfork.org/users/649
  9. // ==/UserScript==
  10. (function() {
  11. 'use strict';
  12. var regex = /imgur\.com\/(?!a\/|gallery\/)([a-z0-9]+)(\.+[a-z0-9]+)?/i;
  13.  
  14. var getNewLink = function(imgurLink, useGif) {
  15. var match = imgurLink.match(regex);
  16. if (match) {
  17. var file = match[1];
  18. var extension = match[2];
  19. if (!extension) {
  20. extension = '.png';
  21. } else if (extension === '.gifv' || extension === '.gif' || extension === '.webm') {
  22. extension = '.mp4';
  23. }
  24. if (useGif && extension === '.mp4') {
  25. extension = '.gif';
  26. }
  27. return 'http://kageurufu.net/imgur/?' + file + extension;
  28. } else {
  29. return null;
  30. }
  31. };
  32.  
  33. waitForElems('img,a', function(node) {
  34. var isImg = node.nodeName === 'IMG';
  35. var prop = isImg ? 'src' : 'href';
  36. var newLink = getNewLink(node[prop], isImg);
  37. if(newLink) {
  38. node[prop] = newLink;
  39. if (node.dataset.hrefUrl) {
  40. node.dataset.hrefUrl = newLink;
  41. }
  42. if (node.dataset.outboundUrl) {
  43. node.dataset.outboundUrl = newLink;
  44. }
  45. }
  46. });
  47. })();