Skip to content

Instantly share code, notes, and snippets.

@Denis-Alexeev
Last active October 5, 2025 19:09
Show Gist options
  • Select an option

  • Save Denis-Alexeev/6972bcac1982bae371f06cbfd150b5b6 to your computer and use it in GitHub Desktop.

Select an option

Save Denis-Alexeev/6972bcac1982bae371f06cbfd150b5b6 to your computer and use it in GitHub Desktop.
// ==UserScript==
// @name DetiFm Podcast Show All Button
// @namespace http://tampermonkey.net/
// @version 1.5
// @description Заменяет "Показать ещё" на "Показать всё" и раскрывает все эпизоды за раз
// @match https://detifm.ru/fairy_tales/id/*
// @grant none
// @author Denis-Alexeev
// @source https://gist.github.com/Denis-Alexeev/6972bcac1982bae371f06cbfd150b5b6
// ==/UserScript==
/*
📄 Описание:
Этот скрипт заменяет кнопку «Показать ещё» на «Показать всё» на сайте detifm.ru.
После нажатия он автоматически раскрывает все эпизоды подкаста, кликая по кнопке до тех пор,
пока не будут загружены все записи.
🔧 Особенности:
- Автоматически меняет текст кнопки.
- Раскрывает все эпизоды одним кликом.
- Работает при навигации без перезагрузки страницы.
🌐 Поддерживаемые страницы:
https://detifm.ru/fairy_tales/id/*
Автор: https://github.com/Denis-Alexeev/
*/
(function() {
'use strict';
function init() {
const moreBtn = document.querySelector('.podcast-list__listen-more.js-more-button');
if (!moreBtn) {
setTimeout(init, 300);
return;
}
if (moreBtn.dataset.listenerAlreadyAdded) return;
moreBtn.dataset.listenerAlreadyAdded = 'true';
moreBtn.textContent = 'Показать всё';
moreBtn.addEventListener('click', async (e) => {
e.preventDefault();
e.stopPropagation();
let btn = document.querySelector('.podcast-list__listen-more.js-more-button');
while (btn && !btn.classList.contains('hidden')) {
btn.click(); // вызывать родной обработчик
await new Promise(r => setTimeout(r, 300)); // подождать подгрузку
btn = document.querySelector('.podcast-list__listen-more.js-more-button');
}
}, { once: true });
}
init();
let lastUrl = location.href;
setInterval(() => {
if (location.href !== lastUrl) {
lastUrl = location.href;
setTimeout(init, 800);
}
}, 1000);
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment