import os
from collections import defaultdict

linkss_file = "linkss.txt"
links_file = "links.txt"
output_file = "linker.txt"

def clean_url(url):
    """Remove query strings (anything after ?)"""
    return url.split("?")[0]

def extract_filename(url):
    """Extract filename from cleaned url"""
    url = clean_url(url)
    return url.rstrip("/").split("/")[-1]

# --- 1) خواندن links.txt و استخراج اسامی فایل‌ها ---
links_filenames = set()

with open(links_file, "r", encoding="utf-8") as f:
    for line in f:
        parts = line.strip().split(";")
        for p in parts:
            if p.startswith("http"):
                fname = extract_filename(p)
                links_filenames.add(fname)

# --- 2) خواندن linkss.txt و گروه‌بندی بر اساس ID ---
groups = defaultdict(list)

with open(linkss_file, "r", encoding="utf-8") as f:
    for line in f:
        parts = line.strip().split(";")
        if len(parts) < 2:
            continue
        
        group_id = parts[0]     # فقط ID
        groups[group_id].append(line.strip())

# --- 3) چک کردن کامل بودن هر فیلم/سریال ---
remaining = []

for group_id, lines in groups.items():
    all_links_exist = True
    
    for line in lines:
        parts = line.split(";")
        urls = [p for p in parts if p.startswith("http")]
        
        for url in urls:
            fname = extract_filename(url)
            if fname not in links_filenames:
                all_links_exist = False
                break
        
        if not all_links_exist:
            break
    
    # اگر حتی یک لینک نبود → کل گروه نگه داشته شود
    if not all_links_exist:
        remaining.extend(lines)

# --- 4) ذخیره خروجی ---
with open(output_file, "w", encoding="utf-8") as f:
    for line in remaining:
        f.write(line + "\n")

print("TOTAL groups:", len(groups))
print("TOTAL lines processed:", sum(len(v) for v in groups.values()))
print("REMAINING lines:", len(remaining))
print("Saved to", output_file)
