AMQ Private Session

Set invisible status automatically.

当前为 2022-08-16 提交的版本,查看 最新版本

// ==UserScript==
// @name         AMQ Private Session
// @namespace    https://tampermonkey.net/
// @version      0.2.0
// @description  Set invisible status automatically.
// @author       SlashNephy <[email protected]>
// @match        https://animemusicquiz.com/
// @license      MIT license
// @grant        none
// @icon         https://animemusicquiz.com/favicon-32x32.png
// ==/UserScript==
const AMQ_createInstalledWindow = () => {
    if (!window.setupDocumentDone)
        return;
    if ($('#installedModal').length === 0) {
        $('#gameContainer').append($(`
            <div class="modal fade" id="installedModal" tabindex="-1" role="dialog">
                <div class="modal-dialog" role="document">
                    <div class="modal-content">
                        <div class="modal-header">
                            <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                                <span aria-hidden="true">×</span>
                            </button>
                            <h2 class="modal-title">Installed Userscripts</h2>
                        </div>
                        <div class="modal-body" style="overflow-y: auto;max-height: calc(100vh - 150px);">
                            <div id="installedContainer">
                                You have the following scripts installed (click on each of them to learn more)<br>
                                This window can also be opened by going to AMQ settings (the gear icon on bottom right) and clicking "Installed Userscripts"
                                <div id="installedListContainer"></div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        `));
        $('#mainMenu')
            .prepend($(`
            <div class="button floatingContainer mainMenuButton" id="mpInstalled" data-toggle="modal" data-target="#installedModal">
                <h1>Installed Userscripts</h1>
            </div>
        `))
            .css('margin-top', '20vh');
        $('#optionsContainer > ul').prepend($(`
            <li class="clickAble" data-toggle="modal" data-target="#installedModal">Installed Userscripts</li>
        `));
        AMQ_addStyle(`
            .descriptionContainer {
                width: 95%;
                margin: auto;
            }
            .descriptionContainer img {
                width: 80%;
                margin: 10px 10%;
            }
        `);
    }
};
const AMQ_addScriptData = (metadata) => {
    AMQ_createInstalledWindow();
    $('#installedListContainer').append($('<div></div>')
        .append($('<h4></h4>')
        .html(`<i class="fa fa-caret-right"></i> ${metadata.name !== undefined ? metadata.name : 'Unknown'} by ${metadata.author !== undefined ? metadata.author : 'Unknown'}`)
        .css('font-weight', 'bold')
        .css('cursor', 'pointer')
        .click(function () {
        const selector = $(this).next();
        if (selector.is(':visible')) {
            selector.slideUp();
            $(this).find('.fa-caret-down').addClass('fa-caret-right').removeClass('fa-caret-down');
        }
        else {
            selector.slideDown();
            $(this).find('.fa-caret-right').addClass('fa-caret-down').removeClass('fa-caret-right');
        }
    }))
        .append($('<div></div>')
        .addClass('descriptionContainer')
        .html(metadata.description !== undefined ? metadata.description : 'No description provided')
        .hide()));
};
const AMQ_addStyle = (css) => {
    const head = document.head;
    const style = document.createElement('style');
    head.appendChild(style);
    style.appendChild(document.createTextNode(css));
};

const INVISIBLE_STATUS = 4;
document.addEventListener('DOMNodeInserted', () => {
    switch (socialTab?.socialStatus?.currentStatus) {
        case INVISIBLE_STATUS:
        case undefined:
            return;
        default:
            socialTab?.socialStatus?.changeSocialStatus(INVISIBLE_STATUS);
    }
});
AMQ_addScriptData({
    name: 'Private Session',
    author: 'SlashNephy &lt;[email protected]&gt;',
    description: '<p>Set invisible status automatically.</p>',
});