
from telegram import Update
from telegram.ext import (
ApplicationBuilder,
MessageHandler,
filters,
ContextTypes,
)
import asyncio
# Ваш токен, полученный от BotFather
TOKEN = ' бла бла тут токен'
# Ваш ID в Telegram
YOUR_CHAT_ID = 'бла бла тут айди
async def handle_text(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
text = update.message.text # Текст сообщения
await context.bot.send_message(chat_id=YOUR_CHAT_ID, text=f"Получено текстовое сообщение: {text}")
async def handle_photo(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
photo_file = update.message.photo[-1].file_id # Получаем последнее фото
await context.bot.send_photo(chat_id=YOUR_CHAT_ID, photo=photo_file) # Отправляем фото вам
async def handle_video(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
video_file = update.message.video.file_id # Получаем видео
await context.bot.send_video(chat_id=YOUR_CHAT_ID, video=video_file) # Отправляем видео вам
async def handle_document(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
document_file = update.message.document.file_id # Получаем документ
await context.bot.send_document(chat_id=YOUR_CHAT_ID, document=document_file) # Отправляем документ вам
async def handle_gif(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
gif_file = update.message.animation.file_id # Получаем GIF
await context.bot.send_animation(chat_id=YOUR_CHAT_ID, animation=gif_file) # Отправляем GIF вам
async def handle_link(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
text = update.message.text # Получаем текст
if 'http' in text: # Проверяем, содержит ли текст ссылку
await context.bot.send_message(chat_id=YOUR_CHAT_ID, text=f"Получена ссылка: {text}")
async def main() -> None:
try:
# Создаём экземпляр Application
app = ApplicationBuilder().token(TOKEN).build()
# Обработчики сообщений для различных типов
app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, handle_text)) # Текстовые сообщения
app.add_handler(MessageHandler(filters.PHOTO, handle_photo)) # Фотографии
app.add_handler(MessageHandler(filters.VIDEO, handle_video)) # Видео
app.add_handler(MessageHandler(filters.Document.ALL, handle_document)) # Документы
app.add_handler(MessageHandler(filters.ANIMATION, handle_gif)) # GIF
app.add_handler(MessageHandler(filters.TEXT, handle_link)) # Ссылки
# Запуск бота
await app.run_polling()
except Exception as e:
print(f"Ошибка при запуске бота: {e}")
finally:
# Явное завершение работы без попытки закрытия цикла
await app.shutdown()
def run_bot():
try:
# Если цикл событий уже запущен, используем его
loop = asyncio.get_running_loop()
print("Используем существующий цикл событий...")
loop.create_task(main())
except RuntimeError:
# Если цикл не запущен, создаём новый
print("Запускаем новый цикл событий...")
asyncio.run(main())
if __name__ == '__main__':
run_bot()
from telegram import Update
from telegram.ext import (
ApplicationBuilder,
MessageHandler,
filters,
ContextTypes,
)
import asyncio
# Ваш токен, полученный от BotFather
TOKEN = ' бла бла тут токен'
# Ваш ID в Telegram
YOUR_CHAT_ID = 'бла бла тут айди
async def handle_text(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
text = update.message.text # Текст сообщения
await context.bot.send_message(chat_id=YOUR_CHAT_ID, text=f"Получено текстовое сообщение: {text}")
async def handle_photo(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
photo_file = update.message.photo[-1].file_id # Получаем последнее фото
await context.bot.send_photo(chat_id=YOUR_CHAT_ID, photo=photo_file) # Отправляем фото вам
async def handle_video(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
video_file = update.message.video.file_id # Получаем видео
await context.bot.send_video(chat_id=YOUR_CHAT_ID, video=video_file) # Отправляем видео вам
async def handle_document(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
document_file = update.message.document.file_id # Получаем документ
await context.bot.send_document(chat_id=YOUR_CHAT_ID, document=document_file) # Отправляем документ вам
async def handle_gif(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
gif_file = update.message.animation.file_id # Получаем GIF
await context.bot.send_animation(chat_id=YOUR_CHAT_ID, animation=gif_file) # Отправляем GIF вам
async def handle_link(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
text = update.message.text # Получаем текст
if 'http' in text: # Проверяем, содержит ли текст ссылку
await context.bot.send_message(chat_id=YOUR_CHAT_ID, text=f"Получена ссылка: {text}")
async def main() -> None:
try:
# Создаём экземпляр Application
app = ApplicationBuilder().token(TOKEN).build()
# Обработчики сообщений для различных типов
app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, handle_text)) # Текстовые сообщения
app.add_handler(MessageHandler(filters.PHOTO, handle_photo)) # Фотографии
app.add_handler(MessageHandler(filters.VIDEO, handle_video)) # Видео
app.add_handler(MessageHandler(filters.Document.ALL, handle_document)) # Документы
app.add_handler(MessageHandler(filters.ANIMATION, handle_gif)) # GIF
app.add_handler(MessageHandler(filters.TEXT, handle_link)) # Ссылки
# Запуск бота
await app.run_polling()
except Exception as e:
print(f"Ошибка при запуске бота: {e}")
finally:
# Явное завершение работы без попытки закрытия цикла
await app.shutdown()
def run_bot():
try:
# Если цикл событий уже запущен, используем его
loop = asyncio.get_running_loop()
print("Используем существующий цикл событий...")
loop.create_task(main())
except RuntimeError:
# Если цикл не запущен, создаём новый
print("Запускаем новый цикл событий...")
asyncio.run(main())
if __name__ == '__main__':
run_bot()
Ошибка при запуске бота: Cannot close a running event loop
c:\Users\11\Downloads\cod\bot.py:56: RuntimeWarning: coroutine 'Application.shutdown' was never awaited
print(f"Ошибка при запуске бота: {e}")
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
c:\Users\11\Downloads\cod\bot.py:56: RuntimeWarning: coroutine 'Application.initialize' was never awaited
print(f"Ошибка при запуске бота: {e}")
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
Спасибо, пробовал ошибки кормить и ошибка оказалась очень простой... Гпт думал что я НЕ использую среду, а именно вижуал студио код. Когда ему написал об этом, все заработало (он мне норм код написал)
Какой чатгпт? Ты поехал что ли? Это говно даже не знает как ip выглядит такой код уровня b пишет.
Вот юзай https://chat.qwen.ai/
или https://chat.deepseek.com/
>from telegram import Update
>from telegram.ext import (
>ApplicationBuilder,
>MessageHandler,
>filters,
>ContextTypes,
>)
>import asyncio
>
># Ваш токен, полученный от BotFather
>TOKEN = ' бла бла тут токен'
># Ваш ID в Telegram
>YOUR_CHAT_ID = 'бла бла тут айди
>
>async def handle_text(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
>text = update.message.text # Текст сообщения
>await context.bot.send_message(chat_id=YOUR_CHAT_ID, text=f"Получено текстовое сообщение: {text}")
>
>async def handle_photo(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
>photo_file = update.message.photo[-1].file_id # Получаем последнее фото
>await context.bot.send_photo(chat_id=YOUR_CHAT_ID, photo=photo_file) # Отправляем фото вам
>
>async def handle_video(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
>video_file = update.message.video.file_id # Получаем видео
>await context.bot.send_video(chat_id=YOUR_CHAT_ID, video=video_file) # Отправляем видео вам
>
>async def handle_document(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
>document_file = update.message.document.file_id # Получаем документ
>await context.bot.send_document(chat_id=YOUR_CHAT_ID, document=document_file) # Отправляем документ вам
>
>async def handle_gif(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
>gif_file = update.message.animation.file_id # Получаем GIF
>await context.bot.send_animation(chat_id=YOUR_CHAT_ID, animation=gif_file) # Отправляем GIF вам
>
>async def handle_link(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
>text = update.message.text # Получаем текст
>if 'http' in text: # Проверяем, содержит ли текст ссылку
>await context.bot.send_message(chat_id=YOUR_CHAT_ID, text=f"Получена ссылка: {text}")
>
>async def main() -> None:
>try:
># Создаём экземпляр Application
>app = ApplicationBuilder().token(TOKEN).build()
>
># Обработчики сообщений для различных типов
>app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, handle_text)) # Текстовые сообщения
>app.add_handler(MessageHandler(filters.PHOTO, handle_photo)) # Фотографии
>app.add_handler(MessageHandler(filters.VIDEO, handle_video)) # Видео
>app.add_handler(MessageHandler(filters.Document.ALL, handle_document)) # Документы
>app.add_handler(MessageHandler(filters.ANIMATION, handle_gif)) # GIF
>app.add_handler(MessageHandler(filters.TEXT, handle_link)) # Ссылки
>
># Запуск бота
>await app.run_polling()
>except Exception as e:
>print(f"Ошибка при запуске бота: {e}")
>finally:
># Явное завершение работы без попытки закрытия цикла
>await app.shutdown()
>
>def run_bot():
>try:
># Если цикл событий уже запущен, используем его
>loop = asyncio.get_running_loop()
>print("Используем существующий цикл событий...")
>loop.create_task(main())
>except RuntimeError:
># Если цикл не запущен, создаём новый
>print("Запускаем новый цикл событий...")
>asyncio.run(main())
>
>if __name__ == '__main__':
>run_bot()
from telegram import Update
from telegram.ext import (
ApplicationBuilder,
MessageHandler,
filters,
ContextTypes,
)
import asyncio
import re
import logging
# Настройка логирования
logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=logging.INFO)
logger = logging.getLogger(__name__)
# Ваш токен, полученный от BotFather
TOKEN = 'бла бла тут токен'
# Ваш ID в Telegram
YOUR_CHAT_ID = int('бла бла тут айди')
async def handle_text_and_link(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
text = update.message.text
url_pattern = re.compile(r'https?://\S+')
if url_pattern.search(text):
await context.bot.send_message(chat_id=YOUR_CHAT_ID, text=f"Получена ссылка: {text}")
else:
await context.bot.send_message(chat_id=YOUR_CHAT_ID, text=f"Получено текстовое сообщение: {text}")
async def handle_photo(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
photo_file = update.message.photo[-1].file_id
await context.bot.send_photo(chat_id=YOUR_CHAT_ID, photo=photo_file)
async def handle_video(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
video_file = update.message.video.file_id
await context.bot.send_video(chat_id=YOUR_CHAT_ID, video=video_file)
async def handle_document(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
document_file = update.message.document.file_id
await context.bot.send_document(chat_id=YOUR_CHAT_ID, document=document_file)
async def handle_gif(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
gif_file = update.message.animation.file_id
await context.bot.send_animation(chat_id=YOUR_CHAT_ID, animation=gif_file)
async def main() -> None:
try:
app = ApplicationBuilder().token(TOKEN).build()
# Добавляем обработчики
app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, handle_text_and_link))
app.add_handler(MessageHandler(filters.PHOTO, handle_photo))
app.add_handler(MessageHandler(filters.VIDEO, handle_video))
app.add_handler(MessageHandler(filters.Document.ALL, handle_document))
app.add_handler(MessageHandler(filters.ANIMATION, handle_gif))
await app.run_polling()
except Exception as e:
logger.error(f"Ошибка при запуске бота: {e}")
finally:
await app.shutdown()
def run_bot():
try:
loop = asyncio.get_running_loop()
print("Используем существующий цикл событий...")
loop.create_task(main())
except RuntimeError:
print("Запускаем новый цикл событий...")
asyncio.run(main())
if __name__ == '__main__':
run_bot()
>from telegram import Update
>from telegram.ext import (
>ApplicationBuilder,
>MessageHandler,
>filters,
>ContextTypes,
>)
>import asyncio
>
># Ваш токен, полученный от BotFather
>TOKEN = ' бла бла тут токен'
># Ваш ID в Telegram
>YOUR_CHAT_ID = 'бла бла тут айди
>
>async def handle_text(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
>text = update.message.text # Текст сообщения
>await context.bot.send_message(chat_id=YOUR_CHAT_ID, text=f"Получено текстовое сообщение: {text}")
>
>async def handle_photo(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
>photo_file = update.message.photo[-1].file_id # Получаем последнее фото
>await context.bot.send_photo(chat_id=YOUR_CHAT_ID, photo=photo_file) # Отправляем фото вам
>
>async def handle_video(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
>video_file = update.message.video.file_id # Получаем видео
>await context.bot.send_video(chat_id=YOUR_CHAT_ID, video=video_file) # Отправляем видео вам
>
>async def handle_document(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
>document_file = update.message.document.file_id # Получаем документ
>await context.bot.send_document(chat_id=YOUR_CHAT_ID, document=document_file) # Отправляем документ вам
>
>async def handle_gif(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
>gif_file = update.message.animation.file_id # Получаем GIF
>await context.bot.send_animation(chat_id=YOUR_CHAT_ID, animation=gif_file) # Отправляем GIF вам
>
>async def handle_link(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
>text = update.message.text # Получаем текст
>if 'http' in text: # Проверяем, содержит ли текст ссылку
>await context.bot.send_message(chat_id=YOUR_CHAT_ID, text=f"Получена ссылка: {text}")
>
>async def main() -> None:
>try:
># Создаём экземпляр Application
>app = ApplicationBuilder().token(TOKEN).build()
>
># Обработчики сообщений для различных типов
>app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, handle_text)) # Текстовые сообщения
>app.add_handler(MessageHandler(filters.PHOTO, handle_photo)) # Фотографии
>app.add_handler(MessageHandler(filters.VIDEO, handle_video)) # Видео
>app.add_handler(MessageHandler(filters.Document.ALL, handle_document)) # Документы
>app.add_handler(MessageHandler(filters.ANIMATION, handle_gif)) # GIF
>app.add_handler(MessageHandler(filters.TEXT, handle_link)) # Ссылки
>
># Запуск бота
>await app.run_polling()
>except Exception as e:
>print(f"Ошибка при запуске бота: {e}")
>finally:
># Явное завершение работы без попытки закрытия цикла
>await app.shutdown()
>
>def run_bot():
>try:
># Если цикл событий уже запущен, используем его
>loop = asyncio.get_running_loop()
>print("Используем существующий цикл событий...")
>loop.create_task(main())
>except RuntimeError:
># Если цикл не запущен, создаём новый
>print("Запускаем новый цикл событий...")
>asyncio.run(main())
>
>if __name__ == '__main__':
>run_bot()
from telegram import Update
from telegram.ext import (
ApplicationBuilder,
MessageHandler,
filters,
ContextTypes,
)
import asyncio
import re
import logging
# Настройка логирования
logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=logging.INFO)
logger = logging.getLogger(__name__)
# Ваш токен, полученный от BotFather
TOKEN = 'бла бла тут токен'
# Ваш ID в Telegram
YOUR_CHAT_ID = int('бла бла тут айди')
async def handle_text_and_link(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
text = update.message.text
url_pattern = re.compile(r'https?://\S+')
if url_pattern.search(text):
await context.bot.send_message(chat_id=YOUR_CHAT_ID, text=f"Получена ссылка: {text}")
else:
await context.bot.send_message(chat_id=YOUR_CHAT_ID, text=f"Получено текстовое сообщение: {text}")
async def handle_photo(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
photo_file = update.message.photo[-1].file_id
await context.bot.send_photo(chat_id=YOUR_CHAT_ID, photo=photo_file)
async def handle_video(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
video_file = update.message.video.file_id
await context.bot.send_video(chat_id=YOUR_CHAT_ID, video=video_file)
async def handle_document(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
document_file = update.message.document.file_id
await context.bot.send_document(chat_id=YOUR_CHAT_ID, document=document_file)
async def handle_gif(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
gif_file = update.message.animation.file_id
await context.bot.send_animation(chat_id=YOUR_CHAT_ID, animation=gif_file)
async def main() -> None:
try:
app = ApplicationBuilder().token(TOKEN).build()
# Добавляем обработчики
app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, handle_text_and_link))
app.add_handler(MessageHandler(filters.PHOTO, handle_photo))
app.add_handler(MessageHandler(filters.VIDEO, handle_video))
app.add_handler(MessageHandler(filters.Document.ALL, handle_document))
app.add_handler(MessageHandler(filters.ANIMATION, handle_gif))
await app.run_polling()
except Exception as e:
logger.error(f"Ошибка при запуске бота: {e}")
finally:
await app.shutdown()
def run_bot():
try:
loop = asyncio.get_running_loop()
print("Используем существующий цикл событий...")
loop.create_task(main())
except RuntimeError:
print("Запускаем новый цикл событий...")
asyncio.run(main())
if __name__ == '__main__':
run_bot()