#!/usr/bin/env python3
"""
Test Pushover Notifications
Sends a test notification to verify credentials and setup
"""

import sys
import json
from pathlib import Path
from datetime import datetime

# Add modules to path
sys.path.insert(0, str(Path(__file__).parent))
sys.path.insert(0, str(Path(__file__).parent / 'modules'))

from modules.pushover_notifier import PushoverNotifier

def load_config():
    """Load configuration from settings.json"""
    config_path = Path(__file__).parent / 'config' / 'settings.json'
    with open(config_path, 'r') as f:
        return json.load(f)

def main():
    print("Testing Pushover Notifications...")
    print("-" * 50)

    # Load config
    config = load_config()
    pushover_config = config.get('pushover', {})

    # Check if enabled
    if not pushover_config.get('enabled'):
        print("❌ Pushover is disabled in config")
        print("   Set 'enabled': true in config/settings.json")
        return 1

    # Check credentials
    user_key = pushover_config.get('user_key')
    api_token = pushover_config.get('api_token')

    if not user_key or not api_token:
        print("❌ Missing Pushover credentials")
        print("   Add 'user_key' and 'api_token' to config/settings.json")
        return 1

    print(f"✓ Pushover enabled")
    print(f"✓ User key: {user_key[:10]}...")
    print(f"✓ API token: {api_token[:10]}...")
    print()

    # Create notifier
    notifier = PushoverNotifier(
        user_key=user_key,
        api_token=api_token,
        enabled=True,
        default_priority=pushover_config.get('priority', 0),
        device=pushover_config.get('device')
    )

    # Send test notification
    print("Sending test notification...")

    success = notifier.notify_download(
        platform='instagram',
        source='evalongoria',
        content_type='story',
        filename='test_story_20251019.mp4',
        count=3,
        metadata={'post_date': datetime.now()}
    )

    if success:
        print("✅ Test notification sent successfully!")
        print()
        print("Check your Pushover app for the notification.")
        print()
        print("Stats:", notifier.get_stats())
        return 0
    else:
        print("❌ Failed to send notification")
        print()
        print("Stats:", notifier.get_stats())
        print()
        print("Possible issues:")
        print("  - Invalid user_key or api_token")
        print("  - No internet connection")
        print("  - Pushover service down")
        return 1

if __name__ == '__main__':
    sys.exit(main())
