115艾薇预览

115登录后自动跳转到文件界面、文件界面放大、自动获取艾薇封面+标题

You will need to install an extension such as Tampermonkey, Greasemonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Userscripts to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install a user script manager extension to install this script.

(I already have a user script manager, let me install it!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(I already have a user style manager, let me install it!)

// ==UserScript==
// @name              115艾薇预览
// @namespace     http://tampermonkey.net/
// @version           1.6
// @description     115登录后自动跳转到文件界面、文件界面放大、自动获取艾薇封面+标题
// @author            kyay006
// @include           https://115.com/home/userhome
// @include           https://115.com/?*mode=wangpan*
// @domain           avmask.com
// @domain           avsox.asia
// @grant              GM_setValue
// @grant              GM_getValue
// @grant              GM_deleteValue
// @grant              GM_listValues
// @grant              GM_xmlhttpRequest
// ==/UserScript==

(function() {
    'use strict';
    if(window.location.href === "https://115.com/home/userhome")
        window.location = "https://115.com/?mode=wangpan";
    else
    {
        var item_list,item_obj,item_name;
        var ifr = $("iframe[style='position: absolute; top: 0px;']");
        $("div#js-main_mode").css("display","none");
        $("div.main-core").css("left","0");
        ifr.load(
            function(){
                setCss();
                addMarkButton();
                item_list = ifr.contents().find("body").find("div#js_data_list");
                item_list.mouseenter(
                    function(){
                        if($("div.exph-loader").css("display") === "none" && !(item_list.find("div#isload").length)){
                            item_list.append("<div id='isload'></div>");
                            itemEvent();
                        }
                    }
                );
            }
        );
    }

    function addMarkButton(){
        var read_mark = `
            <li id="read_mark">
                <a id="add_mark" class="mark" href="javascript:;">标记已阅</a>
                <a id="del_mark" class="mark" href="javascript:;">取消已阅</a>
            </li>
        `;
        ifr.contents().find("body").mouseup(
            function(event){
                if(event.button == 2){
                    setTimeout(function(){
                        $("div#js_float_content").find("li[val='open_dir']").after(read_mark);
                        if($("li#read_mark").length){
                            showMarkButton(item_name);
                            $("a#add_mark").click(
                                function(){
                                    GM_setValue(item_name,"1");
                                    showMarkButton(item_name);
                                    item_obj.find("i[class$='folder']").append("<i class='mark_ico'></i>");
                                    $("div#js_float_content").css("display","none");
                                    $("body div").last().css("display","none");
                                }
                            );
                            $("a#del_mark").click(
                                function(){
                                    GM_deleteValue(item_name);
                                    showMarkButton(item_name);
                                    item_obj.find("i.mark_ico").remove();
                                    $("div#js_float_content").css("display","none");
                                    $("body div").last().css("display","none");
                                }
                            );
                            ifr.contents().find("body").unbind("mouseup");
                        }
                    },50);
                }
            }
        )
    }

    function getVideoCode(title){
        var t = title.match(/[A-Za-z]+\-\d+/);
        if(!t){
            t = title.match(/heyzo[\-\_]?\d{4}/);
        }
        if(!t){
            t = title.match(/\d{6}[\-\_]\d{3}/);
        }
        if(!t){
            t = title.match(/[A-Za-z]+\d+/);
        }
        return t;
    }

    function getVideoInfo(id){
        var info = "<div id='" + id + "' class='item_info'></div>";
        item_list.append(info);
        GM_xmlhttpRequest({
            method: "GET",
            url: "https://avmask.com/cn/search/" + id,
            onload: xhr => {
                var xhr_data = $(xhr.responseText);
                if(!(xhr_data.find("div.alert").length)){
                    var title = xhr_data.find("div.photo-info span").html();
                    var item_info = item_list.find("#" + id);
                    var info_html ="<div class='item_border'><h4>" + title + "</h4></div>";
                    item_info.append(info_html);
                    var img = xhr_data.find("div.photo-frame img").attr("src").replace("ps.j","pl.j");;
                    item_info.find(".item_border").append("<img src='" + img + "'>");
                }else{
                    getUncensored(id);
                }
            }
        })
    }

    function getUncensored(id){
        GM_xmlhttpRequest({
            method: "GET",
            url: "https://avsox.asia/cn/search/" + id,
            onload: xhr => {
                var xhr_data = $(xhr.responseText);
                if(!(xhr_data.find("div.alert").length)){
                    var title = xhr_data.find("div.photo-info span").html();
                    var item_info = item_list.find("#" + id);
                    var info_html ="<div class='item_border'><h4>" + title + "</h4></div>";
                    item_info.append(info_html);
                    var details_url = xhr_data.find("a.movie-box").attr("href");
                    GM_xmlhttpRequest({
                        method: "GET",
                        url: details_url,
                        onload: temp => {
                            var img = $(temp.responseText).find("a.bigImage").attr("href");
                            item_info.find(".item_border").append("<img src='" + img + "'>");
                        }
                    });
                }
            }
        })
    }

    function getMarkList(items){
        for(var i=0;i<items.length;i++){
            if(GM_getValue($(items[i]).attr("title")))
                $(items[i]).find("i[class$='folder']").append("<i class='mark_ico'></i>");;
        }
    }

    function hiddenVideoInfo(id){
        item_list.find("div#" + id).css("display","none");
    }

    function itemEvent(){
        var item = item_list.find("li");
        getMarkList(item);
        item.mouseenter(
            function(f){
                item_name = $(this).attr("title");
                var id = getVideoCode(item_name);
                if(id){
                    if(!(item_list.find("div#"+id).length))
                        getVideoInfo(id);
                    showVideoInfo(item_list.find("div#"+id),f.clientX,f.clientY);
                }
            }
        );
        item.mouseleave(
            function(){
                item_name = $(this).attr("title");
                hiddenVideoInfo(getVideoCode(item_name));
            }
        );
        item.mouseup(
            function(event){
                item_obj = $(this);
                item_name = $(this).attr("title");
                hiddenVideoInfo(getVideoCode(item_name));
                if(event.button == 2)
                    showMarkButton(item_name);
            }
        );
    };

    function setCss(){
        $("head").append(`
            <style type='text/css'>
                #read_mark .mark{
                    display:none;
                }
                #read_mark .mark-show{
                    display:block;
                }
            </style>
        `);
    	ifr.contents().find("head").append(`
        	<style type='text/css'>
                #js_data_list i.mark_ico{
                    width:40px;
                    height:40px;
                    position:absolute;
                    top:14px;
                    left:12px;
                    background-image:url(data:image/png;base64,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);
                }
        		.item_info{
        			display:none;
        			width:400px;
        			position:fixed;
        			z-index:100;
        			border-radius:5px;
        			background:rgba(248,248,255,0.7);
        		}
        		.item_border{
                    margin:5px;
        			padding:5px 5px 0px 5px;
        			border:1px solid gray;
        			border-radius:5px;
        		}
        		.item_border h4{
        			margin-bottom:5px;
        		}
        		.item_border img{
        			width:100%;
        		}
        	</style>
        `);
    }

    function showMarkButton(name){
        if(!(GM_getValue(name))){
            $("#del_mark").removeClass("mark-show");
            $("#add_mark").addClass("mark-show");
        }
        else{
            $("#add_mark").removeClass("mark-show");
            $("#del_mark").addClass("mark-show");
        }
    }

    function showVideoInfo(ele, x, y){
        if(x + 400 > ifr.width())
            x = x - 400;
        var ty = y + 326;
        if(ty > ifr.height())
            y = y - (ty - ifr.height());
        ele.css("left",x);
        ele.css("top",y);
        ele.css("display","block");
    }


})();