Mydealz Script

Versteckt abgelaufene Dealz, verbreitert die Seitenansicht, entfernt den Newsletterhinweis und entfernt einige Referrerlinks

当前为 2016-03-19 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Mydealz Script
  3. // @description Versteckt abgelaufene Dealz, verbreitert die Seitenansicht, entfernt den Newsletterhinweis und entfernt einige Referrerlinks
  4. // @namespace cuzi
  5. // @oujs:author cuzi
  6. // @version 3
  7. // @license GNUGPL
  8. // @include /^https?:\/\/www\.mydealz\.de\/.*/
  9. // @grant none
  10. // ==/UserScript==
  11. (function main() {
  12. 'use strict';
  13.  
  14.  
  15. function decodeHtml(html) {
  16. var txt = document.createElement("textarea");
  17. txt.innerHTML = html;
  18. txt.innerHTML = txt.value;
  19. txt.innerHTML = txt.value;
  20. txt.innerHTML = txt.value;
  21. return txt.value;
  22. }
  23.  
  24. function putDealzToSleep() {
  25. var lis = document.querySelectorAll('.thread--expired .thread-title');
  26. for(let i = 0; i < lis.length; i++) {
  27. let li = lis[i].parentNode.parentNode.parentNode.parentNode;
  28. let s = li.style;
  29. s.maxHeight = '10em';
  30. s.overflow = 'auto';
  31. s.opacity = 0.5;
  32. li.addEventListener('click',reviveDeal);
  33. }
  34. }
  35.  
  36. function reviveDeal() {
  37. this.removeEventListener('click',reviveDeal);
  38. this.style.maxHeight = "";
  39. this.style.opacity = 1.0;
  40. }
  41.  
  42. function restoreLinks() {
  43.  
  44. var patterns = [
  45. {
  46. pattern: /^http:\/\/www\.mydealz\.de\/visit\?.*&d=(.+)/,
  47. test: (a, pattern) => pattern.test(a.href),
  48. decode: (a, pattern) => decodeHtml(decodeURIComponent(pattern.exec(a.href)[1]))
  49. },
  50. {
  51. pattern: /&amp;redir=(http.+)"/,
  52. test: (a, pattern) => "track" in a.dataset && pattern.test(a.dataset.track),
  53. decode: (a, pattern) => decodeHtml(decodeURIComponent(pattern.exec(a.dataset.track)[1]))
  54. },
  55. {
  56. pattern: /"label":"(http.+)"/,
  57. test: (a, pattern) => "track" in a.dataset && pattern.test(a.dataset.track),
  58. decode: (a, pattern) => decodeHtml(decodeURIComponent(pattern.exec(a.dataset.track)[1]))
  59. }
  60. ];
  61. var a = document.querySelectorAll("a[target]");
  62. for(let i = 0; i < a.length; i++) {
  63. for(let j = 0, o = patterns[0]; j < patterns.length; o = patterns[++j]) {
  64. if(o.test(a[i], o.pattern)) {
  65. a[i].href = o.decode(a[i], o.pattern);
  66. }
  67. }
  68. }
  69. }
  70.  
  71.  
  72. // Widen page content
  73. document.querySelector('.page-canvas>.page-content').style.maxWidth = '120em';
  74.  
  75. // Restore links
  76. restoreLinks();
  77.  
  78. // Remove newsletter info
  79. try {
  80. let n = document.querySelector('li.inline-newsletter');
  81. n.parentNode.removeChild(n);
  82. } catch(e) {}
  83.  
  84. // Semi-hide expired dealz
  85. var exclude = [
  86. /^https?:\/\/www\.mydealz\.de\/deals\/.+-\d+/,
  87. /^https?:\/\/www\.mydealz\.de\/profile\/.*/,
  88. /^https?:\/\/www\.mydealz\.de\/search.*/];
  89. if(!exclude.some((pattern) => document.location.href.match(pattern))) {
  90. putDealzToSleep();
  91. }
  92.  
  93. })();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址