from PIL import Image, ImageDraw, ImageFont
import os

IRAN_GREEN = "#239F40"
IRAN_WHITE = "#FFFFFF"
IRAN_RED = "#DA0000"
IRAN_DARK = "#1A1A2E"
SIZE = 1080
OUTPUT_DIR = r"C:\Users\Squir\OneDrive\Iran Pwned"
os.makedirs(OUTPUT_DIR, exist_ok=True)

# Windows fonts path
FONT_PATH = r"C:\Windows\Fonts\arial.ttf"
FONT_BOLD = r"C:\Windows\Fonts\arialbd.ttf"

font_title = ImageFont.truetype(FONT_BOLD, 68)
font_sub = ImageFont.truetype(FONT_BOLD, 52)
font_main = ImageFont.truetype(FONT_PATH, 34)
font_det = ImageFont.truetype(FONT_PATH, 30)
font_foot = ImageFont.truetype(FONT_BOLD, 26)

POSTS = [
    ("IRAN'S PROPAGANDA SITES", "ARE TRACKING YOU", "Google Tag Manager detected on state media", ["IRNA.IR - State news agency", "KHAMENEI.IR - Supreme Leader", "Your IP, browser logged", "Data flows to govt servers"], "OSINT FINDING #1"),
    ("PRIVATE IP LEAK", "IRNA.IR EXPOSED", "Internal IP exposed in public DNS", ["kateb.irna.ir -> 10.30.41.85", "Internal subnet exposed", "Editorial system 'Kateb'", "DNS misconfigured"], "OSINT FINDING #2"),
    ("VPN ENDPOINT EXPOSED", "FOREIGN MINISTRY", "Ministerial VPN in public DNS", ["r1.vpn.minister.local.mfa.gov.ir", "Resolves to: 185.143.235.201", "Internal naming leaked", "Credential attack target"], "OSINT FINDING #3"),
    ("ADMIN PORTAL FOUND", "KHAMENEI.IR", "Admin subdomain in SSL certificates", ["admin.english.khamenei.ir", "Certificate Transparency", "Admin interface exists", "Internal system public"], "OSINT FINDING #4"),
    ("HIDDEN API DOMAIN", "KHAMENEI.LINK", "Separate TLD hides API", ["formx.khamenei.link", "Not in subdomain scans", "Found via JS analysis", "Redirect tracking"], "OSINT FINDING #5"),
    ("MOBILE APK EXPOSED", "FARSNEWS.IR", "Android app for reverse engineering", ["dl.farsnews.ir/app.apk", "Hardcoded secrets possible", "Device fingerprinting", "API auth exposed"], "OSINT FINDING #6"),
    ("182 EMBASSY SUBDOMAINS", "MFA.GOV.IR MAPPED", "Diplomatic network mapped", ["lebanon.mfa.gov.ir", "venezuela.mfa.gov.ir", "russia, china subdomains", "cms, cloud, email found"], "OSINT FINDING #7"),
    ("HEZBOLLAH HOSTING", "RUSSIAN PROTECTION", "Russian hosting for resilience", ["moqawama.org.lb -> Moscow", "almanar.com.lb -> Selectel", "Backup: Czech, Malaysia", ".lb avoids US seizures"], "OSINT FINDING #8"),
    ("EXIF METADATA", "ATTRIBUTION FOUND", "Photoshop metadata in graphics", ["Adobe Photoshop 7.0 (pirated)", "Same workstation tracked", "Timestamps = Beirut hours", "Creators trackable"], "OSINT FINDING #9"),
    ("WHATSAPP OPSEC FAIL", "FILENAME PRESERVED", "WhatsApp filename on news site", ["WhatsApp Image 2025-12-13", "alahednews.com.lb exposed", "Comms pattern revealed", "Workflow exposed"], "OSINT FINDING #10"),
    ("GOVERNMENT ASNs", "ATTRIBUTION CONFIRMED", "Government networks identified", ["AS34592 - Presidential", "AS29079 - IRNA network", "AS205585 - ArvanCloud", "Single point of failure"], "OSINT FINDING #11"),
]

for i, (title, subtitle, main, details, footer) in enumerate(POSTS, 1):
    img = Image.new('RGB', (SIZE, SIZE), IRAN_DARK)
    d = ImageDraw.Draw(img)

    # Border accents
    d.rectangle([0, 0, SIZE, 10], fill=IRAN_GREEN)
    d.rectangle([0, SIZE-10, SIZE, SIZE], fill=IRAN_RED)
    d.rectangle([0, 0, 10, SIZE], fill=IRAN_GREEN)
    d.rectangle([SIZE-10, 0, SIZE, SIZE], fill=IRAN_RED)

    y = 70

    # Title (red)
    bb = d.textbbox((0,0), title, font=font_title)
    tw = bb[2] - bb[0]
    d.text(((SIZE - tw) // 2, y), title, fill=IRAN_RED, font=font_title)
    y += 85

    # Subtitle (green)
    bb = d.textbbox((0,0), subtitle, font=font_sub)
    sw = bb[2] - bb[0]
    d.text(((SIZE - sw) // 2, y), subtitle, fill=IRAN_GREEN, font=font_sub)
    y += 100

    # White divider
    d.rectangle([80, y, SIZE-80, y+3], fill=IRAN_WHITE)
    y += 50

    # Main text (white, centered)
    bb = d.textbbox((0,0), main, font=font_main)
    mw = bb[2] - bb[0]
    d.text(((SIZE - mw) // 2, y), main, fill=IRAN_WHITE, font=font_main)
    y += 80

    # Bullet points
    for detail in details:
        bullet = f"  {detail}"
        d.text((60, y), bullet, fill=IRAN_WHITE, font=font_det)
        y += 55

    y += 20

    # Bottom divider
    d.rectangle([80, y, SIZE-80, y+3], fill=IRAN_WHITE)

    # Footer (green)
    bb = d.textbbox((0,0), footer, font=font_foot)
    fw = bb[2] - bb[0]
    d.text(((SIZE - fw) // 2, SIZE - 85), footer, fill=IRAN_GREEN, font=font_foot)

    # Watermark
    d.text((SIZE - 190, SIZE - 55), "@RINGMAST4R", fill="#555555", font=font_foot)

    # Save
    fn = os.path.join(OUTPUT_DIR, f"iran_osint_{i:02d}.png")
    img.save(fn, "PNG")
    print(f"Created: iran_osint_{i:02d}.png")

print(f"\nDone! {len(POSTS)} posts in: {OUTPUT_DIR}")
