akdNIKY commited on
Commit
bb66be5
·
verified ·
1 Parent(s): 62b151b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +8 -6
app.py CHANGED
@@ -79,7 +79,7 @@ MESSAGES = {
79
  'main_menu_prompt': "چه کاری می‌خواهید روی فایل خود انجام دهید؟",
80
  'btn_convert_format': "تغییر فرمت صدا 🎵",
81
  'btn_cut_audio': "برش قسمتی از صدا ✂️",
82
- 'btn_video_conversion': "تبدیل ویدیو دایره‌ای ",
83
  'convert_mode_active': "شما در حالت 'تغییر فرمت صدا' هستید. حالا فایل صوتی (ویس یا MP3) خود را برای من ارسال کنید.",
84
  'cut_mode_active_file': "شما در قسمت 'برش و کات کردن صدا' هستید.\n\nابتدا فایل صوتی (MP3 یا ویس) خود را ارسال کنید.",
85
  'cut_mode_active_range': "حالا بازه زمانی مورد نظر برای برش را به صورت 'دقیقه.ثانیه-دقیقه.ثانیه' (مثال: 00.21-00.54) ارسال کنید.",
@@ -448,7 +448,6 @@ def setup_telegram_app():
448
  print("در حال ساختن اپلیکیشن تلگرام...")
449
  application = Application.builder().token(TOKEN).build()
450
 
451
- # برای رفع هشدار PTBUserWarning، تنظیمات پیش‌فرض را به صراحت مشخص می‌کنیم
452
  conv_handler = ConversationHandler(
453
  entry_points=[CommandHandler("start", start), CommandHandler("link", admin_link_command)],
454
  states={
@@ -489,6 +488,7 @@ def setup_telegram_app():
489
 
490
  app = Flask(__name__)
491
  telegram_app = setup_telegram_app()
 
492
 
493
  @app.route("/")
494
  def index():
@@ -497,12 +497,13 @@ def index():
497
  @app.route("/webhook", methods=["POST"])
498
  async def webhook():
499
  """این مسیر آپدیت‌ها را از تلگرام دریافت کرده و پردازش می‌کند."""
 
500
  try:
501
  # **راه‌حل نهایی**: قبل از پردازش، مطمئن می‌شویم که ربات آماده است.
502
- # این کار فقط در اولین درخواست به یک ورکر جدید (یا پس از ری‌استارت) زمان‌بر خواهد بود.
503
- if not telegram_app.initialized:
504
  print("مقداردهی اولیه ربات در اولین درخواست وبهوک...")
505
  await telegram_app.initialize()
 
506
  print("ربات با موفقیت مقداردهی اولیه شد.")
507
 
508
  update = Update.de_json(request.get_json(force=True), telegram_app.bot)
@@ -514,6 +515,7 @@ async def webhook():
514
 
515
  @app.route("/set_webhook", methods=["GET"])
516
  async def set_webhook_route():
 
517
  webhook_url = os.getenv("WEBHOOK_URL")
518
  if not webhook_url:
519
  return jsonify({"status": "error", "message": "WEBHOOK_URL environment variable not set."}), 500
@@ -523,8 +525,9 @@ async def set_webhook_route():
523
 
524
  try:
525
  # اطمینان از اینکه ربات قبل از تنظیم وبهوک مقداردهی اولیه شده
526
- if not telegram_app.initialized:
527
  await telegram_app.initialize()
 
528
 
529
  await telegram_app.bot.set_webhook(url=webhook_url, allowed_updates=Update.ALL_TYPES)
530
  return jsonify({"status": "success", "message": f"Webhook set to {webhook_url}"})
@@ -534,5 +537,4 @@ async def set_webhook_route():
534
 
535
  if __name__ == "__main__":
536
  # این بخش فقط برای اجرای محلی (local) با استفاده از وب‌سرور خود Flask است.
537
- # در این حالت، initialize() در اولین درخواست به وبهوک اجرا می‌شود.
538
  app.run(host='0.0.0.0', port=int(os.environ.get("PORT", 7860)))
 
79
  'main_menu_prompt': "چه کاری می‌خواهید روی فایل خود انجام دهید؟",
80
  'btn_convert_format': "تغییر فرمت صدا 🎵",
81
  'btn_cut_audio': "برش قسمتی از صدا ✂️",
82
+ 'btn_video_conversion': "تبدیل ویدیو دایره‌ای 🎥",
83
  'convert_mode_active': "شما در حالت 'تغییر فرمت صدا' هستید. حالا فایل صوتی (ویس یا MP3) خود را برای من ارسال کنید.",
84
  'cut_mode_active_file': "شما در قسمت 'برش و کات کردن صدا' هستید.\n\nابتدا فایل صوتی (MP3 یا ویس) خود را ارسال کنید.",
85
  'cut_mode_active_range': "حالا بازه زمانی مورد نظر برای برش را به صورت 'دقیقه.ثانیه-دقیقه.ثانیه' (مثال: 00.21-00.54) ارسال کنید.",
 
448
  print("در حال ساختن اپلیکیشن تلگرام...")
449
  application = Application.builder().token(TOKEN).build()
450
 
 
451
  conv_handler = ConversationHandler(
452
  entry_points=[CommandHandler("start", start), CommandHandler("link", admin_link_command)],
453
  states={
 
488
 
489
  app = Flask(__name__)
490
  telegram_app = setup_telegram_app()
491
+ APP_INITIALIZED = False # پرچم برای پیگیری وضعیت آماده بودن ربات
492
 
493
  @app.route("/")
494
  def index():
 
497
  @app.route("/webhook", methods=["POST"])
498
  async def webhook():
499
  """این مسیر آپدیت‌ها را از تلگرام دریافت کرده و پردازش می‌کند."""
500
+ global APP_INITIALIZED
501
  try:
502
  # **راه‌حل نهایی**: قبل از پردازش، مطمئن می‌شویم که ربات آماده است.
503
+ if not APP_INITIALIZED:
 
504
  print("مقداردهی اولیه ربات در اولین درخواست وبهوک...")
505
  await telegram_app.initialize()
506
+ APP_INITIALIZED = True
507
  print("ربات با موفقیت مقداردهی اولیه شد.")
508
 
509
  update = Update.de_json(request.get_json(force=True), telegram_app.bot)
 
515
 
516
  @app.route("/set_webhook", methods=["GET"])
517
  async def set_webhook_route():
518
+ global APP_INITIALIZED
519
  webhook_url = os.getenv("WEBHOOK_URL")
520
  if not webhook_url:
521
  return jsonify({"status": "error", "message": "WEBHOOK_URL environment variable not set."}), 500
 
525
 
526
  try:
527
  # اطمینان از اینکه ربات قبل از تنظیم وبهوک مقداردهی اولیه شده
528
+ if not APP_INITIALIZED:
529
  await telegram_app.initialize()
530
+ APP_INITIALIZED = True
531
 
532
  await telegram_app.bot.set_webhook(url=webhook_url, allowed_updates=Update.ALL_TYPES)
533
  return jsonify({"status": "success", "message": f"Webhook set to {webhook_url}"})
 
537
 
538
  if __name__ == "__main__":
539
  # این بخش فقط برای اجرای محلی (local) با استفاده از وب‌سرور خود Flask است.
 
540
  app.run(host='0.0.0.0', port=int(os.environ.get("PORT", 7860)))