// ==UserScript==
    // @name         PlexPlaybackRate
    // @namespace    http://tampermonkey.net/
    // @version      2024-04-03
    // @description  try to take over the world!
    // @author       You
    // @match        http://192.168.1.10:32400/web/index.html
    // @icon         https://www.google.com/s2/favicons?sz=64&domain=1.10
    // @grant        none
    // ==/UserScript==
    
    (function() {
        'use strict';
        const timer = setInterval(() => {
        const element = document.querySelector('[data-testid="playbackSettingsContainer"]');
            const playbackRateEl = document.querySelector('.playback-rate');
            if (element && !playbackRateEl) {
                const divs = `
        <div class="AudioVideoSettingsRow-row-thlbfp playback-rate"><div class="AudioVideoSettingsRow-label-KyxW_F AudioVideoSettingsRow-cell-Vk7CGy">倍速</div><div class="AudioVideoSettingsRow-cell-Vk7CGy">
    <button onclick="document.querySelector('video').playbackRate = 1">1x</button>
    <button onclick="document.querySelector('video').playbackRate = 1.2">1.2x</button>
    <button onclick="document.querySelector('video').playbackRate = 1.5">1.5x</button>
    <button onclick="document.querySelector('video').playbackRate = 2">2x</button>
    </div></div>
        `;
        element.insertAdjacentHTML('beforeend', divs);
            }
        }, 1000);

       // 支持按键控制
 function handleKeyEvent(event) {
            switch (event.key) {
                case '1':
                    document.querySelector('video').playbackRate = 1;
                    break;
                case '2':
                    document.querySelector('video').playbackRate = 1.2
                    break;
                case '3':
                    document.querySelector('video').playbackRate = 1.5
                    break;
                case '4':
                    document.querySelector('video').playbackRate = 2
                    break;
                default:
                    break;
            }
        }

        document.addEventListener('keydown', handleKeyEvent);
    
    })();

家用宽带虽然提供了ipv6公网地址,但是家用宽带会定期进行pppoe重播。
重播会分配不同的ipv6前缀,但局域网内的设备在路由重播后并不会将之前的ipv6前缀删除,而是继续根据新的ipv6前缀生成新的ip。
这样经过几次重播后,局域网设备就会累积大量的ipv6地址,但其中只有1个是可用的。而且这些ipv6地址在ddns-go中的顺序有相当的随意性,无法使用@数字的方式准确选择正确地址.

- 阅读剩余部分 -