Proxer-Longstrip-Reader

Dieses Script fügt auf Proxer die Möglichkeit hinzu, Mangas im Longstrip-Format zu lesen

当前为 2015-09-25 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Proxer-Longstrip-Reader
  3. // @namespace
  4. // @version 0.6.8
  5. // @description Dieses Script fügt auf Proxer die Möglichkeit hinzu, Mangas im Longstrip-Format zu lesen
  6. // @author Dominik Bissinger alias Nihongasuki
  7. // @include http://proxer.me/*
  8. // @include https://proxer.me/*
  9. // @include http://www.proxer.me/*
  10. // @include https://www.proxer.me/*
  11. // @run-at document-start
  12. // @grant GM_setValue
  13. // @grant GM_getValue
  14. // @grant unsafeWindow
  15. // ==/UserScript==
  16.  
  17. //Startet die Funktion "addButton" beim Laden der Seite
  18. document.addEventListener('DOMContentLoaded', function(event) {
  19. addButton();
  20. });
  21.  
  22. //Fügt den Button "Longstrip-Reader" zu "Anker" hinzu und startet die Longstrip-Funktion beim Seitenaufruf
  23. var addButton = function() {
  24. var test = setInterval(function () {
  25. if (document.getElementById('anker') !== null) {
  26. var ul = document.getElementById("anker");
  27. var li = document.createElement("li");
  28. li.setAttribute("id","longstrip");
  29. ul.appendChild(li);
  30. var x = GM_getValue("onOff",0);
  31. if (x === 0) {
  32. document.getElementById('longstrip').innerHTML = '<a href="javascript:;">Longstrip-Reader <img src="https://proxer.me/images/misc/kreuz.png" width="15" height="15"></a>';
  33. }else{
  34. document.getElementById('longstrip').innerHTML = '<a href="javascript:;">Longstrip-Reader <img src="https://proxer.me/images/misc/haken.png" width="15" height="15"></a>';
  35. };
  36. document.getElementById('longstrip').addEventListener("click",function () {
  37. onOff();
  38. });
  39. longstrip();
  40. clearInterval(test);
  41. };
  42. },100);
  43. };
  44.  
  45. //Toggle Longstrip-Reader
  46. var onOff = function () {
  47. var x = GM_getValue("onOff",0);
  48. if (x === 0) {
  49. GM_setValue("onOff",1);
  50. document.getElementById('longstrip').innerHTML = '<a href="javascript:;">Longstrip-Reader <img src="https://proxer.me/images/misc/haken.png" width="15" height="15"></a>';
  51. }else{
  52. GM_setValue("onOff",0);
  53. document.getElementById('longstrip').innerHTML = '<a href="javascript:;">Longstrip-Reader <img src="https://proxer.me/images/misc/kreuz.png" width="15" height="15"></a>';
  54. };
  55. longstrip();
  56. };
  57.  
  58. //Longstrip-Reader
  59. var longstrip = function () {
  60. var x = GM_getValue("onOff",0);
  61. if (x === 0) {
  62. return;
  63. };
  64. if (window.location.href.indexOf('read') > -1) {
  65. if (window.location.href.indexOf('forum') > -1) {
  66. return;
  67. };
  68. var href = window.location.href;
  69. var info = href.match(/(\d[\d\.]*)/g);
  70. var i = 1;
  71. var x = 0;
  72. //Ändere die Navigationseinstellungen
  73. window.addEventListener("keydown", changeChapter, false);
  74. //setze die Bilder
  75. var number = parseInt(info[1],10);
  76. var nextChap = number + 1;
  77. document.getElementById('reader').innerHTML = "<a href='javascript:;' onclick='return false;' id='master'></a>";
  78. //nächstes Kapitel bei Klick
  79. document.getElementById('master').addEventListener ("click", function (event) {
  80. var pagesA = document.getElementById('pages').innerHTML;
  81. var numA = pagesA.match(/(\d[\d\.]*)/g);
  82. var pagesNumberA = numA[1];
  83. unsafeWindow.changePage(pagesNumberA+1,false);
  84. });
  85. var master = document.getElementById('master');
  86. document.getElementById('reader').style.maxWidth = "none";
  87. document.getElementById('reader').style.textAlign = "center";
  88. var pages = document.getElementById('pages').innerHTML;
  89. var num = pages.match(/(\d[\d\.]*)/g);
  90. var pagesNumber = num[1];
  91. var loop = function () {
  92. var br = document.createElement("br");
  93. var element = document.createElement("img");
  94. var url = unsafeWindow.serverurl+unsafeWindow.pages[x][0];
  95. element.setAttribute("class","chapterImage");
  96. element.setAttribute("src",url);
  97. element.setAttribute("width",unsafeWindow.pages[x][2]);
  98. element.setAttribute("height",unsafeWindow.pages[x][1]);
  99. element.setAttribute("style","opacity: 1; max-width: 100%; text-align: center; height: auto;");
  100. master.appendChild(element);
  101. master.appendChild(br);
  102. i++;
  103. x++;
  104. if (i <= pagesNumber) {
  105. setTimeout(loop,1000);
  106. };
  107. };
  108. loop();
  109. };
  110. };
  111.  
  112. //Weiterleitung zum nächsten Kapitel/zur Kapitelseite des momentanen Kapitels
  113. var changeChapter = function (event) {
  114. var lang = "";
  115. if (window.location.href.indexOf('forum') > -1) {
  116. return;
  117. };
  118. if (window.location.href.indexOf('en') > -1) {
  119. lang = "en";
  120. }else if (window.location.href.indexOf('de') > -1) {
  121. lang = "de";
  122. };
  123. var href = window.location.href;
  124. var info = href.match(/(\d[\d\.]*)/g);
  125. var number = parseInt(info[1],10);
  126. var formerChap = number;
  127. if (event.keyCode === 68 || event.keyCode === 39) {
  128. var pages = document.getElementById('pages').innerHTML;
  129. var num = pages.match(/(\d[\d\.]*)/g);
  130. var pagesNumber = num[1];
  131. unsafeWindow.changePage(pagesNumber+1,false);
  132. }else if (event.keyCode === 65 || event.keyCode === 37) {
  133. if (lang !== "") {
  134. window.location = "/chapter/" +info[0]+ "/" +formerChap+ "/" +lang;
  135. }else{
  136. var div = document.getElementById('breadcrumb');
  137. var a = div.getElementsByTagName('a');
  138. window.location = a[0].href;
  139. };
  140. };
  141. };