#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import os
import logging
import sys
from config import (
    TOKEN, FORCE_CHANNEL_ID, FORCE_CHANNEL_USERNAME,
    GPLINKS_API_KEY, EZ4SHORT_API_KEY, DROPLINK_API_KEY, TNLINK_API_KEY
)
from ad_manager import AdManager

# Konfigurasi logging
logging.basicConfig(
    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
    level=logging.INFO
)
logger = logging.getLogger(__name__)

def test_ad_manager():
    """Menguji fungsionalitas AdManager"""
    print("=== PENGUJIAN AD MANAGER ===")
    
    # Inisialisasi AdManager dengan konfigurasi dari config.py
    ad_manager = AdManager({
        'GPLINKS_API_KEY': GPLINKS_API_KEY,
        'EZ4SHORT_API_KEY': EZ4SHORT_API_KEY,
        'DROPLINK_API_KEY': DROPLINK_API_KEY,
        'TNLINK_API_KEY': TNLINK_API_KEY
    })
    
    # Tampilkan platform yang diaktifkan
    print(f"Platform shortlink yang diaktifkan: {ad_manager.enabled_platforms if ad_manager.enabled_platforms else 'Tidak ada'}")
    
    # Uji pesan iklan
    print("\nContoh pesan iklan:")
    for _ in range(3):
        print(f"- {ad_manager.get_ad_message()}")
    
    # Uji footer iklan
    print(f"\nFooter iklan: {ad_manager.get_ad_footer()}")
    
    # Uji pembuatan shortlink jika ada platform yang diaktifkan
    if ad_manager.enabled_platforms:
        test_url = "https://example.com/test-file.zip"
        print(f"\nMencoba membuat shortlink untuk: {test_url}")
        
        result = ad_manager.create_shortlink(test_url)
        if result['success']:
            print(f"✅ Berhasil membuat shortlink: {result['shortlink']}")
            print(f"Platform: {result['platform']}")
        else:
            print(f"❌ Gagal membuat shortlink: {result['error']}")
            print(f"Platform: {result['platform']}")
    else:
        print("\n⚠️ Tidak ada platform shortlink yang diaktifkan untuk pengujian pembuatan shortlink.")
        print("Untuk mengaktifkan, tambahkan API key di config.py")
    
    print("\n=== PENGUJIAN SELESAI ===")

def test_force_subscribe():
    """Menguji konfigurasi force subscribe"""
    print("=== PENGUJIAN FORCE SUBSCRIBE ===")
    
    if FORCE_CHANNEL_ID and FORCE_CHANNEL_USERNAME:
        print(f"✅ Force subscribe diaktifkan")
        print(f"Channel ID: {FORCE_CHANNEL_ID}")
        print(f"Channel Username: {FORCE_CHANNEL_USERNAME}")
    else:
        print("⚠️ Force subscribe tidak diaktifkan atau tidak dikonfigurasi dengan benar")
        print("Untuk mengaktifkan, atur FORCE_CHANNEL_ID dan FORCE_CHANNEL_USERNAME di config.py")
    
    print("=== PENGUJIAN SELESAI ===")

def main():
    """Fungsi utama untuk menjalankan pengujian"""
    print("=== PENGUJIAN BOT TELEGRAM UNTUK DOWNLOAD FILE DARI TERABOX DENGAN IKLAN ===\n")
    
    # Uji konfigurasi bot
    print("Konfigurasi Bot:")
    print(f"Token: {'Dikonfigurasi' if TOKEN else 'Tidak dikonfigurasi'}")
    
    # Uji AdManager
    test_ad_manager()
    
    # Uji Force Subscribe
    print("\n")
    test_force_subscribe()
    
    print("\n=== SEMUA PENGUJIAN SELESAI ===")
    print("Untuk menjalankan bot secara lengkap, gunakan: python3 run_bot.py")

if __name__ == "__main__":
    main()
