Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python3
- # main.py - API Scan & Auto Connect Dual Bot
- import time
- import requests
- from dual import DualBot
- from prompt import debug_prompt, status_prompt
- def scan_apis():
- """Scan semua API keys dan test functionality"""
- print("๐ Scanning API Keys...")
- apis_to_test = [
- {
- "name": "Groq",
- "key": "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",
- "url": "https://api.groq.com/openai/v1/chat/completions",
- "method": "groq"
- },
- {
- "name": "DeepSeek",
- "key": "sk-018cc05d3a574de68947e669673fdf65",
- "url": "https://api.deepseek.com/chat/completions",
- "method": "deepseek"
- },
- {
- "name": "Gemini",
- "key": "AIzaSyDVoBSniv6CtvNZDPxvPNRPfRXWvj3304M",
- "url": "https://generativelanguage.googleapis.com/v1/models/gemini-2.0-flash:generateContent",
- "method": "gemini"
- }
- ]
- working_apis = []
- for api in apis_to_test:
- print(f"๐งช Testing {api['name']}...")
- try:
- if test_api(api):
- print(f"โ {api['name']} - WORKING")
- working_apis.append(api['name'])
- else:
- print(f"โ {api['name']} - FAILED")
- except Exception as e:
- print(f"โ {api['name']} - ERROR: {e}")
- return working_apis
- def test_api(api):
- """Test individual API"""
- test_prompt = "Hai! Beri salam pendek dalam Bahasa Malaysia."
- try:
- if api['method'] == 'groq':
- headers = {"Authorization": f"Bearer {api['key']}"}
- data = {
- "model": "llama-3.1-8b-instant",
- "messages": [{"role": "user", "content": test_prompt}],
- "max_tokens": 50
- }
- response = requests.post(api['url'], headers=headers, json=data, timeout=10)
- return response.status_code == 200
- elif api['method'] == 'deepseek':
- headers = {"Authorization": f"Bearer {api['key']}"}
- data = {
- "model": "deepseek-chat",
- "messages": [{"role": "user", "content": test_prompt}],
- "max_tokens": 50
- }
- response = requests.post(api['url'], headers=headers, json=data, timeout=10)
- return response.status_code == 200
- elif api['method'] == 'gemini':
- url = f"{api['url']}?key={api['key']}"
- data = {"contents": [{"parts": [{"text": test_prompt}]}]}
- response = requests.post(url, json=data, timeout=10)
- return response.status_code == 200
- except:
- return False
- def start_system():
- """Start system dengan timing adjustment"""
- print(status_prompt("SYSTEM", "Starting Dual Bot System..."))
- # FASA 1: API Testing dengan TIMEOUT AWARENESS
- print(debug_prompt("Phase 1: Quick API Scan"))
- start_scan_time = time.time()
- working_apis = scan_apis()
- scan_duration = time.time() - start_scan_time
- print(debug_prompt(f"API scan took {scan_duration:.1f}s"))
- # Adjust connection timeout based on scan time
- remaining_time = 25 - scan_duration # 25s total allocation
- if remaining_time < 10:
- print(debug_prompt(f"โ ๏ธ Low time remaining: {remaining_time:.1f}s"))
- if not working_apis:
- print("โ ๏ธ Some APIs failed, but continuing with available ones...")
- # FASA 2: Auto Connect dengan adjusted timing
- print(debug_prompt("Phase 2: Auto Connecting Dual Bot"))
- dual_bot = DualBot()
- # ๐ SET CONNECTION TIMEOUT based on remaining time
- min_timeout = max(15, remaining_time - 5) # Minimum 15s, keep 5s buffer
- print(debug_prompt(f"Set connection timeout: {min_timeout}s"))
- return dual_bot.start()
- def main():
- print(status_prompt("SYSTEM", "Starting API Scan & Auto Connect..."))
- # FASA 1: Scan API Keys
- print(debug_prompt("Phase 1: Scanning APIs"))
- working_apis = scan_apis()
- if not working_apis:
- print("โ CRITICAL: No working APIs found!")
- return
- print(status_prompt("API", f"Working: {', '.join(working_apis)}"))
- # FASA 2: Auto Connect Dual Bot
- print(debug_prompt("Phase 2: Auto Connecting Dual Bot"))
- bot = DualBot()
- try:
- if bot.start():
- print(status_prompt("SYSTEM", "โ Dual Bot Connected & Running!"))
- print(debug_prompt("Press Ctrl+C to stop"))
- # Monitor loop
- while bot.is_running():
- time.sleep(10)
- else:
- print(status_prompt("SYSTEM", "โ Dual Bot failed to connect"))
- except KeyboardInterrupt:
- print(status_prompt("SYSTEM", "Shutdown requested..."))
- bot.stop()
- except Exception as e:
- print(debug_prompt(f"System error: {e}"))
- bot.stop()
- if __name__ == "__main__":
- main()
Advertisement
Add Comment
Please, Sign In to add comment