import logging import json import requests from flask import Flask, request, jsonify import google.generativeai as genai # ==== CONFIG ==== TELEGRAM_TOKEN = "7745816717:AAGKTpRtuPknjRAIct_2kdoANpJx3ZFztrg" GEMINI_API_KEY = "AIzaSyCq23lcvpPfig6ifq1rmt-z11vKpMvDD4I" TELEGRAM_API_URL = f"https://api.telegram.org/bot{TELEGRAM_TOKEN}" # ==== LOGGING ==== logging.basicConfig( format="%(asctime)s - %(name)s - %(levelname)s - %(message)s", level=logging.INFO ) logger = logging.getLogger(__name__) # ==== GEMINI AI SETUP ==== try: genai.configure(api_key=GEMINI_API_KEY) model = genai.GenerativeModel("gemini-1.5-flash") logger.info("Gemini AI configured successfully") except Exception as e: logger.error(f"Failed to configure Gemini AI: {e}") model = None # ==== FLASK APP ==== app = Flask(__name__) def send_message(chat_id, text): """Send message via direct HTTP request to Telegram API""" try: url = f"{TELEGRAM_API_URL}/sendMessage" payload = { 'chat_id': chat_id, 'text': text, 'parse_mode': 'HTML' } response = requests.post(url, json=payload, timeout=10) return response.status_code == 200 except Exception as e: logger.error(f"Failed to send message: {e}") return False def generate_ai_response(message): """Generate AI response using Gemini""" if not model: return "❌ AI service is not available." try: response = model.generate_content(message) return response.text if response.text else "⚠️ I couldn't generate a reply." except Exception as e: logger.error(f"Gemini error: {e}") return "❌ Something went wrong while generating response." # ==== ROUTES ==== @app.route("/") def home(): return """
✅ Bot is running and ready to receive webhooks!
Webhook URL: https://your-space-url.hf.space/webhook/{}
Webhook URL: {webhook_url}
Response: {result}
Your bot is now ready to receive messages!
← Back to Home """ else: return f"❌ Failed to set webhook: {result}" else: return f"❌ HTTP Error: {response.status_code}" except Exception as e: logger.error(f"Error setting webhook: {e}") return f"❌ Error: {str(e)}" @app.route("/webhook_info", methods=["GET"]) def webhook_info(): """Get current webhook information""" try: url = f"{TELEGRAM_API_URL}/getWebhookInfo" response = requests.get(url, timeout=10) if response.status_code == 200: info = response.json() return f"""{json.dumps(info, indent=2)}← Back to Home """ else: return f"❌ Error getting webhook info: {response.status_code}" except Exception as e: return f"❌ Error: {str(e)}" # ==== TEST ROUTE ==== @app.route("/test_ai", methods=["GET"]) def test_ai(): """Test AI functionality""" test_message = request.args.get('message', 'Hello, how are you?') response = generate_ai_response(test_message) return jsonify({ "input": test_message, "output": response, "gemini_available": model is not None }) if __name__ == "__main__": logger.info("🚀 Starting Telegram Bot Flask App") app.run(host="0.0.0.0", port=7860, debug=False)