Главная Юзердоски Каталог Трекер NSFW Настройки

Программы

Ответить в тред Ответить в тред
Check this out!
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 7 1 4
Пайтон тред Аноним (Microsoft Windows 10: Chromium based) 02/02/25 Вск 20:19:53 3581177 1
image.png 479Кб, 1392x541
1392x541
Помогите создать бота, уже все перепробовал и даже через ии прогонать. но какая то ссаная ошибка выходит
Аноним (Microsoft Windows 10: Chromium based) 02/02/25 Вск 20:20:46 3581178 2
>>3581177 (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()
Аноним (Microsoft Windows 10: Chromium based) 02/02/25 Вск 20:21:55 3581180 3
>>3581178
Ошибка при запуске бота: 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
Аноним (Google Android: Mobile Safari) 15/02/25 Суб 02:48:58 3584161 4
Ошибки тоже скармливай ии. Я так уже два бота сделал. Через мистрал. Начинал с чат гпт, то нам когда лимит кончается он на более глупую модель переходит и качество страдает. На мистрал такой хуйни нету, просто некоторое время не даёт писать
Аноним (Microsoft Windows 10: Chromium based) 04/03/25 Втр 02:51:32 3587505 5
>>3584161
Спасибо, пробовал ошибки кормить и ошибка оказалась очень простой... Гпт думал что я НЕ использую среду, а именно вижуал студио код. Когда ему написал об этом, все заработало (он мне норм код написал)
Аноним (Microsoft Windows 10: Chromium based) 22/03/25 Суб 21:05:14 3591878 6
Аноним (Microsoft Windows 10: Chromium based) 22/03/25 Суб 21:07:02 3591879 7
>>3581178
>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()
Настройки X
Ответить в тред X
15000
Добавить файл/ctrl-v
Стикеры X
Избранное / Топ тредов