Telegram Scrapper - это приложение для сбора сообщений из Telegram каналов и их хранения в базе данных PostgreSQL. Приложение сохраняет сообщения, метаданные каналов, вложения и ответы на сообщения.
Для запуска приложения необходимо иметь установленные Docker и Docker Compose.
- Клонируйте репозиторий:
git clone <URL репозитория>
- Перейдите в каталог проекта:
cd <каталог проекта>
- Создайте файл
.env
в корне проекта и заполните необходимые переменные окружения:
TELEGRAM_API_ID=<Ваш API ID>
TELEGRAM_API_HASH=<Ваш API Hash>
POSTGRES_DB=<Название базы данных>
POSTGRES_USER=<Имя пользователя базы данных>
POSTGRES_PASSWORD=<Пароль пользователя базы данных>
DB_HOST=db
DB_PORT=5432
DB_DATA_PATH=./data/db
IMAGES_PATH=./data/images
ATTACHMENTS_PATH=./data/attachments
TELEGRAM_SESSION_PATH=./session
APP_LOGS_PATH=./logs
3.1. Для получения TELEGRAM_API_ID
и TELEGRAM_API_HASH
необходимо создать приложение на платформе Telegram. Перейдите на my.telegram.org, войдите в систему и следуйте инструкциям для создания нового приложения.
- Запустите контейнеры:
docker-compose up -d
В корне проекта находятся следующие директории и файлы:
app/
- исходный код приложения.docs/
- документация проекта, сгенерированная с помощью Sphinx.sql/
- SQL скрипты для инициализации базы данных.docker-compose.yml
иdocker-compose_db_only.yml
- конфигурационные файлы для Docker Compose.Dockerfile
- Dockerfile для сборки образа приложения..env
- файл с переменными окружения (необходимо создать самостоятельно).
После запуска контейнеров приложение начнет сбор сообщений из Telegram каналов и сохранение их в базу данных PostgreSQL.
База данных содержит следующие таблицы:
DialogTypes
- типы диалогов (каналы, чаты, пользователи).Dialogs
- диалоги, включая метаданные каналов.Messages
- сообщения из диалогов.AttachmentTypes
- типы вложений.Attachments
- вложения к сообщениям.Replies
- ответы на сообщения.