Android AppLinks Rewriter

Re-writes Android App Links to point to "a better place"

  1. // ==UserScript==
  2. // @id aal-rw
  3. // @name Android AppLinks Rewriter
  4. // @version 1.5.0
  5. // @namespace http://projects.izzysoft.de/
  6. // @author IzzySoft
  7. // @homepage https://codeberg.org/izzy/userscripts
  8. // @description Re-writes Android App Links to point to "a better place"
  9. // @license CC BY-NC-SA
  10. // @include *
  11. // @exclude http://*.appbrain.com/*
  12. // @exclude https://*.appbrain.com/*
  13. // @exclude https://play.google.com/*
  14. // @exclude https://android.izzysoft.de/*
  15. // @run-at document-idle
  16. // @grant unsafeWindow
  17. // ==/UserScript==
  18.  
  19. var playstore = 'https://play.google.com/store/apps/details?id=';
  20. var appbrain = 'https://www.appbrain.com/app/';
  21. var appbrain_search = 'https://www.appbrain.com/search?q=';
  22.  
  23. for(var i = 0; i < document.links.length; i++) {
  24. var elem = document.links[i];
  25. // Links to Google Play
  26. if (elem.href.match(/play.google.com\/store\/apps\/details\?id=([^&#]+)/i)) {
  27. elem.href=appbrain+RegExp.$1;
  28. }
  29. else if (elem.href.match(/play.google.com\/store\/search\?q=([^&#]+)/i)) {
  30. elem.href=appbrain_search+RegExp.$1;
  31. }
  32. else if (elem.href.match(/market.android.com\/details\?id=([^&#]+)/i)) {
  33. elem.href=appbrain+RegExp.$1;
  34. }
  35.  
  36. // Camouflaged links (Appoid)
  37. if (elem.href.match(/\/out\/\?\S*play\.google\.com%2Fstore%2Fapps%2Fdetails%3Fid%3D([^&#]+)/i)) { // old redirects
  38. elem.href=appbrain+RegExp.$1
  39. }
  40. else if (elem.href.match(/\/redirect\/\S+\?partner=\S*&id=([^&#]+)/i)) { // newer redirects as of 4/2017
  41. elem.href=appbrain+RegExp.$1
  42. }
  43.  
  44. // androidapptests.com moved to n-droid.de
  45. if (elem.href.match(/www.androidapptests.com\/(.*)/i)) {
  46. elem.href='https://www.n-droid.de/'+RegExp.$1;
  47. }
  48. }