/TG_AutoPoster

Telegram Bot for reposting from VK

Primary LanguagePythonMIT LicenseMIT

TG_AutoPoster

Бот, пересылающий записи из групп ВК в канал/чат/ЛС в Telegram.

License MIT Python Version Code style: Black issues stars PyPI docker


Установка (обновление)

pip3 install -U TG-AutoPoster

Настройка

  1. Создайте файл config.yaml, скопируйте в него содержимое файла config.yaml.example и выполните настройку ключа vk
Параметр Описание
login Логин ВК
pass Пароль ВК
token (необязательно) Рекомендуется к использованию. Cервисный ключ доступа или ключ доступа пользователя (подробнее). Если он задан, то логин и пароль игнорируются. При его использовании не будут доступны аудиозаписи (при использовании сервисного ключа доступа также не будут доступны истории). Получить ключ доступа пользователя можно с помощью этого сервиса.
  1. Получите ваши api_id и api_hash на https://my.telegram.org/apps и настройте ключ telegram (подробнее об Telegram API Keys здесь)
Параметр Описание
api_id App api_id
api_hash App api_hash
bot_token Токен Telegram бота, полученный у @BotFather
  1. Если необходимо, настройте использование SOCKS5 прокси, добавив ключ proxy со следующим содержимым:
Параметр Возможные значения Описание
enabled true, false Использовать ли прокси
hostname IP адрес (или домен) прокси сервера
port Порт прокси сервера
username (необязательно) Имя пользователя
password (необязательно) Пароль

Запуск

  1. Для запуска используйте TG_AutoPoster.sh или команду python3 -m TG_AutoPoster
  2. Активируйте бота командой /start

Автопостинг рекомендуется настраивать через чат с ботом. Подробнее можно узнать, отправив боту команду /help

Для доступных параметров командой строки используйте bash TG_AutoPoster.sh --help или python3 -m TG_AutoPoster --help

По умолчанию бот проверяет группы на наличие новых постов раз в час. Если необходимо изменить период проверки постов запустите бота с параметром командной строки --sleep N, где N — значение в секундах. Не рекомендуется устанавливать малое значение, так как это может привести к заморозке страницы ВК (подробнее).


Описание настроек группы

Параметр Описание
channel Список ID каналов/чатов в Telegram, разделенных пробелом, в которые отправлять посты из групп ВК
last_id (необязательно) ID последнего отправленного поста. Если параметр отсутствует, он будет добавлен автоматически со значением 0
pinned_id (необязательно) ID закреплённого поста.
last_story_id (необязательно) ID последней отправленной истории.
use_long_poll (необязательно) Использовать Long Poll API для получения постов из своей группы (или в которой вы являетесь администратором) в режиме реального времени. Чтобы использовать Long Poll API, откройте раздел «Управление сообществом», на вкладке «Работа с API»→«Long Poll API» выберите «Включено», «Версия API»: 5.131. Также необходимо включить тип события «Записи на стене»: «Добавление» на вкладке «Типы событий».
Значение параметра по умолчанию: false

Описание настроек автопостинга (ключ settings)

Параметр Возможные значения Описание
sign_posts true, false Указывать ли автора поста (если это возможно) и ссылку на оригинальный пост. По умолчанию: true
send_reposts false, post_only, true Отправлять ли репосты? Подробнее в config.yaml.example. По умолчанию отправка репостов отключена.
send_stories false, true Отправлять ли истории? По умолчанию: false
what_to_send all, text, link, photo, doc, video, music, polls Какие типы вложений отправлять. Подробнее в config.yaml.example. По умолчанию отправляются все вложения.
stop_list Абсолютный путь к файлу, содержащий стоп-слова (в файле должно быть по одному слову на каждой строке). Если вы не хотите использовать стоп-слова удалите этот параметр из файла конфигурации
blacklist Абсолютный путь к файлу, содержащий слова, которые будут удалены из текста отправляемого поста. Поддерживаются регулярные выражения.
disable_notification true, false Отправляет сообщения молча. Пользователи получат уведомление без звука. По умолчанию: false
disable_web_page_preview true, false Отключить предпросмотр ссылок в сообщениях. По умолчанию: true
posts_count Количество отправляемых ботом новых постов за раз. По умолчанию 11.
header Текст с форматированием Markdown Текст, который будет добавлен в начало сообщения
footer Текст с форматированием Markdown Текст, который будет добавлен в конец сообщения

Все параметры ключа settings могут быть заданы индивидуально для каждой группы


Дополнительно: Использование Docker контейнера

Отчеты об ошибках и предложения отправлять в:

  1. GitHub Issues
  2. Telegram: @QwertyAdrian

Для пожертвований на развитие проекта:

  1. Qiwi
  2. Bitcoin: 1H1UVnXgvcLo3RWmxuYmi7b16ADo6XBWw5
  3. TON: EQD42Z5d8d1gT1uSpKTAaLYHlQ95vdMXrlNlYMpSFpQawwuY