TitleSearch

try to take over the world!

当前为 2020-05-27 提交的版本,查看 最新版本

// ==UserScript==
// @name         TitleSearch
// @namespace    http://tampermonkey.net/
// @version      3.00
// @description  try to take over the world!
// @author       TitleSearch
// @match        *://www.abooky.com/*
// @match        *://www.yousuu.com/search*
// @match        *://dushuxiaozi.com/category*
// @require      http://libs.baidu.com/jquery/2.0.0/jquery.min.js
// ==/UserScript==

(function () {
    'use strict';

    var urllist = [
        { name: 'abooky', url: /www\.abooky\.com/, titleid: '.ts', nosign: '' },
    ];

    function gettitle(t, str1, str2) {
        let lnum, rnum, title;
        lnum = t.indexOf(str1);
        rnum = t.indexOf(str2);
        if (lnum < 0) lnum = 0
        if (rnum < 0) rnum = 0
        if (lnum > 0 || rnum > 0) {
            title = t.substring(lnum + 1, rnum);
        }
        if (title)
            title = title.replace('[TXT格式]', '').replace('\n', '');

        return title;
    }


    function addbutton(t) {
        if (t) {
            console.log(t);
            let title = gettitle(t, '《', '》');
            if (!title) {
                title = gettitle(t, '<', '>');
            }
            if (!title) {
                title = gettitle(t, ']', '⊙');
            }

            console.log(title);
            if (title) {
                let b = $('<button></button>');
                b.text('优书网');
                b.css({
                    "color": " #666",
                    "background-color": " #EEE",
                    "border-color": " #EEE",
                    "font-weight": " 300",
                    "font-size": " 16px",
                    "text-decoration": " none",
                    "text-align": " center",
                    "line-height": " 25px",
                    "height": " 25px",
                    "padding": " 0 15px",
                    "margin": " 0",
                    "display": " inline-block",
                    "appearance": " none",
                    "cursor": " pointer",
                    "border": " none",
                    "-webkit-box-sizing": " border-box",
                    "-moz-box-sizing": " border-box",
                    "box-sizing": " border-box",
                    "-webkit-transition-property": " all",
                    "transition-property": " all",
                    "-webkit-transition-duration": " .3s",
                    "transition-duration": " .3s",
                    "border-radius": " 4px"
                });
                b.click(function () {
                    var content = document.createElement("a");
                    content.href = 'http://www.yousuu.com/search/?search_type=title&search_value=' + title + '#TitleSearch';
                    content.target = '_blank';
                    document.body.appendChild(content);
                    content.click();
                    document.body.removeChild(content);
                });

                return b;
            }
        }
    }

    function make(obj) {
        if (obj.url.test(location.href)) {
            let t = $(obj.titleid).text();
            let b = addbutton(t);
            if (b) $(obj.titleid).after(b);

        }
    }

    function autoclick() {
        const books = $('.list-card-layout');
        console.log(books);
        if (books.length == 1) {
            const bookname = books.find('.bookname');
            console.log(bookname);
            if (bookname.length == 1) {
                bookname[0].click();
                setTimeout(function () { window.close(); }, 1000);
            }
        }
    }

    function dushuxiaozi() {
        function checkVisible(elm) {
            var rect = elm.getBoundingClientRect();
            var viewHeight = Math.max(document.documentElement.clientHeight, window.innerHeight);
            return !(rect.bottom < 0 || rect.top - viewHeight >= 0);
        }

        function loop() {
            const s = document.querySelector('.ias-trigger-next');
            if (s) {
                let r = checkVisible(s);
                if (r) {
                    s.click();
                    serch();
                }
            }

        }


        function serch() {
            var list = document.querySelectorAll("#main  h2 > a");
            console.log(list);
            for (var i = 0; i < list.length; i++) {
                let t = $(list[i]).text();
                console.log(t);
                if (list[i].getAttribute('titlesearch_mk') != 'true') {

                    let b = addbutton(t);
                    if (b) {
                        $(list[i]).after(b);
                        list[i].setAttribute('titlesearch_mk', 'true');
                    }

                }
            }
        }

        setInterval(loop, 1000);
        serch();
    }

    function run() {

        if (location.hash && location.hash == '#TitleSearch') {
            setTimeout(autoclick, 500);
        }
        else {
            if (/dushuxiaozi/.test(location.href)) {
                dushuxiaozi();
            } else {
                urllist.forEach(make);
            }

        }
    }

    run();


})();