Pixiv simpler

ピクシブの表示とかをいくらかシンプルにします

Чтобы установить этот скрипт, вы сначала должны установить расширение браузера, например Tampermonkey, Greasemonkey или Violentmonkey.

Для установки этого скрипта вам необходимо установить расширение, такое как Tampermonkey.

Чтобы установить этот скрипт, вы сначала должны установить расширение браузера, например Tampermonkey или Violentmonkey.

Чтобы установить этот скрипт, вы сначала должны установить расширение браузера, например Tampermonkey или Userscripts.

Чтобы установить этот скрипт, сначала вы должны установить расширение браузера, например Tampermonkey.

Чтобы установить этот скрипт, вы должны установить расширение — менеджер скриптов.

(у меня уже есть менеджер скриптов, дайте мне установить скрипт!)

Чтобы установить этот стиль, сначала вы должны установить расширение браузера, например Stylus.

Чтобы установить этот стиль, сначала вы должны установить расширение браузера, например Stylus.

Чтобы установить этот стиль, сначала вы должны установить расширение браузера, например Stylus.

Чтобы установить этот стиль, сначала вы должны установить расширение — менеджер стилей.

Чтобы установить этот стиль, сначала вы должны установить расширение — менеджер стилей.

Чтобы установить этот стиль, сначала вы должны установить расширение — менеджер стилей.

(у меня уже есть менеджер стилей, дайте мне установить скрипт!)

// ==UserScript==
// @name         Pixiv simpler
// @namespace    http://tampermonkey.net/
// @version      0.2
// @description  ピクシブの表示とかをいくらかシンプルにします
// @author       y_kahou
// @match        https://www.pixiv.net/*
// @grant        none
// @noframes
// @require      http://code.jquery.com/jquery-3.5.1.min.js
// @require      https://greasyfork.org/scripts/419955-y-method/code/y_method.js?version=890440
// ==/UserScript==

var $ = window.jQuery;

const __CSS__ = `
/* ブックマーク後の広告とか */
.sc-185y4-0.eFqYrE,
.sc-1yvhotl-1.bEDiSv,
.sc-1k7ijbl-0.kJMlkT
{
    display: none;
}

/* 関連サービス削除 */
.rmdopf-0.kBlNos {
    display: none;
}
/* 関連サービス幅 削除 */
.sc-4nj1pr-3.iwONkn {
    gap: 0px;
}
/* プレミア無料体験削除 */
.sc-4nj1pr-5.jqJjEB {
    display: none;
}
/* 検索欄左寄せ(ダークモード対応) */
.sc-4nj1pr-0.bZtZIE,
.sc-4nj1pr-0.gRbSeX {
    grid-template-columns: 1fr minmax(0px, 528px) 10fr;
}

/* 追加メニュー用 */
.simpler.menu a {
    display: inline-block;
    position: relative;
    top: 50%;
    transform: translateY(-50%);
    white-space: nowrap;
}
.simpler.menu a:hover {
    text-decoration: underline;
}

/* メインで見ている画像以外のブクマボタン */
.other-bookmark {
    pointer-events: none;
}


/* 一覧を画面幅に広げる */
section ul.fit-width {
    display: flex;
    position: absolute;
    width: 90vw;
    left: 5vw;
    margin-top: 100px;
}

`;
addStyle('simpler', __CSS__);

const keyPrevNext = function(e) {
    if (!$(document.body).hasClass('viewer-open')) {
        if (e.keyCode == 37 && $('.key-prev').length) $('.key-prev')[0].click()
        if (e.keyCode == 39 && $('.key-next').length) $('.key-next')[0].click()
    }
}

const menu = '.sc-4nj1pr-4.iUIuEb'
new MutationObserver(async (records) => {
    
    // 追加されていなかったら
    if (!$('.simpler', menu).length) {
        $('div:eq(2)', menu) // 作品投稿ボタンの後ろに追加
            .after(`<div class="simpler menu"><a href="/dashboard/works">作品管理</a></div>`).next()
            .after(`<div class="simpler menu"><a href="/bookmark.php">ブックマーク</a></div>`).next()
        
        // 追加した件数分セル数を追加
        let def = 5;
        $(menu).css('grid-template-columns', `repeat(${def + 2}, auto)`)
    }
    // 一覧
    if (location.pathname.endsWith('artworks')) {
        // 幅設定
        if (!$('section ul.fit-width').length) {
            $('section ul').addClass('fit-width')
        }
        // 左右キー押下で前/次ページ
        $(document.body).off('keyup', keyPrevNext)
        $(document.body).on('keyup', keyPrevNext)
        if ($('.xhhh7v-0').length) {
            $('.xhhh7v-0 a:eq(0)').addClass('key-prev')
            $('.xhhh7v-0 a:eq(-1)').addClass('key-next')
        } else {
            $('._1zRQ9vu a:eq(0)').addClass('key-prev')
            $('._1zRQ9vu a:eq(-1)').addClass('key-next')
        }
    }
    
    // メイン以外すべてのブクマボタンにclass設定
    for (let b of document.querySelectorAll('div:not(.other-bookmark) > .iPGEIN:not(.gtm-main-bookmark)')) {
        b.parentNode.classList.add('other-bookmark')
    }
    
    // マウスオーバーでタイトルチップ表示
    for (let d of document.querySelectorAll('.iasfms-3:not([title])')) {
        let img = d.querySelector('img');
        if (img) {
            let title = img.getAttribute('alt');
            d.setAttribute('title', title);
        }
    }
    
}).observe(document.body, { childList:true, subtree: true })