feat(anime): turkanime bölüm listesi çekme özelliği ekle
Turkanime anime URL'lerini destekleyerek bölüm listelerini çekme özelliği eklendi. Kullanıcılar turkanime.tv anime sayfa URL'lerini girerek bölüm linklerini alabilirler. - Yeni TURKANIME_DEBUG çevre değişkeni eklendi - /api/turkanime/episodes API uç noktası eklendi - İstemci tarafında URL normalizasyonu ve işlemesi eklendi - HTML'den bölüm linklerini çıkarma mantığı eklendi
This commit is contained in:
@@ -98,8 +98,23 @@
|
||||
}
|
||||
}
|
||||
|
||||
function normalizeTurkanimeUrl(value) {
|
||||
if (!value || typeof value !== "string") return null;
|
||||
try {
|
||||
const url = new URL(value.trim());
|
||||
if (url.protocol !== "https:") return null;
|
||||
const host = url.hostname.toLowerCase();
|
||||
if (!host.endsWith("turkanime.tv")) return null;
|
||||
if (!url.pathname.startsWith("/anime/")) return null;
|
||||
url.hash = "";
|
||||
return url.toString();
|
||||
} catch {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
async function handleUrlInput() {
|
||||
const input = prompt("Magnet veya YouTube URL girin:");
|
||||
const input = prompt("Magnet, YouTube veya turkanime URL girin:");
|
||||
if (!input) return;
|
||||
if (isMagnetLink(input)) {
|
||||
await apiFetch("/api/transfer", {
|
||||
@@ -110,6 +125,23 @@
|
||||
await list();
|
||||
return;
|
||||
}
|
||||
const normalizedTurkanime = normalizeTurkanimeUrl(input);
|
||||
if (normalizedTurkanime) {
|
||||
const resp = await apiFetch("/api/turkanime/episodes", {
|
||||
method: "POST",
|
||||
headers: { "Content-Type": "application/json" },
|
||||
body: JSON.stringify({ url: normalizedTurkanime })
|
||||
});
|
||||
if (!resp.ok) {
|
||||
const data = await resp.json().catch(() => null);
|
||||
alert(data?.error || "Turkanime bölümleri alınamadı.");
|
||||
return;
|
||||
}
|
||||
const data = await resp.json().catch(() => null);
|
||||
const links = Array.isArray(data?.links) ? data.links : [];
|
||||
alert(links.join("\n"));
|
||||
return;
|
||||
}
|
||||
const normalizedYoutube = normalizeYoutubeUrl(input);
|
||||
if (normalizedYoutube) {
|
||||
const resp = await apiFetch("/api/youtube/download", {
|
||||
@@ -126,7 +158,7 @@
|
||||
return;
|
||||
}
|
||||
alert(
|
||||
"Yalnızca magnet linkleri veya https://www.youtube.com/watch?v=... formatındaki YouTube URL'leri destekleniyor."
|
||||
"Yalnızca magnet linkleri, YouTube veya turkanime anime URL'leri destekleniyor."
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user