Lockr Helper

Displays a button to open izen.lol while on lockr.net.

スクリプトをインストールするには、Tampermonkey, GreasemonkeyViolentmonkey のような拡張機能のインストールが必要です。

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

スクリプトをインストールするには、TampermonkeyViolentmonkey のような拡張機能のインストールが必要です。

スクリプトをインストールするには、TampermonkeyUserscripts のような拡張機能のインストールが必要です。

このスクリプトをインストールするには、Tampermonkeyなどの拡張機能をインストールする必要があります。

このスクリプトをインストールするには、ユーザースクリプト管理ツールの拡張機能をインストールする必要があります。

(ユーザースクリプト管理ツールは設定済みなのでインストール!)

Advertisement:

このスタイルをインストールするには、Stylusなどの拡張機能をインストールする必要があります。

このスタイルをインストールするには、Stylus などの拡張機能をインストールする必要があります。

このスタイルをインストールするには、Stylus tなどの拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

(ユーザースタイル管理ツールは設定済みなのでインストール!)

Advertisement:

このスクリプトの質問や評価の投稿はこちら通報はこちらへお寄せください
// ==UserScript==
// @name         Lockr Helper
// @namespace    https://greasyfork.org/en/users/1375891-wibu-elite
// @version      1.2 (27 June, 2026)
// @description  Displays a button to open izen.lol while on lockr.net.
// @author       Kinnena
// @match        *://lockr.net/*
// @icon         https://cdn-icons-png.flaticon.com/256/394/394546.png
// @grant        GM_setClipboard
// @grant        GM_setValue
// @grant        GM_getValue
// @license      MIT
// @run-at       document-end
// ==/UserScript==
(function () {
    'use strict';
    if (document.getElementById('lockr-helper-popup')) return;

    const savedPos = {
        top: GM_getValue('popup_top', '20px'),
        right: null,
        left: GM_getValue('popup_left', null)
    };
    const savedMinimized = GM_getValue('popup_minimized', false);

    const popup = document.createElement('div');
    popup.id = 'lockr-helper-popup';

    const titleBar = document.createElement('div');
    titleBar.id = 'lockr-titlebar';
    titleBar.innerHTML = `
        <span style="font-size:18px;font-weight:bold;">🔓 Lockr Helper</span>
        <button id="lockr-minimize" title="Minimize">—</button>
    `;
    Object.assign(titleBar.style, {
        display: 'flex',
        justifyContent: 'space-between',
        alignItems: 'center',
        marginBottom: '10px',
        cursor: 'move',
        userSelect: 'none'
    });

    const body = document.createElement('div');
    body.id = 'lockr-body';
    body.innerHTML = `
    <div style="margin-bottom:15px;line-height:1.5;">
        This Lockr link can be bypassed with <b>izen.lol</b>.<br><br>
        1. Click <b>Copy URL</b> to copy this page's link.<br>
        2. Open izen.lol and paste the link there.<br>
        3. Wait until the bypass is complete.<br>
        4. Then copy the bypassed link from izen.lol.
    </div>
    <div style="display:flex;gap:10px;margin-top:15px;">
        <button id="lockr-copy">Copy URL</button>
        <button id="lockr-open">Open izen.lol</button>
        <button id="lockr-close">Close</button>
    </div>
    <div id="lockr-copy-msg" style="margin-top:10px;font-size:12px;color:#4CAF50;text-align:center;min-height:16px;"></div>
    <div style="margin-top:8px;font-size:12px;color:#aaa;text-align:center;">
        Made by Kinnena with ❤️
    </div>
    `;

    popup.appendChild(titleBar);
    popup.appendChild(body);

    Object.assign(popup.style, {
        position: 'fixed',
        top: savedPos.top,
        width: '340px',
        background: '#1f1f1f',
        color: '#fff',
        padding: '18px',
        borderRadius: '10px',
        boxShadow: '0 0 20px rgba(0,0,0,.5)',
        zIndex: '999999999',
        fontFamily: 'Arial, sans-serif'
    });

    if (savedPos.left) {
        popup.style.left = savedPos.left;
    } else {
        popup.style.right = '20px';
    }

    document.body.appendChild(popup);

    if (savedMinimized) {
        body.style.display = 'none';
        document.getElementById('lockr-minimize').textContent = '+';
        popup.style.width = 'auto';
    }

    const style = document.createElement('style');
    style.textContent = `
        #lockr-helper-popup button{
            padding:10px;
            border:none;
            border-radius:6px;
            cursor:pointer;
            font-size:13px;
        }
        #lockr-body button{
            flex:1;
        }
        #lockr-minimize{
            background:transparent;
            color:#aaa;
            font-size:16px;
            padding:2px 8px !important;
            line-height:1;
        }
        #lockr-minimize:hover{
            color:#fff;
        }
        #lockr-copy{
            background:#2196F3;
            color:white;
        }
        #lockr-copy:hover{
            background:#1e88e5;
        }
        #lockr-open{
            background:#4CAF50;
            color:white;
        }
        #lockr-open:hover{
            background:#43a047;
        }
        #lockr-close{
            background:#555;
            color:white;
        }
        #lockr-close:hover{
            background:#666;
        }
        #lockr-body > div:first-child > div{
            display:flex;
            gap:10px;
            margin-top:15px;
        }
    `;
    document.head.appendChild(style);

    document.getElementById('lockr-minimize').onclick = () => {
        const isMinimized = body.style.display === 'none';
        if (isMinimized) {
            body.style.display = '';
            document.getElementById('lockr-minimize').textContent = '—';
            popup.style.width = '340px';
            GM_setValue('popup_minimized', false);
        } else {
            body.style.display = 'none';
            document.getElementById('lockr-minimize').textContent = '+';
            popup.style.width = 'auto';
            GM_setValue('popup_minimized', true);
        }
    };

    document.getElementById('lockr-copy').onclick = () => {
        const msg = document.getElementById('lockr-copy-msg');
        try {
            GM_setClipboard(window.location.href);
            msg.textContent = '✅ URL copied!';
        } catch {
            navigator.clipboard.writeText(window.location.href).then(() => {
                msg.textContent = '✅ URL copied!';
            }).catch(() => {
                msg.textContent = '❌ Failed to copy.';
            });
        }
        setTimeout(() => { msg.textContent = ''; }, 2500);
    };

    document.getElementById('lockr-open').onclick = () => {
        window.open('https://izen.lol', '_blank');
    };

    document.getElementById('lockr-close').onclick = () => {
        popup.remove();
    };

    let isDragging = false;
    let dragOffsetX = 0;
    let dragOffsetY = 0;

    titleBar.addEventListener('mousedown', (e) => {
        if (e.target.id === 'lockr-minimize') return;
        isDragging = true;
        dragOffsetX = e.clientX - popup.getBoundingClientRect().left;
        dragOffsetY = e.clientY - popup.getBoundingClientRect().top;
        popup.style.right = 'auto';
        e.preventDefault();
    });

    document.addEventListener('mousemove', (e) => {
        if (!isDragging) return;
        const newLeft = e.clientX - dragOffsetX;
        const newTop = e.clientY - dragOffsetY;
        popup.style.left = newLeft + 'px';
        popup.style.top = newTop + 'px';
    });

    document.addEventListener('mouseup', () => {
        if (!isDragging) return;
        isDragging = false;
        GM_setValue('popup_top', popup.style.top);
        GM_setValue('popup_left', popup.style.left);
    });

})();