Update bot.py
Browse files
bot.py
CHANGED
@@ -39,9 +39,10 @@ if not WEBHOOK_DOMAIN:
|
|
39 |
# Webhook configuration
|
40 |
# -------------------------
|
41 |
# Define a unique webhook path using the bot token
|
42 |
-
#WEBHOOK_PATH = f"/{TOKEN}"
|
43 |
# Construct the full webhook URL (must be HTTPS as required by Telegram)
|
44 |
WEBHOOK_URL = f"https://{WEBHOOK_DOMAIN}" # {WEBHOOK_PATH}"
|
|
|
45 |
|
46 |
|
47 |
# -------------------------
|
@@ -114,7 +115,7 @@ async def main():
|
|
114 |
await application.run_webhook(
|
115 |
listen="0.0.0.0", # Listen on all available interfaces
|
116 |
port=443, # Port to listen on
|
117 |
-
|
118 |
webhook_url=WEBHOOK_URL # The full webhook URL that Telegram will use to send updates
|
119 |
)
|
120 |
|
@@ -125,4 +126,9 @@ async def main():
|
|
125 |
if __name__ == "__main__":
|
126 |
# Apply nest_asyncio to support nested event loops if required.
|
127 |
nest_asyncio.apply()
|
128 |
-
asyncio.run(main())
|
|
|
|
|
|
|
|
|
|
|
|
39 |
# Webhook configuration
|
40 |
# -------------------------
|
41 |
# Define a unique webhook path using the bot token
|
42 |
+
# WEBHOOK_PATH = f"/{TOKEN}"
|
43 |
# Construct the full webhook URL (must be HTTPS as required by Telegram)
|
44 |
WEBHOOK_URL = f"https://{WEBHOOK_DOMAIN}" # {WEBHOOK_PATH}"
|
45 |
+
TELEGRAM_WEBHOOK = f"https://api.telegram.org/bot{TOKEN}/setwebhook"
|
46 |
|
47 |
|
48 |
# -------------------------
|
|
|
115 |
await application.run_webhook(
|
116 |
listen="0.0.0.0", # Listen on all available interfaces
|
117 |
port=443, # Port to listen on
|
118 |
+
url_path=TELEGRAM_WEBHOOK, # The webhook path; here, we use the bot token
|
119 |
webhook_url=WEBHOOK_URL # The full webhook URL that Telegram will use to send updates
|
120 |
)
|
121 |
|
|
|
126 |
if __name__ == "__main__":
|
127 |
# Apply nest_asyncio to support nested event loops if required.
|
128 |
nest_asyncio.apply()
|
129 |
+
# asyncio.run(main())
|
130 |
+
|
131 |
+
# Instead of asyncio.run(), which may try to close an already running loop,
|
132 |
+
# get the current loop and run main() until complete.
|
133 |
+
loop = asyncio.get_event_loop()
|
134 |
+
loop.run_until_complete(main())
|