DLE links decoder

Прямые ссылки на сайтах с движком DataLife Engine (DLE)

目前为 2016-08-18 提交的版本。查看 最新版本

  1. // ==UserScript==
  2. // @name DLE links decoder
  3. // @namespace lainscripts_dle_links_decoder
  4. // @version 0.3
  5. // @description Прямые ссылки на сайтах с движком DataLife Engine (DLE)
  6. // @author lainverse
  7. // @match *://*/*
  8. // @grant none
  9. // ==/UserScript==
  10. // Script based on a similar script by raletag:
  11. // https://greasyfork.org/en/scripts/22290-Прямые-ссылки-в-dle
  12.  
  13. (function() {
  14. 'use strict';
  15.  
  16. var win = window;
  17.  
  18. function isBase64(str) {
  19. try {
  20. return win.btoa(win.atob(str)) == str;
  21. } catch (err) {
  22. return false;
  23. }
  24. }
  25.  
  26. function clickHandler(e){
  27. var link = e.target, url = link.href, url64;
  28. if (!url) {
  29. return true;
  30. }
  31. url64 = decodeURIComponent((url.match(/[?&]url=([^&]*)(&|$)/i)||[])[1]);
  32. if (!url64) {
  33. return true;
  34. }
  35. if (isBase64(url64)) {
  36. url = win.atob(url64);
  37. console.log('Replaced ' + link.href + ' with ' + url);
  38. link.href = url;
  39. }
  40. return true;
  41. }
  42.  
  43. document.addEventListener('click', clickHandler, false);
  44. document.addEventListener('contextmenu', clickHandler, false);
  45. })();