ABO3MR commited on
Commit
b2ddb51
·
verified ·
1 Parent(s): 451514d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +51 -14
app.py CHANGED
@@ -1,18 +1,23 @@
1
  import telebot
2
- from telebot import apihelper
3
  import time
4
  import random
5
  import threading
 
6
  import gradio as gr
7
-
8
- # إعدادات الشبكة لحل مشكلة الـ Timeouts على سيرفرات Hugging Face
9
- apihelper.RETRY_ON_ERROR = True
10
- apihelper.CONNECT_TIMEOUT = 60
11
- apihelper.READ_TIMEOUT = 60
12
 
13
  TOKEN = "8238023143:AAHLMQFTBSjdusQvvsat9FNdCx968neiaj0"
14
  bot = telebot.TeleBot(TOKEN)
15
 
 
 
 
 
 
 
 
 
 
16
  azkar = [
17
  "اللهم صل وسلم على نبينا محمد 🤍",
18
  "اللهم صل على سيدنا محمد وعلى آله وصحبه وسلم ✨",
@@ -39,7 +44,6 @@ def start_message(message):
39
  if chat_id not in active_users:
40
  active_users.add(chat_id)
41
  bot.reply_to(message, "تم تفعيل التذكير بالصلاة على النبي كل 3 ثواني 🤍\nلإيقاف التذكير ارسل /stop")
42
-
43
  threading.Thread(target=send_azkar, args=(chat_id,), daemon=True).start()
44
  else:
45
  bot.reply_to(message, "التذكير شغال بالفعل! 🤍")
@@ -53,15 +57,48 @@ def stop_message(message):
53
  else:
54
  bot.reply_to(message, "التذكير متوقف أصلاً.")
55
 
56
- def run_bot():
57
- print("Bot is running...")
58
- # زيادة وقت الـ Long Polling لتقليل الضغط وعمليات الـ Handshake
59
- bot.infinity_polling(timeout=60, long_polling_timeout=30)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
60
 
61
- threading.Thread(target=run_bot, daemon=True).start()
 
62
 
 
63
  with gr.Blocks() as demo:
64
- gr.Markdown("<center><h1>🐳 البوت يعمل بنجاح في الخلفية</h1></center>")
65
- gr.Markdown("<center>تم تحسين الاتصال لتجنب مشكلة الـ Timeout</center>")
66
 
 
67
  demo.launch()
 
1
  import telebot
 
2
  import time
3
  import random
4
  import threading
5
+ import os
6
  import gradio as gr
7
+ from flask import Flask, request, abort
 
 
 
 
8
 
9
  TOKEN = "8238023143:AAHLMQFTBSjdusQvvsat9FNdCx968neiaj0"
10
  bot = telebot.TeleBot(TOKEN)
11
 
12
+ # ==============================================================
13
+ # ⚠️ هام جداً: ضع رابط الـ Space الخاص بك هنا
14
+ # ابحث في إعدادات הـ Space أو انسخ الرابط الذي يظهر فيه الـ App
15
+ # مثال: "https://abo3mr-df.hf.space"
16
+ WEBHOOK_URL = "https://YOUR-SPACE-NAME.hf.space"
17
+ # ==============================================================
18
+
19
+ app = Flask(__name__)
20
+
21
  azkar = [
22
  "اللهم صل وسلم على نبينا محمد 🤍",
23
  "اللهم صل على سيدنا محمد وعلى آله وصحبه وسلم ✨",
 
44
  if chat_id not in active_users:
45
  active_users.add(chat_id)
46
  bot.reply_to(message, "تم تفعيل التذكير بالصلاة على النبي كل 3 ثواني 🤍\nلإيقاف التذكير ارسل /stop")
 
47
  threading.Thread(target=send_azkar, args=(chat_id,), daemon=True).start()
48
  else:
49
  bot.reply_to(message, "التذكير شغال بالفعل! 🤍")
 
57
  else:
58
  bot.reply_to(message, "التذكير متوقف أصلاً.")
59
 
60
+ # مسار Flask لاستقبال البيانات من تيليجرام
61
+ @app.route(f"/{TOKEN}", methods=['POST'])
62
+ def webhook():
63
+ if request.headers.get('content-type') == 'application/json':
64
+ json_string = request.get_data().decode('utf-8')
65
+ update = telebot.types.Update.de_json(json_string)
66
+ bot.process_new_updates([update])
67
+ return '', 200
68
+ else:
69
+ abort(403)
70
+
71
+ # مسار رئيسي وهمي لـ Flask
72
+ @app.route("/")
73
+ def index():
74
+ return "Bot is running with Webhooks!"
75
+
76
+ # وظيفة لإعداد الـ Webhook وتشغيل سيرفر Flask
77
+ def run_flask_app():
78
+ # إزالة أي ويب هوك قديم أولاً
79
+ bot.remove_webhook()
80
+ time.sleep(1)
81
+
82
+ # ربط تيليجرام بسيرفرك الجديد
83
+ # إذا لم تقم بتعديل WEBHOOK_URL بشكل صحيح، فلن يعمل البوت
84
+ webhook_target = f"{WEBHOOK_URL.rstrip('/')}/{TOKEN}"
85
+ success = bot.set_webhook(url=webhook_target)
86
+
87
+ if success:
88
+ print(f"Webhook set successfully to {webhook_target}")
89
+ else:
90
+ print("Failed to set webhook!")
91
+
92
+ # تشغيل Flask على بورت 8080 (Gradio سيعمل على 7860)
93
+ app.run(host="0.0.0.0", port=8080)
94
 
95
+ # تشغيل السيرفر في الخلفية
96
+ threading.Thread(target=run_flask_app, daemon=True).start()
97
 
98
+ # واجهة Gradio لإبقاء الـ Space نشطاً
99
  with gr.Blocks() as demo:
100
+ gr.Markdown("<center><h1>🐳 البوت يعمل بنجاح باستخدام Webhooks</h1></center>")
101
+ gr.Markdown("<center>تم حل مشكلة الـ Timeout للأبد.</center>")
102
 
103
+ # تشغيل Gradio
104
  demo.launch()