Загрузка...

Скрипт Бот для подстановки ссылки в конец поста

Тема в разделе Python создана пользователем Правый 3 май 2025. (поднята 11 май 2025) 135 просмотров

Загрузка...
  1. Правый
    Правый Автор темы 3 май 2025 Волос кучерявый 761 4 ноя 2016
    Написан через гпт, максимально примитивный код, но работает как нужно. Скорее всего уже выкладывалось что-то подобное, но я когда искал для себя, не нашел. Прекрасно подойдет для ведения каналов. Моментально добавляет к каждому новому посту заданную ссылку и текст по типу такого:
    [IMG]

    Что нужно для работы?

    - Установленный Python
    - Установленная библиотека PyTelegramBotAPI
    Python
    pip install PyTelegramBotAPI
    Настройки:

    BOT_TOKEN = "ТОКЕН ОТ БОТА ИЗ BOTFATHER"
    CHANNEL_LINK = "Пригласительная/вступительная ссылка на ваш канал"

    Код:
    Python
    from telegram import Update
    from telegram.ext import Application, MessageHandler, filters, ContextTypes

    # Конфигурация
    BOT_TOKEN = "ТОКЕН БОТА ИЗ BOTFATHER"
    CHANNEL_LINK = "Пригласительная/вступительная ссылка на ваш канал"

    async def edit_message(update: Update, context: ContextTypes.DEFAULT_TYPE):
    try:
    msg = update.effective_message
    links_html = (
    f'<a href="{CHANNEL_LINK}"><b> Название канала, тут будет встроеная ссылка</b></a> | Подписаться \n'
    )

    # Для текстовых сообщений
    if msg.text:
    new_text = f"{msg.text}\n\n{links_html}"
    await msg.edit_text(new_text, parse_mode="HTML", disable_web_page_preview=True)

    # Для медиа-сообщений (фото, видео, файлы)
    elif msg.caption or msg.photo or msg.video or msg.document:
    new_caption = f"{msg.caption}\n\n{links_html}" if msg.caption else links_html
    await msg.edit_caption(caption=new_caption, parse_mode="HTML")

    # Для голосовых сообщений
    elif msg.voice:
    # Удаляем оригинальное сообщение
    await msg.delete()
    # Отправляем новое с подписью
    await msg.chat.send_voice(
    voice=msg.voice.file_id,
    caption=links_html,
    parse_mode="HTML"
    )

    except Exception as e:
    print(f"Ошибка: {e}")

    if __name__ == "__main__":
    app = Application.builder().token(BOT_TOKEN).build()

    app.add_handler(MessageHandler(
    filters.TEXT | filters.PHOTO | filters.VIDEO |
    filters.Document.ALL | filters.VOICE,
    edit_message
    ))

    print("Бот запущен...")
    app.run_polling()
     
    3 май 2025 Изменено
    1. Посмотреть предыдущие комментарии (3)
    2. Правый Автор темы
      n1s_01, Ну значит ты код не тот выложил. Как минимум то, что здесь в конце не закрыта скобка, перечеркивает его работоспособность, фиксится за секунду:
      [IMG]
      Потом он токен ищет в файле config.py, а в теме указан файл token.py

      С дб какая-то дрочка и т.д.
      3 май 2025 Изменено
    3. n1s_01
      Правый, походу рил не тот выложил хд
    4. Правый Автор темы
      n1s_01, оно по сути все быстро фиксится, но это лишняя трата времени
Top