Sleazy Fork is available in English.

115艾薇预览+

115艾薇预览个人使用的修改版本,115登录后自动跳转到文件界面、文件界面放大、自动获取艾薇封面+标题

  1. // ==UserScript==
  2. // @name 115艾薇预览+
  3. // @namespace https://sleazyfork.org/
  4. // @version 1.5
  5. // @description 115艾薇预览个人使用的修改版本,115登录后自动跳转到文件界面、文件界面放大、自动获取艾薇封面+标题
  6. // @author someone
  7. // @include https://115.com/home/userhome
  8. // @include https://115.com/?*mode=wangpan*
  9. // @domain javdb005.com
  10. // @domain avsox.monster
  11. // @grant GM_setValue
  12. // @grant GM_getValue
  13. // @grant GM_deleteValue
  14. // @grant GM_listValues
  15. // @grant GM_xmlhttpRequest
  16. // ==/UserScript==
  17.  
  18. (function() {
  19. 'use strict';
  20. if(window.location.href === "https://115.com/home/userhome")
  21. window.location = "https://115.com/?mode=wangpan";
  22. else
  23. {
  24. var item_list,item_obj,item_name;
  25. var ifr = $("iframe[style='position: absolute; top: 0px;']");
  26. $("div#js-main_mode").css("display","none");
  27. $("div.main-core").css("left","0");
  28. ifr.load(
  29. function(){
  30. setCss();
  31. addMarkButton();
  32. item_list = ifr.contents().find("body").find("div#js_data_list");
  33. item_list.mouseenter(
  34. function(){
  35. {
  36. item_list.append("<div id='isload'></div>");
  37. itemEvent();
  38. }
  39. }
  40. );
  41. }
  42. );
  43. }
  44.  
  45. function addMarkButton(){
  46. var read_mark = `
  47. <li id="read_mark">
  48. <a id="add_mark" class="mark" href="javascript:;">标记已阅</a>
  49. <a id="del_mark" class="mark" href="javascript:;">取消已阅</a>
  50. </li>
  51. `;
  52. ifr.contents().find("body").mouseup(
  53. function(event){
  54. if(event.button == 2){
  55. setTimeout(function(){
  56. $("div#js_float_content").find("li[val='open_dir']").after(read_mark);
  57. if($("li#read_mark").length){
  58. showMarkButton(item_name);
  59. $("a#add_mark").click(
  60. function(){
  61. GM_setValue(item_name,"1");
  62. showMarkButton(item_name);
  63. item_obj.find("i[class$='folder']").append("<i class='mark_ico'></i>");
  64. $("div#js_float_content").css("display","none");
  65. $("body div").last().css("display","none");
  66. }
  67. );
  68. $("a#del_mark").click(
  69. function(){
  70. GM_deleteValue(item_name);
  71. showMarkButton(item_name);
  72. item_obj.find("i.mark_ico").remove();
  73. $("div#js_float_content").css("display","none");
  74. $("body div").last().css("display","none");
  75. }
  76. );
  77. ifr.contents().find("body").unbind("mouseup");
  78. }
  79. },50);
  80. }
  81. }
  82. )
  83. }
  84.  
  85. function getVideoCode(title){
  86. var t = title.match(/[A-Za-z]+\-\d+/);
  87. if(!t){
  88. t = title.match(/heyzo[\-\_]?\d{4}/);
  89. }
  90. if(!t){
  91. t = title.match(/\d{6}[\-\_]\d{3}/);
  92. }
  93. if(!t){
  94. t = title.match(/[A-Za-z]+\d+/);
  95. }
  96. return t;
  97. }
  98.  
  99. function getVideoInfo(id){
  100.  
  101.  
  102. var info = "<div id='" + id + "' class='item_info'></div>";
  103. item_list.append(info);
  104. GM_xmlhttpRequest({
  105. method: "GET",
  106. url: "https://javdb008.com/search?q="+id+"&f=all",
  107. onload: xhr => {
  108. var xhr_data = $(xhr.responseText);
  109. if(!(xhr_data.find("div.alert").length)){
  110. var title = xhr_data.find("div.video-title").html();
  111. var item_info = item_list.find("#" + id);
  112. var info_html ="<div class='item_border'><h4>" + title + "</h4></div>";
  113. item_info.append(info_html);
  114. var img = xhr_data.find("div.cover img").attr("src");;
  115. item_info.find(".item_border").append("<img src='" + img + "'>");
  116. }else{
  117. getUncensored(id);
  118. }
  119. }
  120. })
  121. }
  122.  
  123. function getUncensored(id){
  124. GM_xmlhttpRequest({
  125. method: "GET",
  126. url: "https://avsox.monster/cn/search/" + id,
  127. onload: xhr => {
  128. var xhr_data = $(xhr.responseText);
  129. if(!(xhr_data.find("div.alert").length)){
  130. var title = xhr_data.find("div.photo-info span").html();
  131. var item_info = item_list.find("#" + id);
  132. var info_html ="<div class='item_border'><h4>" + title + "</h4></div>";
  133. item_info.append(info_html);
  134. var details_url = xhr_data.find("a.movie-box").attr("href");
  135. GM_xmlhttpRequest({
  136. method: "GET",
  137. url: details_url,
  138. onload: temp => {
  139. var img = $(temp.responseText).find("a.bigImage").attr("href");
  140. item_info.find(".item_border").append("<img src='" + img + "'>");
  141. }
  142. });
  143. }
  144. }
  145. })
  146. }
  147.  
  148. function getMarkList(items){
  149. for(var i=0;i<items.length;i++){
  150. if(GM_getValue($(items[i]).attr("title")))
  151. $(items[i]).find("i[class$='folder']").append("<i class='mark_ico'></i>");;
  152. }
  153. }
  154.  
  155. function hiddenVideoInfo(id){
  156. item_list.find("div#" + id).css("display","none");
  157. }
  158.  
  159. function itemEvent(){
  160. var item = item_list.find("li");
  161. getMarkList(item);
  162. item.mouseenter(
  163.  
  164.  
  165. function(f){
  166. console.log("查到了!");
  167. item_name = $(this).attr("title");
  168. var id = getVideoCode(item_name);
  169. if(id){
  170. if(!(item_list.find("div#"+id).length))
  171. getVideoInfo(id);
  172. showVideoInfo(item_list.find("div#"+id),f.clientX,f.clientY);
  173. }
  174. }
  175. );
  176. item.mouseleave(
  177. function(){
  178. item_name = $(this).attr("title");
  179. hiddenVideoInfo(getVideoCode(item_name));
  180. }
  181. );
  182. item.mouseup(
  183. function(event){
  184. item_obj = $(this);
  185. item_name = $(this).attr("title");
  186. hiddenVideoInfo(getVideoCode(item_name));
  187. if(event.button == 2)
  188. showMarkButton(item_name);
  189. }
  190. );
  191. };
  192.  
  193. function setCss(){
  194. $("head").append(`
  195. <style type='text/css'>
  196. #read_mark .mark{
  197. display:none;
  198. }
  199. #read_mark .mark-show{
  200. display:block;
  201. }
  202. </style>
  203. `);
  204. ifr.contents().find("head").append(`
  205. <style type='text/css'>
  206. #js_data_list i.mark_ico{
  207. width:40px;
  208. height:40px;
  209. position:absolute;
  210. top:14px;
  211. left:12px;
  212. background-image:url(data:image/png;base64,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);
  213. }
  214. .item_info{
  215. display:none;
  216. width:400px;
  217. position:fixed;
  218. z-index:100;
  219. border-radius:5px;
  220. background:rgba(248,248,255,0.7);
  221. }
  222. .item_border{
  223. margin:5px;
  224. padding:5px 5px 0px 5px;
  225. border:1px solid gray;
  226. border-radius:5px;
  227. }
  228. .item_border h4{
  229. margin-bottom:5px;
  230. }
  231. .item_border img{
  232. width:100%;
  233. }
  234. </style>
  235. `);
  236. }
  237.  
  238. function showMarkButton(name){
  239. if(!(GM_getValue(name))){
  240. $("#del_mark").removeClass("mark-show");
  241. $("#add_mark").addClass("mark-show");
  242. }
  243. else{
  244. $("#add_mark").removeClass("mark-show");
  245. $("#del_mark").addClass("mark-show");
  246. }
  247. }
  248.  
  249. function showVideoInfo(ele, x, y){
  250. if(x + 400 > ifr.width())
  251. x = x - 400;
  252. var ty = y + 326;
  253. if(ty > ifr.height())
  254. y = y - (ty - ifr.height());
  255. ele.css("left",x);
  256. ele.css("top",y);
  257. ele.css("display","block");
  258. }
  259.  
  260.  
  261. })();