[ "1"=>["busy"=>false,"end"=>0], "2"=>["busy"=>false,"end"=>0], "3"=>["busy"=>false,"end"=>0], "4"=>["busy"=>false,"end"=>0] ], "income" => [], "users" => [] ])); } $data = json_decode(file_get_contents($DATA_FILE), true); // ===== UPDATE ===== $update = json_decode(file_get_contents("php://input"), true); $chat_id = $update["message"]["chat"]["id"] ?? null; $text = $update["message"]["text"] ?? ""; // ===== SEND ===== function send($chat_id, $text, $keyboard=null){ global $API; $params = [ "chat_id"=>$chat_id, "text"=>$text, "reply_markup"=>$keyboard ]; file_get_contents($API."sendMessage?".http_build_query($params)); } // ===== KEYBOARD ===== function keyboard($data){ $buttons = []; for($i=1;$i<=4;$i++){ $status = $data["pults"][$i]["busy"] ? "🔴" : "🟢"; $buttons[] = [["text"=>"$status $i-pult"]]; } $buttons[] = [["text"=>"📊 Bugun"],["text"=>"📅 Oy"]]; return json_encode(["keyboard"=>$buttons,"resize_keyboard"=>true]); } // ===== INCOME ===== function addIncome(&$data,$amount){ $today = date("Y-m-d"); if(!isset($data["income"][$today])) $data["income"][$today]=0; $data["income"][$today]+=$amount; } function todayIncome($data){ return $data["income"][date("Y-m-d")] ?? 0; } function monthIncome($data){ $month=date("Y-m"); $sum=0; foreach($data["income"] as $d=>$v){ if(strpos($d,$month)===0) $sum+=$v; } return $sum; } // ===== BOT LOGIC ===== // START if($text=="/start"){ send($chat_id,"🎮 PS BOT",keyboard($data)); } // PULT TANLASH elseif(strpos($text,"pult")!==false){ preg_match('/(\d)/',$text,$m); $pult=$m[1]; if($data["pults"][$pult]["busy"]){ $remain=ceil(($data["pults"][$pult]["end"]-time())/60); send($chat_id,"❌ Band\n⏳ $remain min"); } else { $data["users"][$chat_id]=$pult; send($chat_id,"💰 Necha pul?"); } } // STATISTIKA elseif($text=="📊 Bugun"){ send($chat_id,"📊 ".todayIncome($data)." so‘m"); } elseif($text=="📅 Oy"){ send($chat_id,"📅 ".monthIncome($data)." so‘m"); } // PUL KIRITISH elseif(is_numeric($text)){ $pul=intval($text); $pult=$data["users"][$chat_id] ?? null; if(!$pult){ send($chat_id,"❗ Pult tanlang"); } else { $minutes=($pul*60)/($pult*10000); $end=time()+($minutes*60); $data["pults"][$pult]=[ "busy"=>true, "end"=>$end ]; addIncome($data,$pul); send($chat_id,"🎮 $pult-pult\n⏱ $minutes min\n🔴 BAND",keyboard($data)); } } // SAVE file_put_contents($DATA_FILE,json_encode($data));