Phase 1.1: Rebrand to Oliver Metadata Tool v3.0

- Updated application name to "Oliver Metadata Tool"
- Updated version to 3.0.0
- Added App Info constants to config.py (APP_NAME, APP_VERSION, APP_DESCRIPTION)
- Updated web interface (title, header, footer)
- Updated README with new branding and description
- Added AI configuration settings to config.py
- Added ExifTool check method to config.py

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
SamoilenkoVadym 2026-01-25 15:15:26 +00:00
parent 2082ea7ce7
commit 7db62e06da
4 changed files with 42 additions and 10 deletions

View file

@ -1,6 +1,6 @@
# Solventum Image Metadata Tool
# Oliver Metadata Tool
Universal metadata processing tool for PDF, images, Office documents and video files.
Universal metadata creation and management tool for all file types. Create, import, and manage metadata from multiple sources with an intuitive web interface.
## Features

View file

@ -1,15 +1,24 @@
"""Configuration management for the metadata automation tool."""
"""Configuration management for Oliver Metadata Tool."""
import os
import shutil
import logging
from pathlib import Path
from dotenv import load_dotenv
# Load environment variables
load_dotenv()
logger = logging.getLogger(__name__)
class Config:
"""Configuration class for managing settings."""
# App Info
APP_NAME = "Oliver Metadata Tool"
APP_VERSION = "3.0.0"
APP_DESCRIPTION = "Universal metadata creation and management tool"
# Paths
PROJECT_ROOT = Path(__file__).parent.parent
OUTPUT_DIR = PROJECT_ROOT / 'output'
@ -28,6 +37,18 @@ class Config:
# jpn=Japanese, kor=Korean
OCR_LANGUAGES = os.getenv('OCR_LANGUAGES', 'eng+chi_sim+chi_tra+jpn+kor')
# AI Settings (for CLI and Web AI mode)
OPENAI_API_KEY = os.getenv('OPENAI_API_KEY')
AI_MODEL = os.getenv('AI_MODEL', 'gpt-4o-mini') # Better than gpt-3.5-turbo
MAX_TOKENS = int(os.getenv('MAX_TOKENS', '500'))
TEMPERATURE = float(os.getenv('TEMPERATURE', '0.5')) # 0.5 better for factual content
MAX_TEXT_LENGTH = int(os.getenv('MAX_TEXT_LENGTH', '4000'))
# API Rate Limiting & Retry (from open source analysis)
API_TIMEOUT = int(os.getenv('API_TIMEOUT', '30'))
API_MAX_RETRIES = int(os.getenv('API_MAX_RETRIES', '3'))
API_RETRY_DELAY = float(os.getenv('API_RETRY_DELAY', '1.0')) # exponential backoff multiplier
@classmethod
def ensure_directories(cls):
"""Ensure required directories exist."""
@ -35,5 +56,15 @@ class Config:
cls.BACKUP_DIR.mkdir(exist_ok=True)
cls.REPORTS_DIR.mkdir(exist_ok=True)
@classmethod
def check_exiftool(cls):
"""Check if ExifTool is installed."""
exiftool_path = shutil.which('exiftool')
if not exiftool_path:
logger.warning("⚠️ ExifTool not found. Install with: brew install exiftool (macOS) or apt-get install libimage-exiftool-perl (Linux)")
return False
logger.info(f"✓ ExifTool found at {exiftool_path}")
return True
# Ensure directories on import
Config.ensure_directories()

View file

@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Universal Metadata Tool</title>
<title>Oliver Metadata Tool</title>
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
@ -237,8 +237,8 @@
<body>
<div class="container">
<div class="header">
<h1>🎯 Universal Metadata Tool</h1>
<p>Update PDF metadata from Excel (Celum ID to Adobe Asset Path Mapping)</p>
<h1>🎯 Oliver Metadata Tool</h1>
<p>Universal metadata creation and management for all file types</p>
</div>
<div class="content">
@ -282,7 +282,7 @@
</div>
<div class="footer">
Universal Metadata Tool v2.0 | Metadata from Excel (Celum ID Mapping) | Batch Processing Enabled
Oliver Metadata Tool v3.0 | Multiple metadata sources | Excel • AI • Manual • Import
</div>
</div>

View file

@ -1,8 +1,9 @@
#!/usr/bin/env python3
"""
Web-based interface for Universal Metadata Tool.
Simple Flask app that runs locally - no deployment needed.
Uses Excel file for metadata lookup (not AI).
Oliver Metadata Tool - Web Interface
Universal metadata creation and management tool for files.
Flask-based web app for local or server deployment.
Supports multiple metadata sources: Excel, AI, manual entry, and file import.
"""
from flask import Flask, render_template, request, jsonify, send_file