<!DOCTYPE html>
<html lang="tr">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>kangwoo</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            background-color: #f4f4f4;
            margin: 0;
            padding: 0;
        }

        h1 {
            text-align: center;
            margin-top: 20px;
            color: #333;
        }

        #searchInput {
            display: block;
            margin: 10px auto;
            padding: 10px;
            width: 80%;
            max-width: 400px;
            border: 1px solid #ccc;
            border-radius: 5px;
            font-size: 16px;
        }

        #playerCount, #totalPlayerCount {
            text-align: center;
            font-size: 16px;
            margin-top: 10px;
            color: #555;
        }

        #usersContainer {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
            gap: 15px;
            padding: 20px;
            justify-items: center;
            margin-top: 20px;
        }

        .user {
            display: flex;
            align-items: center;
            justify-content: space-between;
            background-color: #f5f5f5;
            margin: 8px 0;
            padding: 8px 12px;
            border-radius: 6px;
            border-left: 5px solid #ccc; /* Odaya özel renk buradan geliyor */
            box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
            width: 100%; /* Kutuyu yana doğru uzat */
            max-width: 400px; /* İstersen genişliği sınırlayabilirsin */
        }

        .user img {
            width: 36px;
            height: 36px;
            border-radius: 50%;
            margin-right: 12px;
        }

        .user div {
            flex: 1; /* İçeriği esnek yapar */
        }

        .user b {
            font-size: 14px;
            font-weight: bold;
            color: #333;
        }

        .user i {
            font-size: 12px;
            color: #666;
            display: block;
            margin-top: 2px;
        }

        .user a {
            font-size: 11px;
            color: #007BFF;
            text-decoration: none;
            display: inline-block;
            margin-top: 4px;
        }

        .user .download-btn {
            font-size: 10px;
            color: #fff;
            background-color: #007BFF;
            padding: 4px 8px;
            border-radius: 4px;
            cursor: pointer;
            text-align: center;
            margin-top: 4px;
        }

        .download-btn:hover {
            text-decoration: underline;
        }

        .filters {
            display: flex;
            justify-content: center;
            margin-top: 20px;
        }

        .filters label {
            margin: 0 15px;
            font-size: 14px;
            color: #333;
        }
    </style>
</head>
<body>
    <h1>ceggy sapsal</h1> 

    <div>
        <label>
            <input type="checkbox" id="havefotoCheckbox" onclick="filterUsers()"> Fotoğrafı Olan
        </label>
        <label>
            <input type="checkbox" id="nofotoCheckbox" onclick="filterUsers()"> Fotoğrafı Olmayan
        </label>
    </div>

    <div id="totalPlayerCount">Toplam kişi sayısı: 0</div>

    <div id="usersContainer"></div>

    <script>
        // Kullanıcılar ve filtrelemeler için gerekli değişkenler
        window.players = [];

        // Serverlar ve WebSocket bağlantılarını kuran fonksiyon
        function getData(roomCode) {
            const servers = [
                "wss://server01.gartic.io/socket.io/?EIO=3&transport=websocket",
                "wss://server02.gartic.io/socket.io/?EIO=3&transport=websocket",
                "wss://server03.gartic.io/socket.io/?EIO=3&transport=websocket",
                "wss://server04.gartic.io/socket.io/?EIO=3&transport=websocket",
                "wss://server05.gartic.io/socket.io/?EIO=3&transport=websocket",
                "wss://server06.gartic.io/socket.io/?EIO=3&transport=websocket"
            ];

            servers.forEach(url => {
                let ws = new WebSocket(url);
                ws.onopen = () => {
                    ws.send('42[12,{"v":20000,"platform":0,"sala":"' + roomCode.slice(-4) + '"}]');
                };
                ws.onmessage = (msg) => {
                    if (msg.data[4] == "5") {
                        let data = JSON.parse(msg.data.slice(2));
                        if (data[0] == 5) {
                            console.log(data);
                            data[5].forEach(user => {
                                const foto = user.foto || "https://gartic.io/static/images/avatar/svg/" + user.avatar + ".svg";
                                const uclass = user.foto ? "havefoto" : "nofoto";

                                window.players.push({
                                    "points": user.pontos,
                                    "victory": user.vitorias,
                                    "id": user.id,
                                    "avatar": foto, // Avatar burada foto ile kontrol edilerek ekleniyor
                                    "room": "https://gartic.io/" + roomCode,
                                    "nick": user.nick,
                                    "foto": user.foto,
                                    "uclass": uclass // Fotoğraf olup olmadığını belirten sınıf
                                });
                            });
                            updateUsers();
                            ws.close();
                        }
                    }
                };
            });
        }

        // Kullanıcıları sayfada gösteren fonksiyon
        function updateUsers() {
            const userListDiv = document.getElementById('usersContainer');
            userListDiv.innerHTML = ''; // Mevcut içeriği temizle
            window.players.forEach(player => {
                const userDiv = document.createElement('div');
                userDiv.classList.add('user', player.uclass); // Kullanıcı sınıfını ekle (fotoğraflı veya fotoğrafsız)
                userDiv.innerHTML = `
                    <img src="${player.avatar}" alt="${player.nick}" />
                    <div>
                        <b>${player.nick}</b>
                        <i>Points: ${player.points}</i>
                        <i>Victories: ${player.victory}</i>
                        <a href="${player.room}" target="_blank">Room Link</a>
                    </div>
                    ${player.foto ? '<div class="download-btn">Download</div>' : ''}
                `;
                userListDiv.appendChild(userDiv);
            });

            // Toplam kişi sayısını güncelle
            document.getElementById('totalPlayerCount').innerText = `Toplam kişi sayısı: ${window.players.length}`;
        }

        // Kullanıcıları filtreleme fonksiyonu
        function filterUsers() {
            const haveFotoCheckbox = document.getElementById('havefotoCheckbox').checked;
            const noFotoCheckbox = document.getElementById('nofotoCheckbox').checked;

            const filteredPlayers = window.players.filter(player => {
                if (haveFotoCheckbox && noFotoCheckbox) {
                    return true;
                }
                if (haveFotoCheckbox) {
                    return player.foto !== "";
                }
                if (noFotoCheckbox) {
                    return player.foto === "";
                }
                return true;
            });

            // Filtrelenmiş kullanıcıları göster
            const userListDiv = document.getElementById('usersContainer');
            userListDiv.innerHTML = '';
            filteredPlayers.forEach(player => {
                const userDiv = document.createElement('div');
                userDiv.classList.add('user', player.uclass);
                userDiv.innerHTML = `
                    <img src="${player.avatar}" alt="${player.nick}" />
                    <div>
                        <b>${player.nick}</b>
                        <i>Points: ${player.points}</i>
                        <i>Victories: ${player.victory}</i>
                        <a href="${player.room}" target="_blank">Room Link</a>
                    </div>
                    ${player.foto ? '<div class="download-btn">Download</div>' : ''}
                `;
                userListDiv.appendChild(userDiv);
            });
        }

        // Odaya ait verileri çekme
        fetch("https://gartic.io/req/list?search=&language[]=8")
            .then(response => response.json())
            .then(data => {
                data.forEach(room => {
                    if (room.quant > 0) {
                        getData(room.code);
                    }
                });
            });
    </script>
</body>
</html>
