Amazon Tag Remove (All)

Elimina la variable tag de los vínculos hacia Amazon

  1. // ==UserScript==
  2. // @name Amazon Tag Remove (All)
  3. // @namespace Tag remove for links of Amazon
  4. // @description Elimina la variable tag de los vínculos hacia Amazon
  5. // @include *
  6. // @author WeSo
  7. // @version 20160310
  8. // @run-at document-end
  9.  
  10. // ==/UserScript==
  11.  
  12.  
  13. // Amazon sites
  14. var sites = Array(
  15. "amazon.com",
  16. "amazon.es",
  17. "amazon.co.uk",
  18. "amazon.de",
  19. "amazon.it",
  20. "amazon.fr",
  21. "amazon.ca",
  22. "amazon.cn",
  23. "amazon.co.jp",
  24. "goo.gl"
  25. );
  26.  
  27. function delTag (text) {
  28. var tmp = unescape(text);
  29. tmp = tmp.replace(/&/gi,"&");
  30.  
  31. // &...&
  32. var pattern = "&tag=[a-zA-Z0-9.-]*-[0-9]{1,2}&";
  33. var exp = new RegExp(pattern, "g");
  34. tmp = tmp.replace(exp,"&");
  35.  
  36. // &...
  37. pattern = "&tag=[a-zA-Z0-9.-]*-[0-9]{1,2}";
  38. exp = new RegExp(pattern, "g");
  39. tmp = tmp.replace(exp,"");
  40.  
  41. // ?...&
  42. pattern = "\\?tag=[a-zA-Z0-9.-]*-[0-9]{1,2}&";
  43. exp = new RegExp(pattern, "g");
  44. tmp = tmp.replace(exp,"?");
  45.  
  46. // ?...
  47. pattern = "\\?tag=[a-zA-Z0-9.-]*-[0-9]{1,2}";
  48. exp = new RegExp(pattern, "g");
  49. tmp = tmp.replace(exp,"");
  50.  
  51.  
  52. return tmp;
  53. }
  54.  
  55. function clearText (text,site) {
  56. var tmp = unescape(text);
  57. tmp = tmp.replace(/&/gi,"&");
  58. var result;
  59.  
  60. // Filtro 1
  61. var pattern = "http(s?)://[w]{0,3}.?"+site+"/(.*)/dp/B([A-Z0-9]{9})/?.*";
  62. var exp = new RegExp(pattern, "gi");
  63. if (result = exp.exec(tmp))
  64. tmp = "http"+result[1]+"://www."+site+"/dp/B"+result[3]+"/"+result[2]+"/";
  65.  
  66. // Filtro 2
  67. pattern = "http(s?)://[w]{0,3}.?"+site+"/(.*)/dp/([A-Z0-9]{9,10})/?.*";
  68. exp = new RegExp(pattern, "gi");
  69. if (result = exp.exec(tmp))
  70. tmp = "http"+result[1]+"://www."+site+"/dp/B"+result[3]+"/"+result[2]+"/";
  71.  
  72. // Filtro 3
  73. pattern = "http(s?)://[w]{0,3}.?"+site+"/gp/product/([A-Z0-9]{9,10}).*";
  74. exp = new RegExp(pattern, "gi");
  75. if (result = exp.exec(tmp))
  76. tmp = "http"+result[1]+"://www."+site+"/gp/product/"+result[2]+"/";
  77.  
  78. // Filtro 5 (link.php)
  79. pattern = "http(s?)://[w]{0,3}.?.*?/link\.php\?url\=(.*)";
  80. exp = new RegExp(pattern, "gi");
  81. if (result = exp.exec(tmp))
  82. tmp = result[2];
  83.  
  84. // Filtro 6 (limpiar por delante)
  85. pattern = ".*http(s?)://[w]{0,3}.?"+site+"/(.*)";
  86. exp = new RegExp(pattern, "gi");
  87. if (result = exp.exec(tmp))
  88. tmp = "http"+result[1]+"://www."+site+"/"+result[2];
  89.  
  90. return tmp;
  91. }
  92.  
  93. for (var n = 0; n < sites.length; n++) {
  94. var links = document.evaluate("//a[contains(@href, '"+sites[n]+"')]", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
  95. for (var i = 0; i < links.snapshotLength; i++)
  96. {
  97. var link = links.snapshotItem(i);
  98. link.href = clearText(decodeURIComponent(link.href),sites[n]);
  99. link.href = delTag(link.href);
  100. }
  101. }