#!/usr/bin/env python3
"""Batch add multiple songs to LinkinPark project."""

import importlib.util
import sys

# Load add_stems module
spec = importlib.util.spec_from_file_location("add_stems", "add_stems.py")
mod = importlib.util.module_from_spec(spec)
spec.loader.exec_module(mod)

SONGS = [
    {
        "name": "In The End",
        "bpm": 105,
        "color": 3,  # Hybrid Theory = red-ish
        "stems_dir": "Samples/Hybrid Theory/In The End",
        "stems": {
            100: ("01 - Kick Drum", "kick"),
            101: ("02 - Snare Drum", "snare"),
            103: ("03 - Cymbals", "cymbals"),
            106: ("04 - Bass", "bass"),
            107: ("05 - Guitar", "guitar"),
            109: ("06 - Vocals", "vocals"),
            111: ("07 - Keys", "keys"),
            115: ("08 - Additional Instruments", "other"),
        }
    },
    {
        "name": "Crawling",
        "bpm": 82,
        "color": 3,
        "stems_dir": "Samples/Hybrid Theory/Crawling",
        "stems": {
            100: ("01 - Kick Drum", "kick"),
            101: ("02 - Snare Drum", "snare"),
            103: ("03 - Cymbals", "cymbals"),
            106: ("04 - Bass", "bass"),
            107: ("05 - Guitar", "guitar"),
            109: ("06 - Vocals", "vocals"),
            111: ("07 - Keys", "keys"),
            115: ("08 - Additional Instruments", "other"),
        }
    },
    {
        "name": "One Step Closer",
        "bpm": 96,
        "color": 3,
        "stems_dir": "Samples/Hybrid Theory/One Step Closer",
        "stems": {
            100: ("Linkin Park - kick", "kick"),
            101: ("Linkin Park - snare", "snare"),
            105: ("Linkin Park - drum", "drums_oh"),
            106: ("Linkin Park - bass", "bass"),
            107: ("Linkin Park - Guitar", "guitar"),
            109: ("Linkin Park - accapela", "vocals"),
            110: ("Linkin Park - backing voice", "backing_vocals"),
            115: ("Linkin Park - additional instruments", "other"),
        }
    },
    {
        "name": "Numb",
        "bpm": 110,
        "color": 13,  # Meteora = purple-ish
        "stems_dir": "Samples/Meteora/Numb",
        "stems": {
            100: ("01 - Drums", "drums"),
            106: ("02 - Bass", "bass"),
            107: ("03 - Guitar", "guitar"),
            109: ("04 - Vocals", "vocals"),
            111: ("05 - Keys", "keys"),
            115: ("06 - Additional Instruments", "other"),
        }
    },
    {
        "name": "Breaking The Habit",
        "bpm": 130,
        "color": 13,
        "stems_dir": "Samples/Meteora/Breaking The Habit",
        "stems": {
            100: ("01 - Drums", "drums"),
            106: ("02 - Bass", "bass"),
            107: ("03 - Guitar", "guitar"),
            109: ("04 - Vocals", "vocals"),
            111: ("05 - Keys", "keys"),
            115: ("06 - Additional Instruments", "other"),
        }
    },
    {
        "name": "Shadow Of The Day",
        "bpm": 76,
        "color": 19,  # Minutes to Midnight = dark
        "stems_dir": "Samples/Minutes to Midnight/Shadow Of The Day",
        "stems": {
            100: ("01 - Drums", "drums"),
            106: ("02 - Bass", "bass"),
            107: ("03 - Guitar", "guitar"),
            109: ("04 - Vocals", "vocals"),
            111: ("05 - Keys", "keys"),
            115: ("06 - Additional Instruments", "other"),
        }
    },
]

for i, song in enumerate(SONGS):
    print(f"\n{'='*60}")
    print(f"Adding [{i+1}/{len(SONGS)}]: {song['name']} ({song['bpm']} BPM)")
    print(f"{'='*60}")
    mod.add_song(song)

print(f"\n✓ All {len(SONGS)} songs added!")
