............
............
Buyrun ilk html olarak yaptığım Halide budur murat usta bunun üzerinden test yapabilir sin local olarak ama Ben kendi apk ma yüklediğim de protokol sorunu ile karşılaştım http ve https protokol sorunları ile
<!DOCTYPE html>
<html lang="tr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>IPTV Bilgi Alma</title>
<style>
body {
font-family: Arial, sans-serif;
display: flex;
flex-direction: column;
align-items: center;
padding: 20px;
background-color: #f0f4f7;
}
#iptvForm {
display: flex;
flex-direction: column;
width: 300px;
margin-bottom: 20px;
}
#iptvForm input, #iptvForm button {
margin-bottom: 10px;
padding: 10px;
font-size: 16px;
border-radius: 5px;
border: 1px solid #ccc;
}
#iptvForm button {
cursor: pointer;
border: none;
}
#getInfoButton {
background-color: #007bff;
color: white;
}
#getInfoButton:hover {
background-color: #0056b3;
}
#resetButton {
background-color: #ff4d4d;
color: white;
}
#resetButton:hover {
background-color: #e60000;
}
#resultsContainer {
width: 100%;
max-width: 600px;
background-color: #fff;
border: 1px solid #ddd;
border-radius: 5px;
padding: 20px;
box-shadow: 0 0 10px rgba(0,0,0,0.1);
overflow-y: auto;
max-height: 400px;
margin-top: 20px;
}
#results {
white-space: pre-wrap;
font-size: 16px;
}
.error-message {
color: red;
font-weight: bold;
}
#loading {
display: none;
font-size: 16px;
color: #007bff;
}
#splashScreen {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: #f0f4f7;
display: flex;
justify-content: center;
align-items: center;
font-size: 36px;
color: #007bff;
z-index: 9999;
transition: opacity 0.5s ease;
}
.hidden {
opacity: 0;
pointer-events: none;
}
@media (max-width: 600px) {
body {
padding: 10px;
}
#resultsContainer {
padding: 10px;
font-size: 14px;
}
}
</style>
</head>
<body>
<div id="splashScreen">KÖPRÜLÜ</div>
<h1>IPTV Bilgi Alma</h1>
<form id="iptvForm">
<input type="text" id="iptvLink" placeholder="IPTV M3U Bağlantısı Yapıştırın">
<button type="button" id="getInfoButton" onclick="getIptvInfo()">Bilgileri Al</button>
<button type="button" id="resetButton" onclick="resetForm()">Sıfırla</button>
</form>
<div id="loading">Yükleniyor...</div>
<div id="resultsContainer">
<pre id="results"></pre>
</div>
<script>
document.addEventListener('DOMContentLoaded', function() {
setTimeout(function() {
document.getElementById('splashScreen').classList. add('hidden');
}, 3000);
});
function getIptvInfo() {
document.getElementById('loading').style.display = 'block';
document.getElementById('results').textContent = '';
const iptvLink = document.getElementById('iptvLink').value;
const modifiedLink = modifyLink(iptvLink);
fetch(modifiedLink)
.then(response => {
if (!response.ok) {
throw new Error('Ağ yanıtı geçerli değil');
}
return response.json();
})
.then(data => {
if (Object.keys(data).length === 0) {
throw new Error('Bağlantı çalışmıyor veya geçerli veri döndürülemiyor');
}
const translatedData = translateAndFormatJSON(data);
const formattedData = formatData(translatedData);
document.getElementById('results').innerHTML = formattedData;
})
.catch(error => {
document.getElementById('results').innerHTML = `<span class="error-message">Bir hata oluştu: ${error.message}</span>`;
})
.finally(() => {
document.getElementById('loading').style.display = 'none';
});
}
function resetForm() {
document.getElementById('iptvLink').value = '';
document.getElementById('results').textContent = '';
document.getElementById('loading').style.display = 'none';
}
function modifyLink(link) {
try {
const url = new URL(link);
url.pathname = '/player_api.php';
return url.toString();
} catch (error) {
throw new Error('Geçersiz URL');
}
}
function translateAndFormatJSON(obj) {
const translations = {
"user_info": "Kullanıcı Bilgileri",
"username": "Kullanıcı Adı",
"password": "Şifre",
"message": "Mesaj",
"auth": "Yetki",
"status": "Durum",
"exp_date": "Bitiş Tarihi",
"is_trial": "Deneme",
"active_cons": "Aktif Bağlantılar",
"created_at": "Oluşturulma Tarihi",
"max_connections": "Maksimum Bağlantı",
"allowed_output_formats": "İzin Verilen Çıkış Formatları",
"server_info": "Sunucu Bilgileri",
"xui": "XUI",
"version": "Versiyon",
"revision": "Revizyon",
"url": "URL",
"port": "Port",
"https_port": "HTTPS Port",
"server_protocol": "Sunucu Protokolü",
"rtmp_port": "RTMP Port",
"timestamp_now": "Geçerli Zaman Damgası",
"time_now": "Şu Anki Zaman",
"timezone": "Zaman Dilimi"
};
if (typeof obj === 'object' && obj !== null) {
for (let key in obj) {
if (obj.hasOwnProperty(key)) {
let translatedKey = translations[key] || key;
if (translatedKey === "Oluşturulma Tarihi" || translatedKey === "Bitiş Tarihi" || translatedKey === "Geçerli Zaman Damgası") {
obj[translatedKey] = convertTimestampToDate(obj[key]);
} else if (typeof obj[key] === 'object') {
obj[translatedKey] = translateAndFormatJSON(obj[key]);
} else {
obj[translatedKey] = obj[key];
}
if (translatedKey !== key) {
delete obj[key];
}
}
}
}
return obj;
}
function convertTimestampToDate(timestamp) {
if (!timestamp) return null;
const date = new Date(timestamp * 1000);
const day = date.getDate().toString().padStart(2, '0');
const month = (date.getMonth() + 1).toString().padStart(2, '0');
const year = date.getFullYear();
const hours = date.getHours().toString().padStart(2, '0');
const minutes = date.getMinutes().toString().padStart(2, '0');
const seconds = date.getSeconds().toString().padStart(2, '0');
return `${day}.${month}.${year} ${hours}:${minutes}:${seconds}`;
}
function formatData(data) {
const userInfo = data["Kullanıcı Bilgileri"];
const serverInfo = data["Sunucu Bilgileri"];
return `
📡 DURUM: ${userInfo["Durum"]}
?? PROTOKOL: ${serverInfo["Sunucu Protokolü"]}
🌐 SUNUCU: ${serverInfo["URL"]}
🚪 PORT: ${serverInfo["Port"]}
🚪 PORT HTTPS: ${serverInfo["HTTPS Port"]}
🚪 PORT RTMP: ${serverInfo["RTMP Port"]}
👤 KULLANICI: ${userInfo["Kullanıcı Adı"]}
🔑 ŞİFRE: ${userInfo["Şifre"]}
📆 OLUŞUM TARİHİ: ${userInfo["Oluşturulma Tarihi"]}
📆 BİTİŞ TARİHİ: ${userInfo["Bitiş Tarihi"]}
👩 AKTİF BAĞLANTI: ${userInfo["Aktif Bağlantılar"]}
👪 MAX. BAĞLANTI: ${userInfo["Maksimum Bağlantı"]}
🕓 ŞİMDİKİ ZAMAN: ${serverInfo["Şu Anki Zaman"]}
📂 LİSTE FORMATLARI: ${userInfo["İzin Verilen Çıkış Formatları"].join(", ")}
🌍 ZAMAN DİLİMİ: ${serverInfo["Zaman Dilimi"]}
`;
}
</script>
</body>
</html>
Şu an 2 kullanıcı var. (0 üye ve 2 konuk)