Immersive Reader

Read in Immersive Reader

  1. // ==UserScript==
  2. // @name Immersive Reader
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.4
  5. // @description Read in Immersive Reader
  6. // @author You
  7. // @match https://*/*
  8. // @match http://*/*
  9. // @match read://*
  10. // @icon https://www.google.com/s2/favicons?sz=64&domain=readfog.com
  11. // @grant GM_registerMenuCommand
  12. // @grant GM.openInTab
  13. // @run-at document-start
  14. // @license MIT
  15. // ==/UserScript==
  16.  
  17. (function() {
  18. 'use strict';
  19.  
  20. function getPageURL(url) {
  21. if (typeof url != 'string') return null;
  22. const m1 = /^https:\/\/www\.signalhire\.com\/sorry\?continue=([^=&]+)/.exec(url);
  23. let eurl = ''; // URIComponent
  24. if (m1) eurl = m1[1];
  25. try {
  26. if (eurl && typeof eurl == 'string') url = decodeURIComponent(eurl); // avoid URI malformed
  27. } catch (e) {}
  28. return url;
  29. }
  30.  
  31. function turnPlain() {
  32. const url = getPageURL(location.href);
  33. const nurl = `read://${url}`;
  34.  
  35. GM.openInTab(nurl, false);
  36.  
  37. }
  38.  
  39.  
  40. if (!/^read:\/\//.test(location.href)) {
  41.  
  42. new Promise(() => {
  43. GM_registerMenuCommand("Switch to Immersive Reader", turnPlain, "I");
  44. })
  45.  
  46. }
  47.  
  48.  
  49.  
  50.  
  51.  
  52. })();