Files
media-downloader/tests/test_browser_reuse.py
Todd 0d7b2b1aab Initial commit
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-29 22:42:55 -04:00

81 lines
2.4 KiB
Python

#!/usr/bin/env python3
"""
Test browser reuse across multiple profile downloads
This verifies that Cloudflare challenge is only solved once
"""
import sys
import os
from pathlib import Path
from datetime import datetime
# Add modules directory to path
sys.path.insert(0, str(Path(__file__).parent))
from modules.imginn_module import ImgInnDownloader
def main():
print("=" * 70)
print("Browser Reuse Test - Multiple Profiles")
print("=" * 70)
print(f"Date: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}")
print("=" * 70)
print()
print("This test will download from TWO different profiles sequentially")
print("to verify the browser is reused and Cloudflare doesn't re-challenge.")
print()
# Create downloader with HEADLESS browser
downloader = ImgInnDownloader(
api_key="cf57fdb7577ada64d150431d6589c8f4",
headless=True,
show_progress=True,
use_database=False
)
# Test profiles
profiles = ["evalongoria", "kimkardashian"]
try:
for i, username in enumerate(profiles, 1):
print("\n" + "=" * 70)
print(f"PROFILE {i}/{len(profiles)}: @{username}")
print("=" * 70)
files = downloader.download_posts(
username=username,
days_back=14,
max_posts=1
)
if files:
print(f"✅ Downloaded {len(files)} file(s) from @{username}")
for f in files:
print(f" - {Path(f).name}")
else:
print(f"⚠️ No new files from @{username} (may have been downloaded already)")
print("\n" + "=" * 70)
print("TEST COMPLETE")
print("=" * 70)
print()
print("✅ Browser reuse successful!")
print(" - Check logs above: Cloudflare should only be solved ONCE")
print(" - Second profile should say 'Browser already running, reusing...'")
print()
except KeyboardInterrupt:
print("\n\n⚠️ Interrupted by user")
except Exception as e:
print(f"\n\n❌ Error: {e}")
import traceback
traceback.print_exc()
finally:
# Explicitly stop browser when done with all profiles
print("\nCleaning up browser...")
downloader._stop_browser()
print("✅ Browser closed")
if __name__ == "__main__":
main()