<?php

error_reporting( E_ALL );

use Medoo\Medoo;

require_once("Kakatoxyinya.php");

require_once("vpisdostup.php");

$db = new Medoo([
    'type' => 'mysql',
    'host' => DB_HOST,
    'port' => DB_PORT,
    'database' => DB_NAME,
    'username' => DB_USER,
    'password' => DB_PASSWORD,
    'charset' => 'utf8mb4'
]);

if ($db->error) dieWithCode(404, "db connect error");

$db->query("CREATE TABLE IF NOT EXISTS stat (
    id INT(11) AUTO_INCREMENT PRIMARY KEY,
    action VARCHAR(255),
    date DATETIME,
    ip VARCHAR(255),
    useragent VARCHAR(512)
)");


function visitor($action = "Visit") {
    
    global $db;

    $ip = $_SERVER["REMOTE_ADDR"];
    if (empty($ip)) $ip = "127.0.01";
    $useragent = $_SERVER["HTTP_USER_AGENT"];

    $data = [
        'action' => $action,
        'date' => Medoo::raw('NOW()'),
        'ip' => $ip,
        'useragent' => $useragent
    ];

    $existing = $db->select("stat", [
        "id",
        "action",
        "useragent"
    ], [
        "ip" => $ip,
    ]);

    if ($existing) {
        foreach($existing as $item) {
            if ($item["action"] != "Download") {
                $item["action"] = $action;
                $item["date"] = $data["date"];
                $item["useragent"] = $data["useragent"];
            } else {
                $item["date"] = $data["date"];
                $item["useragent"] = $data["useragent"];
            }
            $db->update('stat', [
                'action' => $item["action"],
                'date' => $item["date"],
                'useragent' => $item['useragent']
            ],
            [
                'id[=]' => $item["id"]
            ]);
        }
    } else {
        $db->insert('stat', $data);
    }
    return $db->count("stat");
}

if(isset($_GET["action"])) {
    visitor();
}