
Помогите создать бота, уже все перепробовал и даже через ии прогонать. но какая то ссаная ошибка выходит
>>1177 (OP)
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()
>>1177 (OP)
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()
>>1178
Ошибка при запуске бота: 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
Ошибка при запуске бота: 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
Ошибки тоже скармливай ии. Я так уже два бота сделал. Через мистрал. Начинал с чат гпт, то нам когда лимит кончается он на более глупую модель переходит и качество страдает. На мистрал такой хуйни нету, просто некоторое время не даёт писать