Proxer-Longstrip-Reader

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

当前为 2015-06-10 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Proxer-Longstrip-Reader
  3. // @namespace
  4. // @version 0.5
  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 pagesData = [];
  24. var pagesNumber;
  25. var location = "";
  26. var addButton = function() {
  27. var test = setInterval(function () {
  28. if (document.getElementById('anker') !== null) {
  29. var ul = document.getElementById("anker");
  30. var li = document.createElement("li");
  31. li.setAttribute("id","longstrip");
  32. ul.appendChild(li);
  33. document.getElementById('longstrip').innerHTML = '<a href="javascript:;">Longstrip-Reader</a>';
  34. document.getElementById('longstrip').addEventListener("click",function () {
  35. onOff();
  36. });
  37. var pages = document.getElementById('pages').innerHTML;
  38. var num = pages.match(/(\d[\d\.]*)/g);
  39. pagesNumber = num[1];
  40. pagesData = unsafeWindow.pages;
  41. location = window.location.href;
  42. var t = setInterval(repeat,250);;
  43. longstrip();
  44. clearInterval(test);
  45. };
  46. },100);
  47. };
  48.  
  49. //Toggle Longstrip-Reader
  50. var onOff = function () {
  51. var x = GM_getValue("onOff",0);
  52. if (x === 0) {
  53. GM_setValue("onOff",1);
  54. }else{
  55. GM_setValue("onOff",0);
  56. };
  57. };
  58.  
  59. //Setzt das Aussehen des Buttons und startet die Longstrip-Funktion, wenn sich die URL ändert
  60. var repeat = function () {
  61. var x = GM_getValue("onOff",0);
  62. if (x === 0) {
  63. document.getElementById('longstrip').innerHTML = '<a href="javascript:;">Longstrip-Reader <img src="https://proxer.me/images/misc/kreuz.png" width="15" height="15"></a>';
  64. }else{
  65. document.getElementById('longstrip').innerHTML = '<a href="javascript:;">Longstrip-Reader <img src="https://proxer.me/images/misc/haken.png" width="15" height="15"></a>';
  66. };
  67. if (location !== window.location.href) {
  68. longstrip();
  69. };
  70. };
  71.  
  72. //Longstrip-Reader
  73. var longstrip = function () {
  74. location = window.location.href;
  75. var x = GM_getValue("onOff",0);
  76. if (x === 0) {
  77. return;
  78. };
  79. if (window.location.href.indexOf('read') > -1) {
  80. var lang = "";
  81. if (window.location.href.indexOf('en') > -1) {
  82. lang = "en";
  83. }else{
  84. lang = "de";
  85. };
  86. var href = window.location.href;
  87. var info = href.match(/(\d[\d\.]*)/g);
  88. var i = 1;
  89. var x = 0;
  90. //Ändere die Navigationseinstellungen
  91. window.addEventListener("keydown", changeChapter, false);
  92. //setze die Bilder
  93. var number = parseInt(info[1],10);
  94. var nextChap = number + 1;
  95. document.getElementById('reader').innerHTML = "<a href='/chapter/" +info[0]+ "/" +nextChap+ "/" +lang+ "' id='master'></a>";
  96. var master = document.getElementById('master');
  97. document.getElementById('reader').style.maxWidth = "none";
  98. document.getElementById('reader').style.textAlign = "center";
  99. while (i <= pagesNumber) {
  100. var element = document.createElement("img");
  101. var url = "//upload.proxer.me/manga/"+info[0]+"_"+lang+"/"+info[1]+"/"+pagesData[x][0];
  102. element.setAttribute("class","chapterImage");
  103. element.setAttribute("src",url);
  104. element.setAttribute("width",pagesData[x][2]);
  105. element.setAttribute("height",pagesData[x][1]);
  106. element.setAttribute("style","opacity: 1; max-width: 100%; text-align: center;");
  107. master.appendChild(element);
  108. i++;
  109. x++;
  110. };
  111. };
  112. };
  113.  
  114. //Weiterleitung zum nächsten Kapitel/zur Kapitelseite des momentanen Kapitels
  115. var changeChapter = function (event) {
  116. var lang = "";
  117. if (window.location.href.indexOf('en') > -1) {
  118. lang = "en";
  119. }else{
  120. lang = "de";
  121. };
  122. var href = window.location.href;
  123. var info = href.match(/(\d[\d\.]*)/g);
  124. var number = parseInt(info[1],10);
  125. var nextChap = number + 1;
  126. var formerChap = number;
  127. if (event.keyCode === 68 || event.keyCode === 39) {
  128. window.location = "/chapter/" +info[0]+ "/" +nextChap+ "/" +lang;
  129. }else if (event.keyCode === 65 || event.keyCode === 37) {
  130. window.location = "/chapter/" +info[0]+ "/" +formerChap+ "/" +lang;
  131. };
  132. };