#!/usr/bin/env php
<?php
/**
 * اختبار تحميل فيديو من بوست محدد
 */

set_time_limit(0);
ini_set('max_execution_time', 600);
error_reporting(E_ALL);
ini_set('display_errors', 1);

echo "=== اختبار تحميل الفيديو ===\n\n";

// البوست المطلوب اختباره
$testUrl = 'https://x.com/RassdNewsN/status/2020913082277691811';

echo "البوست: $testUrl\n\n";

// استخراج رابط الفيديو
function getTwitterVideoUrl($tweetUrl)
{
    preg_match('/status\/(\d+)/', $tweetUrl, $matches);
    if (empty($matches[1])) {
        return false;
    }

    $apiUrl = "https://twitsave.com/info?url=" . urlencode($tweetUrl);

    echo "استدعاء TwitSave API...\n";
    echo "URL: $apiUrl\n\n";

    try {
        $ch = curl_init();
        curl_setopt_array($ch, [
            CURLOPT_URL => $apiUrl,
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_FOLLOWLOCATION => true,
            CURLOPT_TIMEOUT => 30,
            CURLOPT_SSL_VERIFYPEER => false,
            CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'
        ]);

        $response = curl_exec($ch);
        $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
        curl_close($ch);

        echo "HTTP Code: $httpCode\n";

        if ($response === false || $httpCode !== 200) {
            echo "فشل الاتصال بـ TwitSave\n";
            return false;
        }

        // البحث عن روابط mp4
        preg_match_all('/(https?:\/\/[^\s"\'<>]+\.mp4[^\s"\'<>]*)/i', $response, $videoMatches);

        if (!empty($videoMatches[1])) {
            echo "\n✅ تم العثور على " . count($videoMatches[1]) . " رابط فيديو:\n";
            foreach ($videoMatches[1] as $i => $url) {
                echo ($i + 1) . ". $url\n";
            }
            return $videoMatches[1][0];
        }

        echo "\n❌ لم يتم العثور على روابط .mp4 في الاستجابة\n";

        // حفظ الاستجابة للفحص
        file_put_contents(__DIR__ . '/twitsave_response.html', $response);
        echo "تم حفظ استجابة TwitSave في: twitsave_response.html\n";

        return false;

    } catch (Exception $e) {
        echo "خطأ: " . $e->getMessage() . "\n";
        return false;
    }
}

// اختبار
$videoUrl = getTwitterVideoUrl($testUrl);

if ($videoUrl) {
    echo "\n✅ نجح! رابط الفيديو:\n";
    echo "$videoUrl\n\n";

    echo "محاولة تحميل الفيديو...\n";

    $ch = curl_init();
    curl_setopt_array($ch, [
        CURLOPT_URL => $videoUrl,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_TIMEOUT => 60,
        CURLOPT_SSL_VERIFYPEER => false,
        CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'
    ]);

    $videoData = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);

    if ($videoData !== false && $httpCode === 200) {
        $size = strlen($videoData);
        echo "✅ تم تحميل الفيديو بنجاح!\n";
        echo "الحجم: " . number_format($size / 1024 / 1024, 2) . " MB\n";
    } else {
        echo "❌ فشل تحميل الفيديو (HTTP Code: $httpCode)\n";
    }
} else {
    echo "\n❌ فشل استخراج رابط الفيديو\n";
}

echo "\n=== انتهى الاختبار ===\n";
