DLE links decoder

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

Устаревшая версия за 18.08.2016. Перейдите к последней версии.

  1. // ==UserScript==
  2. // @name DLE links decoder
  3. // @namespace lainscripts_dle_links_decoder
  4. // @version 0.6
  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 !!str && !!win.atob(str);
  21. } catch (ignore) {
  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)||
  32. url.match(/\/leech_out\.php\?.:(.+)$/i)||
  33. [])[1]);
  34. if (!url64) {
  35. return true;
  36. }
  37. if (isBase64(url64)) {
  38. url = win.atob(url64);
  39. console.log('Replaced ' + link.href + ' with ' + url);
  40. link.href = url;
  41. }
  42. return true;
  43. }
  44.  
  45. document.addEventListener('click', clickHandler, false);
  46. document.addEventListener('contextmenu', clickHandler, false);
  47. })();