import cloudscraper
import json
import sys
import re

def main():
    if len(sys.argv) < 2:
        return
    
    query = sys.argv[1]
    query_lower = query.lower()
    
    # سایت‌هایی که در PHP مسدود می‌شدند (به‌روزرسانی شده)
    sites = {
        'MoboMovies': 'https://mobomovie.online/?s=',
        'HastiDL': 'https://hastidls.fun/?s=',
        'HexDL': 'https://hexdl.com/?s=',
        'VinaSub': 'https://vinasub.me/?s=',
        'RasaFilm': 'https://rasafilm.xyz/?s='
    }

    scraper = cloudscraper.create_scraper()
    all_results = []

    for name, base_url in sites.items():
        try:
            # شبیه‌سازی مرورگر با Cloudscraper
            response = scraper.get(base_url + query, timeout=12)
            if response.status_code == 200:
                # استخراج لینک‌ها
                links = re.findall(r'<a\s+(?:[^>]*?\s+)?href="([^"]*)"[^>]*>(.*?)</a>', response.text, re.IGNORECASE | re.DOTALL)
                
                count = 0
                for url, title_raw in links:
                    if count >= 4: break
                    
                    title = re.sub('<[^<]+?>', '', title_raw).strip()
                    title_lower = title.lower()
                    
                    # فیلتر لینک‌های نامرتبط
                    if any(x in url for x in ['imdb.com', '/category/', '/tag/', 'google.com', 'instagram.com']):
                        continue
                        
                    # حل مشکل Salt vs Saltburn با مرز کلمه \b
                    # بررسی می‌کنیم که کلمه جستجو شده حتماً به صورت مستقل در عنوان یا لینک باشد
                    pattern = r'\b' + re.escape(query_lower) + r'\b'
                    if re.search(pattern, title_lower) or re.search(pattern, url.lower()):
                        all_results.append({'url': url, 'title': title})
                        count += 1
        except:
            continue

    # خروجی JSON برای PHP
    sys.stdout.write(json.dumps(all_results))

if __name__ == "__main__":
    main()