<?php
$api = "https://apponline.top/api/showRadios/";
$url = "https://apponline.top/";
$context = stream_context_create([
	"http" => [
		"timeout" => 3
	]
]);
$json = @file_get_contents($api, false, $context);
$radios = [];
if ($json !== false) {
	$radios = json_decode($json, true);
}
if (!$radios) {
	$radios = [];
}
usort($radios, function ($a, $b) {
	return $b['hits'] <=> $a['hits'];
});
$topRadios = array_slice($radios, 0, 3);

function getListeners($server, $port)
{
	$listeners = 0;
	$proxy_base = "./proxy.php?url=";

	// Limpa http:// ou https:// e barras do campo 'stm'
	$domain = str_replace(["http://", "https://", "/"], "", $server);

	// Monta a URL correta: ex http://radionline.top
	$shout_url = "http://{$domain}:{$port}/stats?json=1";

	$full_proxy_url = $proxy_base . urlencode($shout_url);
	$json = @file_get_contents($full_proxy_url, false, stream_context_create([
		'http' => ['timeout' => 5]
	]));

	if ($json !== false) {
		$data = json_decode($json, true);
		if (isset($data['listeners'])) {
			$listeners = (int)$data['listeners'];
		} elseif (isset($data['currentlisteners'])) {
			$listeners = (int)$data['currentlisteners'];
		}
	}
	return $listeners;
}

?>


<!DOCTYPE html>
<html lang="pt-br">

<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">

	<!-- Título -->
	<title>Monitor de Rádios - Apps Online</title>

	<!-- SEO Básico -->
	<meta name="description" content="Sistema profissional para monitoramento de rádios online, ouvintes em tempo real, status do streaming e gerenciamento completo.">
	<meta name="keywords" content="monitor de rádios, rádio online, streaming, ouvintes, shoutcast, icecast, azuracast">
	<meta name="author" content="@rTalon">
	<meta name="robots" content="index, follow">

	<!-- Favicon -->
	<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">

	<!-- Open Graph (Facebook, WhatsApp, Telegram, etc) -->
	<meta property="og:type" content="website">
	<meta property="og:title" content="Monitor de Rádios - Apps Online">
	<meta property="og:description" content="Acompanhe suas rádios online em tempo real com um sistema moderno e confiável.">
	<meta property="og:url" content="https://apponline.top">
	<meta property="og:site_name" content="Apps Online">
	<meta property="og:image" content="https://apponline.top/assets/meta-image.png">
	<meta property="og:image:width" content="1200">
	<meta property="og:image:height" content="630">
	<meta property="og:locale" content="pt_BR">

	<!-- Twitter -->
	<meta name="twitter:card" content="summary_large_image">
	<meta name="twitter:title" content="Monitor de Rádios - Apps Online">
	<meta name="twitter:description" content="Sistema profissional para monitoramento de rádios online e streaming.">
	<meta name="twitter:image" content="https:///apponline.top/assets/meta-image.png">

	<!-- Tema do navegador -->
	<meta name="theme-color" content="#f45a3c">

	<!-- Fonts -->
	<link rel="preconnect" href="https://fonts.googleapis.com">
	<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
	<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap" rel="stylesheet">

	<!-- CSS -->
	<link rel="stylesheet" href="assets/app.min.css">
</head>

<body>
	<div class="header">
		<div class="title">📻 Monitor de Rádios - App Online</div>
	</div>
	<div class="container">
		<div class="top">
			<?php foreach ($topRadios as $r): ?>
				<div class="card">
					<img class="logo" src="<?= htmlspecialchars($url . 'images/radios/' . $r['logo']) ?>">
					<div>
						<div class="name"><?= htmlspecialchars($r['name']) ?></div>
						<div class="hits">🔥 <?= htmlspecialchars($r['hits']) ?> visitas</div>
					</div>
				</div>
			<?php endforeach; ?>
		</div>
		<div class="search">
			<input type="text" id="search" placeholder="Buscar rádio...">
		</div>
		<div class="table">
			<table id="radioTable" role="table" aria-label="Tabela">
				<thead>
					<tr>
						<th class="sortable text-center" data-type="number" width="10%">🗣️<span class="sort-icon">⬍</span></th>
						<th class="sortable" data-type="text">Rádio<span class="sort-icon">⬍</span></th>
						<th class="sortable text-center mobile-none" data-type="text">Serv<span class="sort-icon">⬍</span></th>
						<th class="sortable text-center" data-type="number">Porta<span class="sort-icon">⬍</span></th>
						<th class="sortable text-center" data-type="number">Down<span class="sort-icon">⬍</span></th>
						<th class="sortable text-center" data-type="number">Acessos<span class="sort-icon">⬍</span></th>
					</tr>
				</thead>
				<tbody>
					<?php foreach ($radios as $r):
						$stm_full = trim($r['stm'] ?? '');

						// Garante que o regex capture o subdomínio mesmo se não vier com http:// na API
						if (!preg_match('/https?:\/\//', $stm_full)) {
							$stm_full = 'http://' . $stm_full;
						}

						preg_match('/https?:\/\/([^.]+)/', $stm_full, $matches);
						$stm = $matches[1] ?? ''; // Retorna "stm1", "stm2", etc.

						$slug = $r['slug'] ?? '';
						$mount = $r['mount'] ?? '';
					?>
						<tr
							data-mount="<?= htmlspecialchars($mount) ?>"
							data-stm="<?= htmlspecialchars($stm) ?>"
							data-slug="<?= htmlspecialchars($slug) ?>"
							data-port="<?= htmlspecialchars($r['port']) ?>">
							<td class="listeners-cell">...</td>
							<td><?= htmlspecialchars($r['name']) ?></td>
							<td class="text-center ft-mono mobile-none"><?= $stm ?></td>
							<td data-label="Porta:" class="text-center ft-mono"><?= htmlspecialchars($r['port']) ?></td>
							<td data-label="Downloads:" class="text-center ft-mono"><?= htmlspecialchars($r['downloads'] ?? 0) ?></td>
							<td data-label="Acessos:" class="text-center ft-mono"><?= htmlspecialchars($r['hits']) ?></td>
						</tr>
					<?php endforeach; ?>
				</tbody>
			</table>
		</div>
		<footer class="footer" role="contentinfo">
			<div>&copy; Copyright <?= date('Y'); ?></div>
			<div>Designed by @rTalon</div>
		</footer>
	</div>
	<script src="assets/app.min.js"></script>

	<script>
		// Carrega ouvintes para todas as linhas quando a página carregar
		document.addEventListener('DOMContentLoaded', () => {
			document.querySelectorAll('#radioTable tbody tr').forEach(row => {
				loadListenersForRow(row);
			});
		});

		// Opcional: Recarregar ouvintes a cada 60 segundos
		setInterval(() => {
			document.querySelectorAll('#radioTable tbody tr').forEach(row => {
				loadListenersForRow(row);
			});
		}, 120000);
	</script>
</body>

</html>
