// ==Script do Usuário== // @name Acelerar a reprodução do potampermonkey.net// @namespace https://t.co/EcRyuxlHjq // @versão 1.1 // @description Adicionada função de conxiaoyuzhoufm.com/episode/reprodução à versão web do Xiaoyuzhou // @autor Você // @match https://t.co/oV7FDA6DLX* // @grant nenhum // ==/UserScript== (função() { 'use strict'; // Aguardando o carregamento dos elementos de áudio função waitForAudio() { const audio = document.querySelector('audio'); se (áudio) { adicionarControleDeVelocidade(áudio); } outro { setTimeout(waitForAudio, 500); } } // Adicionar controle de velocidade função addSpeedControl(audio) { // Criar um contêiner de controle de velocidade const speedContainer = document.createElement('div'); https://t.co/NnVY7mFfir.cssText = ` posição: fixa; topo: 80px; direita: 20px; fundo: branco; raio da borda: 8px; preenchimento: 10px; box-shadow: 0 2px 10px rgba(0,0,0,0.1); Índice z: 1000; Exibir: flexível; flex-direction: coluna; espaçamento: 8px; `; // Opções de velocidade const velocidades = [0.5, 0.75, 1.0, 1.25, 1.5, 1.75, 2.0]; // Criar título const title = document.createElement('div'); title.textContent = 'Ajuste da velocidade de reprodução'; https://t.co/kkc695BtY1.cssText = ` tamanho da fonte: 12px; cor: #666; alinhamento do texto: centralizado; margem-inferior: 5px; `; speedContainer.appendChild(título); // Criar botão de aceleração velocidades.paraCada(velocidade => { const btn = document.createElement('button'); btn.textContent = `${speed}x`; https://t.co/5ZBU1WBy4L.cssText = ` preenchimento: 8px 15px; borda: 1px sólida #ddd; raio da borda: 5px; fundo: branco; cursor: ponteiro; tamanho da fonte: 14px; transição: todos os 0,2s; `; // Define o estilo para a velocidade atual. se (velocidade === 1.0) { https://t.co/5ZBU1WBy4L.background = 'var(--theme-color, #25B4E1)'; https://t.co/5ZBU1WBy4L.color = 'branco'; https://t.co/5ZBU1WBy4L.borderColor = 'var(--theme-color, #25B4E1)'; } btn.addEventListener('click', () => { taxa.reprodução de áudio = velocidade; // Atualizar todos os estilos de botão speedContainer.querySelectorAll('button').forEach(b => { https://t.co/kqnhnypYTa.background = 'white'; https://t.co/kqnhnypYTa.color = 'preto'; https://t.co/kqnhnypYTa.borderColor = '#ddd'; }); // Destacar o botão atual https://t.co/5ZBU1WBy4L.background = 'var(--theme-color, #25B4E1)'; https://t.co/5ZBU1WBy4L.color = 'branco'; https://t.co/5ZBU1WBy4L.borderColor = 'var(--theme-color, #25B4E1)'; }); btn.addEventListener('mouseenter', () => { se (audio.playbackRate !== velocidade) { https://t.co/5ZBU1WBy4L.background = '#f5f5f5'; } }); btn.addEventListener('mouseleave', () => { se (audio.playbackRate !== velocidade) { https://t.co/5ZBU1WBy4L.background = 'white'; } }); speedContainer.appendChild(btn); }); // Adicionar à página document.body.appendChild(speedContainer); // Adicionar suporte a atalhos de teclado document.addEventListener('keydown', (e) => { Use as teclas numéricas de 1 a 7 para alternar rapidamente entre as velocidades. se (e.key >= '1' && e.key <= '7') { const index = parseInt(e.key) - 1; se (velocidades[índice]) { taxa.reprodução de áudio = velocidades[índice]; // Aciona o efeito de clique do botão correspondente speedContainer.querySelectorAll('button')[index + 1].click(); } } }); console.log('Controle de velocidade adicionado! Você pode usar as teclas numéricas de 1 a 7 para alternar rapidamente entre as velocidades'); } // Comece a ouvir waitForAudio(); })();
Carregando detalhes do thread
Buscando os tweets originais no X para montar uma leitura limpa.
Isso normalmente leva apenas alguns segundos.