# تابع برای خواندن خطوط و جدا کردن شناسه IMDb
def read_file_lines(filename):
    lines_dict = {}
    try:
        with open(filename, 'r', encoding='utf-8') as file:
            for line in file:
                parts = line.strip().split(';')
                if len(parts) >= 2 and parts[1].startswith('tt'):
                    lines_dict[parts[1]] = line.strip()  # کل خط را با کلید tt ذخیره می‌کنیم
    except FileNotFoundError:
        print(f"خطا: فایل {filename} پیدا نشد")
    return lines_dict

# تابع اصلی برای مقایسه و خروجی
def find_missing_lines():
    # خواندن خطوط از هر دو فایل
    zarids_lines = read_file_lines('importer/zarids.txt')
    imovieids_lines = read_file_lines('importer/imovieids.txt')
    
    # پیدا کردن شناسه‌هایی که در imovieids.txt نیستند
    missing_ids = set(zarids_lines.keys()) - set(imovieids_lines.keys())
    
    # نوشتن خطوط کامل در فایل خروجی
    with open('nist.txt', 'w', encoding='utf-8') as output_file:
        for imdb_id in sorted(missing_ids):
            output_file.write(f"{zarids_lines[imdb_id]}\n")
    
    print(f"تعداد {len(missing_ids)} خط پیدا شد که در zarids.txt هست ولی در imovieids.txt نیست")
    print("نتایج در فایل nist.txt ذخیره شد")

# اجرای اسکریپت
if __name__ == "__main__":
    find_missing_lines()