<?php
header('Content-Type: application/json; charset=utf-8');
header('Access-Control-Allow-Origin: *');

// مسار قاعدة البيانات
$db_path = dirname(__DIR__) . '/dramalive.db';

if (!file_exists($db_path)) {
    http_response_code(500);
    echo json_encode(["success" => false, "message" => "قاعدة البيانات غير موجودة"], JSON_UNESCAPED_UNICODE);
    exit;
}

// ✅ إعدادات الفلترة (يمكن تعديلها بسهولة)
$FILTER_SETTINGS = [
    'enabled' => true, // true = مفعل, false = معطل
    
    // السيرفرات المستبعدة
    'blocked_servers' => [
        'vk.com',
        'dwapp.drama7157w.workers.dev', 
        'm.reviewrate.net'
    ],
    
    // السيرفرات المسموح بها (للاستخدام المستقبلي)
    'allowed_servers' => [
        // يمكن إضافة سيرفرات مفضلة هنا
    ]
];

// ✅ دالة لتنظيف الروابط
function clean_url($url) {
    global $FILTER_SETTINGS;
    
    // إذا كانت الفلترة معطلة، نرجع الرابط كما هو
    if (!$FILTER_SETTINGS['enabled']) {
        return str_replace('\\/', '/', $url);
    }
    
    // ✅ فحص إذا كان الرابط من سيرفر مستبعد
    foreach ($FILTER_SETTINGS['blocked_servers'] as $blocked_server) {
        if (strpos($url, $blocked_server) !== false) {
            return null; // نرجع null لاستبعاد الرابط
        }
    }
    
    // إزالة الـ backslashes
    $url = str_replace('\\/', '/', $url);
    
    // قواعد التنظيف
    $clean_rules = [
        // إزالة 'embed-' من جميع السيرفرات
        '/\/embed-/' => '/',
        
        // إزالة '/e/' من xenolyzb.com و filemoon.to
        '/^(https?:\/\/(?:www\.)?(?:xenolyzb\.com|filemoon\.to|deva-[^\/]+\.cimanowtv\.com))\/e\//' => '$1/',
        
        // إزالة '/v/' من dingtezuni.com
        '/^(https?:\/\/(?:www\.)?dingtezuni\.com)\/v\//' => '$1/',
        
        // إزالة '/iframe/' من megatukmax.xyz
        '/^(https?:\/\/(?:www\.)?w\.megatukmax\.xyz)\/iframe\//' => '$1/'
    ];
    
    // تطبيق قواعد التنظيف
    foreach ($clean_rules as $pattern => $replacement) {
        $url = preg_replace($pattern, $replacement, $url);
    }
    
    return $url;
}

// ✅ معامل للتحكم في الفلترة (اختياري)
$disable_filter = isset($_GET['show_all']) && $_GET['show_all'] == 'true';

if ($disable_filter) {
    $FILTER_SETTINGS['enabled'] = false;
}

// الحصول على اسم الفيلم
$movie_name = $_GET['name'] ?? '';

if (empty($movie_name)) {
    http_response_code(400);
    echo json_encode(["success" => false, "message" => "يجب إدخال اسم الفيلم"], JSON_UNESCAPED_UNICODE);
    exit;
}

try {
    // الاتصال بقاعدة البيانات
    $db = new SQLite3($db_path);
    $db->enableExceptions(true);

    // البحث عن الفيلم
    $stmt = $db->prepare('SELECT id, title FROM movies WHERE title LIKE :name LIMIT 1');
    $stmt->bindValue(':name', '%' . $movie_name . '%', SQLITE3_TEXT);
    $result = $stmt->execute();
    $movie = $result->fetchArray(SQLITE3_ASSOC);

    if (!$movie) {
        echo json_encode(["success" => false, "message" => "الفيلم غير موجود"], JSON_UNESCAPED_UNICODE);
        exit;
    }

    $movie_id = $movie['id'];
    $movie_title = $movie['title'];

    // جلب روابط الفيلم
    $stmt_sources = $db->prepare('SELECT url FROM movie_sources WHERE movie_id = :movie_id ORDER BY source_order');
    $stmt_sources->bindValue(':movie_id', $movie_id, SQLITE3_INTEGER);
    $sources_result = $stmt_sources->execute();

    $movie_obj = ["Movie_Name" => $movie_title];

    $source_index = 0;
    $valid_urls_count = 0;
    
    while ($source = $sources_result->fetchArray(SQLITE3_ASSOC)) {
        $clean_url = clean_url($source['url']);
        
        // إذا كان الرابط null (مستبعد) نتخطاه
        if ($clean_url === null) {
            continue;
        }
        
        if ($valid_urls_count === 0) {
            $movie_obj["url"] = $clean_url;
        } else {
            $movie_obj["url" . $valid_urls_count] = $clean_url;
        }
        $valid_urls_count++;
    }

    $db->close();

    // ✅ إرجاع النتيجة مع معلومات عن الفلترة
    $response = [
        "movie" => $movie_obj,
        "success" => true
    ];

    echo json_encode($response, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);

} catch (Exception $e) {
    http_response_code(500);
    echo json_encode(["success" => false, "message" => "حدث خطأ في الخادم: " . $e->getMessage()], JSON_UNESCAPED_UNICODE);
}
?>