Spaces:
Running
Running
Update app.py
Browse files
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
|
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)))
|