MediaIndexer
Полное развернутое описание структуры проекта MediaIndexer
Проект MediaIndexer
Проект предназначен для индексирования и обработки метаданных файлов мультимедиа, таких как фотографии и видео. Он включает скрипты для извлечения метаданных, обработки GPS-данных и перевода географических названий. Основные компоненты проекта включают несколько скриптов для различных задач, а также набор моделей для работы с базой данных.
Файлы и директории проекта
MediaIndexer/
├── README.md
├── common_utils.py
├── file-indexer.py
├── geo-metadata-extractor.py
├── init_db.py
├── install_dependencies.sh
├── json-data-processor.py
├── location-translator.py
├── logs/
└── db/
├── __init__.py
├── base.py
├── date_models.py
├── gps_models.py
├── location_models.py
├── metadata_models.py
├── path_models.py
├── photos.db
└── tag_models.py
Файл .config
Файл конфигурации, содержащий пути к различным ресурсам и API-ключи.
[paths]
indexer=../../
media_arhive=../../
model_path=db
database=db/photos.db
log_dir=logs
[google_maps]
api_key=
Скрипты
file-indexer.py
Этот скрипт предназначен для индексирования файлов, извлечения и сохранения их метаданных в базу данных. Он использует модели для работы с метаданными файлов, JSON-данными, форматами файлов и путями файлов.
geo-metadata-extractor.py
Скрипт для обработки GPS-координат из метаданных файлов и получения дополнительной информации о местоположении с использованием Google Maps API. Он работает с моделями для координат, типов местоположений, языков, значений местоположений и ассоциаций между файлами и местоположениями.
init_db.py
Скрипт для инициализации базы данных. Создает все необходимые таблицы, если они еще не существуют, используя все модели, определенные в проекте.
json-data-processor.py
Скрипт для обработки JSON-метаданных файлов. Он парсит JSON-файлы, извлекает метаданные и сохраняет их в базу данных. Использует модели для работы с метаданными файлов, JSON-данными, форматами файлов, датами, путями файлов, тегами и координатами.
location-translator.py
Скрипт для перевода значений местоположений, хранящихся в базе данных, на английский и русский языки с использованием Google Translate API. Он использует модели для значений местоположений, местоположений, языков и типов местоположений.
common_utils.py
Содержит общие функции и утилиты, которые могут использоваться в разных скриптах проекта.
install_dependencies.sh
Скрипт для установки всех необходимых зависимостей для работы проекта.
Директория logs
Директория для хранения лог-файлов, создаваемых скриптами во время их выполнения.
Директория db
Директория, содержащая все модели базы данных и саму базу данных (
).
Файл base.py
Содержит определение базового класса для всех моделей базы данных с использованием SQLAlchemy.
Файл date_models.py
Содержит модели для работы с датами, включая год, месяц, день, час, минуту и секунду, а также типы дат.
Файл gps_models.py
Содержит модели для работы с GPS-координатами, включая широты, долготы и ассоциации между файлами и их координатами.
Файл location_models.py
Содержит модели для работы с местоположениями, включая типы местоположений, языки, значения местоположений, нормализованные данные о местоположениях и ассоциации между файлами и местоположениями.
Файл metadata_models.py
Содержит модели для работы с метаданными файлов, включая форматы файлов и JSON-данные.
Файл path_models.py
Содержит модели для работы с путями файлов, включая ассоциации между файлами и их путями.
Файл tag_models.py
Содержит модели для работы с тегами, включая значения тегов и ассоциации между файлами и их тегами.
Описание
Проект MediaIndexer предназначен для создания и управления локальной базой данных SQLite, содержащей метаданные медиафайлов. Основная цель проекта — индексировать медиафайлы, хранящиеся в указанной папке, извлекать и сохранять их метаданные, включая EXIF данные, информацию о кодировщике и др.
Языки
Python
- Shell