Skip to content

Akiyamov/vk-to-telegram-go

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Telegramrepost

Телеграм-бот для репостов из групп ВК в Telegram, образ которого весит менее 10 мегабайт и практически не потребляет ресурсы.

Используемые модули

  • vksdk - Модуль для упрощения работы с API ВК.
  • godotenv - Модуль для загрузки переменных среды из файла.

Запуск на своем сервере

Для запуска бота требуется получить креды для ВК и Telegram, как это сделать описано здесь.
Также для запуска требуется локальное API Telegram, так как это позволяет увеличить размер загружаемых файлов. Самым простым способом, для этого запустите контейнер aiogram/telegram-bot-api следующим образом:

docker run -d -p 8081:8081 /
--name=telegram-bot-api /
--restart=always /
-v telegram-bot-api-data:/var/lib/telegram-bot-api /
-e TELEGRAM_API_ID=<api_id> /
-e TELEGRAM_API_HASH=<api-hash> /
aiogram/telegram-bot-api:latest

Вместо api_id и api-hash подставьте свои креды.
Для запуска требуются две директории: video и любая, в которой будет находиться файл .env. Первая используется для временного хранения файлов, вторая для хранения файла с переменными среды. Желательно создать отдельные директории с правами доступа только для пользователя, который будет использоваться внутри контейнера.

Запуск без контейнера

Для запуска бота нужно установить Go.
После этого нужно скопировать репозиторий себе на ПК.

$ git clone https://gitlab.com/Akiyamov/telegramrepost  
$ cd telegramrepost  

После того как репозиторий и Go установлен можно скачать mod.

$ go mod download

Удалите функцию LoadEnv() и ее вызов в функции main() и замените следующие значения на свои:

vk_access_token = os.Getenv("VK_TOKEN")
vk_api_version = os.Getenv("VK_API_VERSION")
vk_owner_id = os.Getenv("VK_GROUP_ID")
telegram_bot_token = os.Getenv("TG_TOKEN")
telegram_chat_id = os.Getenv("TG_CHAT_ID")
telegram_temp_chat_id = os.Getenv("TG_TEMP_CHAT_ID")

После этого можно запускать приложение:

$ go run main.go

Запуск в контейнере

После каждого пуша в главную ветку репозитория CI/CD собирает новый образ контейнера, поэтому последнюю версию можно скачать следующим образом:

$ docker pull akiyamov/telegramrepost

После этого контейнер можно запустить:

docker run -u uid:gid \
--restart on-failure \
--name repost-container -d \
--network host -v /dest/to/fold:/video \
-v /dest/to/fold/.env:/opt/.env \
akiyamov/telegramrepost:latest

uid, gid, а также пути к директориям нужно указать свои

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages