E-Hentai highlight thumb when open Anthology gallery from tag:artist

E-Hentai 高亮缩图当打开Anthology gallery时来自tag:artist

Fra og med 25.01.2020. Se den nyeste version.

  1. // ==UserScript==
  2. // @name E-Hentai highlight thumb when open Anthology gallery from tag:artist
  3. // @namespace E-Hentai_highlight_thumb_when_open_Anthology_gallery_from_tag_artist
  4. // @supportURL https://github.com/zhuzemin
  5. // @description E-Hentai 高亮缩图当打开Anthology gallery时来自tag:artist
  6. // @include https://exhentai.org/g/*
  7. // @include https://e-hentai.org/g/*
  8. // @version 1.3
  9. // @run-at document-start
  10. // @author zhuzemin
  11. // @license Mozilla Public License 2.0; http://www.mozilla.org/MPL/2.0/
  12. // @license CC Attribution-ShareAlike 4.0 International; http://creativecommons.org/licenses/by-sa/4.0/
  13. // @grant none
  14. // ==/UserScript==
  15. var config = {
  16. 'debug': false
  17. }
  18. var debug = config.debug ? console.log.bind(console) : function () {
  19. };
  20.  
  21.  
  22. var GetArtistStartImg = function() {
  23. debug("Start: GetArtistStartImg");
  24. if(document.referrer.includes("/tag/artist:")||window.location.href.includes("#/tag/artist:")){
  25. var title=document.querySelector("#gn").textContent;
  26. debug("Title: "+title);
  27. if(title.toLowerCase().includes("anthology")||(title.toLowerCase().match(/^comic/)!=null/*&&title.match(/\d{4}-\d{2}/)!=null*/)){
  28. var artist;
  29. try{
  30. artist=document.referrer.match(/\/tag\/artist:([\d\w\+]*)/)[1].replace("+"," ");
  31. }catch(e){
  32. artist=window.location.href.match(/\/tag\/artist:([\d\w\+]*)/)[1].replace("+"," ");
  33. }
  34. debug("Artist: "+artist);
  35. var divs=document.querySelectorAll("div.c1");
  36. for(var div of divs){
  37. var comment=div.querySelector("div.c6");
  38. debug(comment);
  39. if(comment.innerHTML.toLowerCase().includes(artist)){
  40. /*var links=comment.querySelectorAll("a");
  41. debug(links);
  42. for(var a of links){
  43. var textContent=a.textContent.toLowerCase();
  44. if(textContent.includes(artist)){
  45. var array=textContent.match(/(\d{1,4})/);
  46. debug(array);
  47. if(array!=null){
  48. var ArtistStartImg=parseInt(array[1]);
  49. debug("ArtistStartImg: "+ArtistStartImg);
  50. var object={
  51. "ArtistStartImg":ArtistStartImg,
  52. "artist":artist
  53. }
  54. return object;
  55. }
  56. }
  57. }*/
  58. var lines=comment.innerText.split("\n");
  59. debug(lines);
  60. for(var line of lines){
  61. var line=line.toLowerCase();
  62. if(line.includes(artist)){
  63. var array=line.match(/(\d{1,4})/);
  64. debug(array);
  65. if(array!=null){
  66. var ArtistStartImg=parseInt(array[1]);
  67. debug("ArtistStartImg: "+ArtistStartImg);
  68. var object={
  69. "ArtistStartImg":ArtistStartImg,
  70. "artist":artist
  71. }
  72. return object;
  73. }
  74. }
  75. }
  76. }
  77. }
  78. }
  79. }
  80. debug("End: GetArtistStartImg");
  81. return null;
  82. }
  83.  
  84. GetCurrentPageTotalImg=function(){
  85. debug("Start: GetCurrentPageTotalImg");
  86. var divs=document.querySelectorAll("div.gdtl");
  87. debug(divs);
  88. if(divs!=null){
  89. var CurrentPageTotalImg=divs.length;
  90. debug("CurrentPageTotalImg: "+CurrentPageTotalImg);
  91. var object={
  92. "CurrentPageTotalImg":CurrentPageTotalImg,
  93. "divs":divs
  94. }
  95. return object;
  96. }
  97. debug("End: GetCurrentPageTotalImg");
  98. return null;
  99. }
  100.  
  101. CreateStyle=function(){
  102. debug("Start: CreateStyle");
  103. var style=document.createElement("style");
  104. style.setAttribute("type","text/css");
  105. style.innerHTML=`
  106. .glowbox {
  107. background: #4c4c4c;
  108. //width: 400px;
  109. margin: 40px 0 0 40px;
  110. padding: 10px;
  111. -moz-box-shadow: 0 0 5px 5px #FFFF00;
  112. -webkit-box-shadow: 0 0 5px 5px #FFFF00;
  113. box-shadow: 0 0 5px 5px #FFFF00;
  114. }
  115. `;
  116. debug("Processing: CreateStyle");
  117. var head=document.querySelector("head");
  118. head.insertBefore(style,null);
  119. debug("End: CreateStyle");
  120. }
  121.  
  122. init=function(){
  123. var ObjectArtistStartImg=GetArtistStartImg();
  124. var ArtistStartImg=ObjectArtistStartImg.ArtistStartImg;
  125. if(ArtistStartImg!=null){
  126. var ObjectCurrentPageTotalImg=GetCurrentPageTotalImg();
  127. var CurrentPageTotalImg=ObjectCurrentPageTotalImg.CurrentPageTotalImg;
  128. var ArtistStartImgInCurrentPage=ArtistStartImg%CurrentPageTotalImg;
  129. if(ArtistStartImgInCurrentPage==0){
  130. ArtistStartImgInCurrentPage=CurrentPageTotalImg-1;
  131. }
  132. else{
  133. ArtistStartImgInCurrentPage-=1;
  134. }
  135. debug("ArtistStartImgInCurrentPage: "+ArtistStartImgInCurrentPage);
  136. if(window.location.href.includes("#/tag/artist:")){
  137. ArtistStartImg=ArtistStartImgInCurrentPage;
  138. }
  139. var CorrectPage;
  140. if(ArtistStartImg==0){
  141. CorrectPage=0;
  142. }
  143. else{
  144. CorrectPage=Math.ceil(ArtistStartImg/CurrentPageTotalImg)-1;
  145. }
  146. debug("CorrectPage: "+CorrectPage);
  147. if(CorrectPage==0){
  148. CreateStyle();
  149. var div=ObjectCurrentPageTotalImg.divs[ArtistStartImgInCurrentPage];
  150. var img=div.querySelector("img");
  151. img.className +=" glowbox";
  152. debug(div);
  153. div.scrollIntoView();
  154. }
  155. else{
  156. window.location.href+="?p="+CorrectPage+"#/tag/artist:"+ObjectArtistStartImg.artist;
  157. }
  158. }
  159. }
  160.  
  161. window.addEventListener('DOMContentLoaded', init);