Last active
June 13, 2026 19:01
-
-
Save XianThi/b808fcfd0dcedd0bcac78f8995cf895f to your computer and use it in GitHub Desktop.
Dizipal next episode/season script without any clicks!
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // ==UserScript== | |
| // @name dizipalExt | |
| // @namespace http://tampermonkey.net/ | |
| // @version 2026-05-27 | |
| // @description Dizipal next episode/season script without any clicks! | |
| // @author XianThi~ | |
| // @match https://dizipal.im/* | |
| // @match *://*.cfd/* | |
| // @icon https://www.google.com/s2/favicons?sz=64&domain=dizipal.im | |
| // @grant GM_addStyle | |
| // @run-at document-end | |
| // @allFrames true | |
| // ==/UserScript== | |
| (function() { | |
| GM_addStyle(` | |
| .iframe-fullscreen-active { | |
| position: fixed !important; | |
| top: 0 !important; | |
| left: 0 !important; | |
| width: 100vw !important; | |
| height: 100vh !important; | |
| z-index: 999999 !important; | |
| background: #000 !important; | |
| } | |
| `); | |
| 'use strict'; | |
| function elemanBekle(selector, callback) { | |
| const el = document.querySelector(selector); | |
| if (el) { callback(el); return; } | |
| const observer = new MutationObserver(() => { | |
| const el = document.querySelector(selector); | |
| if (el) { callback(el); observer.disconnect(); } | |
| }); | |
| observer.observe(document.body, { childList: true, subtree: true }); | |
| } | |
| if (window.self === window.top) { | |
| console.log("[XianThi~] Script başlatıldı."); | |
| elemanBekle(".play-video-btn", (buton) => { | |
| console.log("[XianThi~] Oynat butonu bulundu, tıklanıyor..."); | |
| setTimeout(() => { buton.click(); }, 1000); | |
| }); | |
| window.addEventListener("message", (event) => { | |
| if (event.data === "tamEkranYapSinyali") { | |
| console.log("[XianThi~] Video başladı, iframe tam ekran yapılıyor..."); | |
| const iframe =document.querySelector('iframe'); | |
| const targetIframe = iframe || document.querySelector('iframe'); | |
| if (targetIframe) { | |
| targetIframe.classList.add('iframe-fullscreen-active'); | |
| } | |
| } | |
| if (event.data === "sonrakiBolumeGecSinyali") { | |
| console.log("[XianThi~] Video bitti sinyali alındı. Durum kontrol ediliyor..."); | |
| const activeIframe = document.querySelector('.iframe-fullscreen-active'); | |
| if (activeIframe) activeIframe.classList.remove('iframe-fullscreen-active'); | |
| const mevcutEleman = document.querySelector(".is-current"); | |
| if (!mevcutEleman) return; | |
| const kardesElemanlar = [...mevcutEleman.parentNode.children]; | |
| const indeks = kardesElemanlar.indexOf(mevcutEleman); | |
| const sonrakiBolumKutusu = kardesElemanlar[indeks + 1]; | |
| if (sonrakiBolumKutusu && sonrakiBolumKutusu.children && sonrakiBolumKutusu.children[1]) { | |
| console.log("[XianThi~] Sonraki bölüm bulundu. Geçiş yapılıyor..."); | |
| sonrakiBolumKutusu.children[1].click(); | |
| } | |
| else { | |
| console.log("[XianThi~] Sonraki sezon kontrol ediliyor..."); | |
| const aktifSezonLink = document.querySelector("#episode-season-options ul li a.font-bold.text-red-1000"); | |
| if (aktifSezonLink) { | |
| const mevcutSezonLi = aktifSezonLink.parentNode; | |
| const sezonLiListesi = [...mevcutSezonLi.parentNode.children]; | |
| const sezonIndeks = sezonLiListesi.indexOf(mevcutSezonLi); | |
| const sonrakiSezonLi = sezonLiListesi[sezonIndeks + 1]; | |
| if (sonrakiSezonLi && sonrakiSezonLi.querySelector("a")) { | |
| console.log("[XianThi~] Yeni sezon bulundu! Sonraki sezona tıklanıyor..."); | |
| sonrakiSezonLi.querySelector("a").click(); | |
| setTimeout(() => { | |
| const ilkBolumListesi = document.querySelector(".is-current")?.parentNode || document.querySelector("#episodes-list-scroll div"); | |
| if (ilkBolumListesi && ilkBolumListesi.children[1]) { | |
| console.log("[XianThi~] Yeni sezonun ilk bölümü başlatılıyor..."); | |
| ilkBolumListesi.children[1].click(); | |
| } | |
| }, 2000); | |
| } else { | |
| console.log("[XianThi~] Başka bölüm yok."); | |
| } | |
| } else { | |
| console.log("[XianThi~] Hata: Aktif sezon elemanı seçilemedi."); | |
| } | |
| } | |
| } | |
| }); | |
| } | |
| else { | |
| elemanBekle("video", (videoElementi) => { | |
| videoElementi.muted = true; | |
| setTimeout(() => { | |
| videoElementi.play().then(() => { | |
| console.log("[XianThi~] Video başarıyla otomatik başlatıldı."); | |
| setTimeout(() => { | |
| videoElementi.muted = false; | |
| window.parent.postMessage("tamEkranYapSinyali", "*"); | |
| console.log("[XianThi~] Ses başarıyla geri açıldı, tam ekran aktif."); | |
| }, 200); | |
| }).catch(err => { | |
| console.log("[XianThi~] Tarayıcı otomatik oynatmayı engelledi."); | |
| }); | |
| }, 1500); | |
| const kontrol = setInterval(() => { | |
| if (!videoElementi || isNaN(videoElementi.duration)) return; | |
| const kalanSure = videoElementi.duration - videoElementi.currentTime; | |
| if (kalanSure < 30) { | |
| console.log("[XianThi~] Son 30 saniye! Sonraki bölüme geçiş emri gönderiliyor..."); | |
| clearInterval(kontrol); | |
| window.parent.postMessage("sonrakiBolumeGecSinyali", "*"); | |
| } | |
| }, 1000); | |
| }); | |
| } | |
| })(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment