From 2ac086d1fddd38d82e6a8033f686bc847bf2f762 Mon Sep 17 00:00:00 2001 From: Hamza-Ayed Date: Sun, 21 Jun 2026 02:53:02 +0300 Subject: [PATCH] Update: 2026-06-21 02:53:01 --- backend/bot/generate_price_tasks.php | 110 +++++++++++++++++ backend/bot/worker.php | 166 ++++++++++++++++++++++++++ دراسة_الجدوى_سيرو_الإصدار_الثالث.docx | Bin 47832 -> 0 bytes 3 files changed, 276 insertions(+) create mode 100644 backend/bot/generate_price_tasks.php create mode 100644 backend/bot/worker.php delete mode 100644 دراسة_الجدوى_سيرو_الإصدار_الثالث.docx diff --git a/backend/bot/generate_price_tasks.php b/backend/bot/generate_price_tasks.php new file mode 100644 index 0000000..df9a514 --- /dev/null +++ b/backend/bot/generate_price_tasks.php @@ -0,0 +1,110 @@ +exec($sql); + +// 2. Ten Key Regions in Damascus +$regions = [ + ['name' => 'Umayyad Square', 'lat' => 33.5138, 'lng' => 36.2765], + ['name' => 'Mezzeh', 'lat' => 33.5074, 'lng' => 36.2530], + ['name' => 'Malki', 'lat' => 33.5220, 'lng' => 36.2840], + ['name' => 'Kafersouseh', 'lat' => 33.4981, 'lng' => 36.2730], + ['name' => 'Al-Midan', 'lat' => 33.4947, 'lng' => 36.2995], + ['name' => 'Bab Tuma', 'lat' => 33.5126, 'lng' => 36.3150], + ['name' => 'Rukneddine', 'lat' => 33.5350, 'lng' => 36.2950], + ['name' => 'Dummar', 'lat' => 33.5385, 'lng' => 36.2250], + ['name' => 'Baramkeh', 'lat' => 33.5100, 'lng' => 36.2885], + ['name' => 'Muhajireen', 'lat' => 33.5320, 'lng' => 36.2720], +]; + +$competitors = ['yallago', 'zaken', 'tufaddal']; + +// Helper to generate a random point within a radius (in km) +function generateRandomPoint($lat, $lng, $radius) { + $radiusInDegrees = $radius / 111.0; // 1 degree is ~111km + $u = lcg_value(); + $v = lcg_value(); + $w = $radiusInDegrees * sqrt($u); + $t = 2 * pi() * $v; + $x = $w * cos($t); + $y = $w * sin($t); + + // Adjust longitude based on latitude + $new_lng = $x / cos(deg2rad($lat)); + $new_lat = $y; + + return [ + 'lat' => $lat + $new_lat, + 'lng' => $lng + $new_lng + ]; +} + +$tasksCreated = 0; + +foreach ($regions as $region) { + // A. Generate Start Point (within 2km of region center) + $start = generateRandomPoint($region['lat'], $region['lng'], 2); + + // B. Generate Short Trip (2-5 km from start) + $shortDist = rand(20, 50) / 10.0; + $shortEnd = generateRandomPoint($start['lat'], $start['lng'], $shortDist); + + // C. Generate Long Trip (10-15 km from start) + $longDist = rand(100, 150) / 10.0; + $longEnd = generateRandomPoint($start['lat'], $start['lng'], $longDist); + + $trips = [$shortEnd, $longEnd]; + + foreach ($trips as $end) { + foreach ($competitors as $app) { + $taskId = "prc_" . uniqid(); + + $taskData = [ + "task_id" => $taskId, + "type" => "price_check", + "app" => $app, + "payload" => [ + "start_lat" => $start['lat'], + "start_lng" => $start['lng'], + "end_lat" => $end['lat'], + "end_lng" => $end['lng'] + ] + ]; + + // Push to Redis Queue + $redis->lpush('queue:bot:tasks', json_encode($taskData)); + $tasksCreated++; + } + } +} + +echo "Successfully generated and queued $tasksCreated pricing tasks.\n"; diff --git a/backend/bot/worker.php b/backend/bot/worker.php new file mode 100644 index 0000000..5d8f807 --- /dev/null +++ b/backend/bot/worker.php @@ -0,0 +1,166 @@ + 'failure', 'message' => 'Database connection failed']); + exit; +} + +// ========================================================= +// backend/bot/worker.php +// Endpoint for the standalone Android Bot (Worker Node) +// Handles Wallet Payments (ShamCash) and Competitor Pricing +// ========================================================= + +// 1. Security & Configuration +$SECRET_KEY = getenv('BOT_SECRET_KEY') ?: 'SIRO_BOT_SUPER_SECRET_123'; +$ALLOWED_DEVICES = ['SHAM_CASH_BOT_01', 'PRICE_SCRAPER_BOT_01']; + +$method = $_SERVER['REQUEST_METHOD']; + +// 2. Validate Security (HMAC-SHA256 Signature) +function validateSignature($device_id, $ts, $sig, $secret_key) { + // Prevent replay attacks (valid for 5 minutes) + if (abs(time() - $ts) > 300) { + return false; + } + // Generate the expected signature + $expected_sig = hash_hmac('sha256', $device_id . $ts, $secret_key); + // Secure comparison to prevent timing attacks + return hash_equals($expected_sig, $sig); +} + +if ($method === 'GET') { + // --------------------------------------------------------- + // GET: Fetch Pending Task for the Bot + // --------------------------------------------------------- + $device_id = filterRequest('device_id'); + $ts = filterRequest('ts'); + $sig = filterRequest('sig'); + + if (!$device_id || !$ts || !$sig) { + jsonError("Missing security parameters"); + exit; + } + + if (!in_array($device_id, $ALLOWED_DEVICES)) { + jsonError("Device not authorized: " . $device_id); + exit; + } + + if (!validateSignature($device_id, $ts, $sig, $SECRET_KEY)) { + jsonError("Invalid signature or expired timestamp"); + exit; + } + + // Check Redis Queue for tasks + // Queue Name: queue:bot:tasks (Using Main Redis) + $taskJson = $redis->rpop('queue:bot:tasks'); + + if ($taskJson) { + $task = json_decode($taskJson, true); + echo json_encode([ + "status" => "success", + "has_task" => true, + "task" => $task + ]); + } else { + echo json_encode([ + "status" => "success", + "has_task" => false + ]); + } + exit; + +} elseif ($method === 'POST') { + // --------------------------------------------------------- + // POST: Submit Result from the Bot + // --------------------------------------------------------- + // Read raw JSON body + $input = json_decode(file_get_contents('php://input'), true); + + if (!$input) { + jsonError("Invalid JSON body"); + exit; + } + + $device_id = $input['device_id'] ?? null; + $ts = $input['ts'] ?? null; + $sig = $input['sig'] ?? null; + $task_id = $input['task_id'] ?? null; + $task_status = $input['status'] ?? null; // 'success' or 'failed' + $result_data = $input['result_data'] ?? []; + + if (!$device_id || !$ts || !$sig || !$task_id || !$task_status) { + jsonError("Missing required parameters"); + exit; + } + + if (!in_array($device_id, $ALLOWED_DEVICES)) { + jsonError("Device not authorized"); + exit; + } + + if (!validateSignature($device_id, $ts, $sig, $SECRET_KEY)) { + jsonError("Invalid signature or expired timestamp"); + exit; + } + + $task_type = $input['type'] ?? 'payment'; + + // Process the result based on task type + if ($task_status === 'success') { + if ($task_type === 'price_check') { + $app_name = $result_data['app'] ?? 'unknown'; + $price = (float)($result_data['price'] ?? 0); + $distance_km = (float)($result_data['distance_km'] ?? 0); + $start_lat = (float)($result_data['start_lat'] ?? 0); + $start_lng = (float)($result_data['start_lng'] ?? 0); + $end_lat = (float)($result_data['end_lat'] ?? 0); + $end_lng = (float)($result_data['end_lng'] ?? 0); + + // 1. Save to MySQL + $stmt = $con->prepare(" + INSERT INTO competitor_prices + (app_name, start_lat, start_lng, end_lat, end_lng, distance_km, price) + VALUES (?, ?, ?, ?, ?, ?, ?) + "); + $stmt->execute([$app_name, $start_lat, $start_lng, $end_lat, $end_lng, $distance_km, $price]); + + // 2. Save to Redis (Calculate Price Per KM) + if ($distance_km > 0 && $price > 0) { + $pricePerKm = $price / $distance_km; + // Store in Redis (Main) to be used by Pricing Engine + // Store recent 50 prices for the app + $redis->lpush("competitor:price_history:$app_name", $pricePerKm); + $redis->ltrim("competitor:price_history:$app_name", 0, 49); + + error_log("[Bot Worker] Price Check $app_name: Dist $distance_km, Price $price"); + } + } else { + // It's a payment task + $transaction_id = $result_data['transaction_id'] ?? 'N/A'; + + // TODO: Update MySQL driver balance/payout status + // $stmt = $con->prepare("UPDATE payouts SET status = 'paid', transaction_ref = ? WHERE task_id = ?"); + // $stmt->execute([$transaction_id, $task_id]); + + error_log("[Bot Worker] Task $task_id SUCCESS on $device_id. Ref: $transaction_id"); + } + } else { + $error_msg = $result_data['error'] ?? 'Unknown Error'; + error_log("[Bot Worker] Task $task_id FAILED on $device_id. Reason: $error_msg"); + // Optional: Re-queue the task if it failed due to a temporary issue + } + + echo json_encode(["status" => "success", "message" => "Result recorded successfully"]); + exit; + +} else { + http_response_code(405); + jsonError("Method Not Allowed"); +} diff --git a/دراسة_الجدوى_سيرو_الإصدار_الثالث.docx b/دراسة_الجدوى_سيرو_الإصدار_الثالث.docx deleted file mode 100644 index dae74c60f1bdb746dcc42bbb269e3939e9f6976b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47832 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