RedRem

Converts links containing redirects to their resolved version.

  1. // ==UserScript==
  2. // @name RedRem
  3. // @namespace http://www.twprogrammers.com/
  4. // @version 0.7
  5. // @description Converts links containing redirects to their resolved version.
  6. // @author Patrick Thomas (Timberwolf)
  7. // @grant none
  8. // @include http://www.free-tv-video-online.info/*
  9. // @include http*://www.webmasterworld.com/*
  10. // @include http://www.researchgate.net/*
  11. // @exclude http://www.free-tv-video-online.info/player/*
  12. // ==/UserScript==
  13.  
  14. var orig_page_links = document.links;
  15. var page_links = new Array(orig_page_links.length);
  16. var newlinkhref, pglh, query, queryEncoded, tArray, tkvArray, i;
  17.  
  18. function anchorMatch(a)
  19. {
  20. for(; a; a = a.parentNode) if(a.localName == 'a') return a;
  21. return null;
  22. }
  23. function getQueryParams(qs)
  24. {
  25. query = {};
  26. qs = qs.substring(qs.indexOf('?')+1);
  27. if(getContains("&", qs))
  28. {
  29. tArray = qs.split("&");
  30. for(i = 0; i < tArray.length; i++)
  31. {
  32. tkvArray = tArray[i].split("=");
  33. query[tkvArray[0]] = decodeURIComponent(tkvArray[1]);
  34. }
  35. }
  36. else
  37. {
  38. tkvArray = qs.split("=");
  39. query[tkvArray[0]] = decodeURIComponent(tkvArray[1]);
  40. }
  41. return query;
  42. }
  43. function getQueryParamsEncoded(qs)
  44. {
  45. queryEncoded = {};
  46. qs = qs.substring(qs.indexOf('?')+1);
  47. if(getContains("&", qs))
  48. {
  49. tArray = qs.split("&");
  50. for(i = 0; i < tArray.length; i++)
  51. {
  52. tkvArray = tArray[i].split("=");
  53. queryEncoded[tkvArray[0]] = tkvArray[1];
  54. }
  55. }
  56. else
  57. {
  58. tkvArray = qs.split("=");
  59. queryEncoded[tkvArray[0]] = tkvArray[1];
  60. }
  61. return queryEncoded;
  62. }
  63. function getContains(needle, haystack)
  64. {
  65. return haystack.match(new RegExp(".*("+needle.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&")+").*", "i"));
  66. }
  67. function directify()
  68. {
  69. for (i=0; i < page_links.length; i++)
  70. {
  71. page_links[i] = orig_page_links[i];
  72. }
  73. for (i=0; i < page_links.length; i++)
  74. {
  75. pglh = page_links[i].href;
  76. getQueryParams(pglh);
  77. getQueryParamsEncoded(pglh);
  78. if (getContains("free-tv-video-online.info/interstitial2.html", pglh))
  79. {
  80. newlinkhref = query.lnk;
  81. console.log(page_links[i].href + " => " + newlinkhref);
  82. page_links[i].href = newlinkhref;
  83. }
  84. else if(pglh.match(/webmasterworld\.com(\/.*)?/i))
  85. {
  86. newlinkhref = queryEncoded.url;
  87. console.log(page_links[i].href + " => " + newlinkhref);
  88. page_links[i].href = newlinkhref;
  89. }
  90. else if(getContains("www.researchgate.net/go.Deref.html", pglh))
  91. {
  92. newlinkhref = query.url;
  93. console.log(page_links[i].href + " => " + newlinkhref);
  94. page_links[i].href = newlinkhref;
  95. }
  96. }
  97. }
  98. directify();