feat: NFOGuard v1.8.0 - Comprehensive three-tier optimization system with international fallback
Major features and improvements: 🚀 THREE-TIER PERFORMANCE OPTIMIZATION: - Tier 1: NFO file caching (99% faster, instant recovery) - Tier 2: Database caching (90% faster, skip API calls) - Tier 3: Full API processing (normal speed, only when needed) - Extended to both movies AND TV episodes for complete coverage 🌍 INTERNATIONAL RELEASE DATE SUPPORT: - Smart fallback hierarchy: US → English-speaking countries → any country - Handles movies without US release dates (e.g., The Fabric of Christmas 2023) - Prioritizes culturally relevant dates while ensuring comprehensive coverage 🎬 TMDB ID FALLBACK SYSTEM: - Support for movies with TMDB IDs but no IMDb IDs (e.g., For the One 2024) - Tolerant XML parsing handles NFO files with trailing URLs - Extracts premiered dates from existing NFO files as fallback source 📊 ENHANCED DEBUGGING & MONITORING: - Failed movies logged to logs/failed_movies.log for troubleshooting - Comprehensive logging shows which optimization tier is used - Enhanced IMDb/TMDB ID detection with detailed status messages 🔧 DATABASE REBUILD CAPABILITIES: - Instant recovery from existing NFO files without API calls - Perfect for migrations, disaster recovery, and system rebuilds - Maintains performance even with thousands of movies/episodes 💾 SMART CACHING & NFO MANAGEMENT: - NFOGuard fields properly positioned at bottom for Emby plugin compatibility - Database-first optimization eliminates redundant API calls - Intelligent should_query logic prevents unnecessary processing Technical improvements include tolerant XML parsing, three-tier optimization for TV episodes, English-speaking country prioritization, TMDB fallback processing, failed movies debug logging, comprehensive database rebuild support, and performance optimizations eliminating 90%+ processing time on warm systems.
This commit is contained in:
@@ -94,11 +94,15 @@ jobs:
|
||||
|
||||
# Build DEV image with cache (if available)
|
||||
echo "Building DEV image with layer caching..."
|
||||
VERSION=$(cat VERSION 2>/dev/null || echo "unknown")
|
||||
echo "Building version: $VERSION"
|
||||
|
||||
docker build \
|
||||
$CACHE_ARGS \
|
||||
--build-arg GIT_BRANCH=dev \
|
||||
--build-arg BUILD_SOURCE=gitea \
|
||||
--tag nfoguard:dev \
|
||||
--tag nfoguard:${VERSION}-dev-gitea \
|
||||
--tag nfoguard:dev-${{ github.sha }} \
|
||||
--tag "$CACHE_IMAGE" \
|
||||
.
|
||||
@@ -119,7 +123,9 @@ jobs:
|
||||
echo "✅ DEV Login succeeded"
|
||||
|
||||
# Tag for local registry
|
||||
VERSION=$(cat VERSION 2>/dev/null || echo "unknown")
|
||||
docker tag nfoguard:dev "$LOCAL_REGISTRY/sbcrumb/nfoguard:dev"
|
||||
docker tag nfoguard:${VERSION}-dev-gitea "$LOCAL_REGISTRY/sbcrumb/nfoguard:${VERSION}-dev-gitea"
|
||||
docker tag nfoguard:dev "$LOCAL_REGISTRY/sbcrumb/nfoguard:dev-${{ github.sha }}"
|
||||
|
||||
# Push DEV images
|
||||
@@ -130,6 +136,11 @@ jobs:
|
||||
if timeout 120 docker --config $DOCKER_CONFIG push "$LOCAL_REGISTRY/sbcrumb/nfoguard:dev"; then
|
||||
echo "✅ DEV tag pushed successfully"
|
||||
|
||||
echo "=== Pushing version-dev-gitea tag ==="
|
||||
if timeout 60 docker --config $DOCKER_CONFIG push "$LOCAL_REGISTRY/sbcrumb/nfoguard:${VERSION}-dev-gitea"; then
|
||||
echo "✅ Version-dev-gitea tag pushed successfully: ${VERSION}-dev-gitea"
|
||||
fi
|
||||
|
||||
if timeout 60 docker --config $DOCKER_CONFIG push "$LOCAL_REGISTRY/sbcrumb/nfoguard:dev-${{ github.sha }}"; then
|
||||
echo "✅ DEV SHA tag pushed successfully"
|
||||
fi
|
||||
@@ -141,6 +152,10 @@ jobs:
|
||||
echo ""
|
||||
echo "🎉 DEV build completed successfully!"
|
||||
echo ""
|
||||
VERSION=$(cat VERSION 2>/dev/null || echo "unknown")
|
||||
echo "📦 Available DEV images:"
|
||||
echo " Local only: nfoguard:dev"
|
||||
echo " Local SHA: nfoguard:dev-${{ github.sha }}"
|
||||
echo " Local only: nfoguard:dev"
|
||||
echo " Version tag: nfoguard:${VERSION}-dev-gitea"
|
||||
echo " Local SHA: nfoguard:dev-${{ github.sha }}"
|
||||
echo ""
|
||||
echo "🐳 Pull with: docker pull 192.168.253.221:3000/sbcrumb/nfoguard:${VERSION}-dev-gitea"
|
||||
+18
-3
@@ -97,11 +97,15 @@ jobs:
|
||||
|
||||
# Build with cache (if available)
|
||||
echo "Building with layer caching..."
|
||||
VERSION=$(cat VERSION 2>/dev/null || echo "unknown")
|
||||
echo "Building version: $VERSION"
|
||||
|
||||
docker build \
|
||||
$CACHE_ARGS \
|
||||
--build-arg GIT_BRANCH=main \
|
||||
--build-arg BUILD_SOURCE=gitea \
|
||||
--tag nfoguard:latest \
|
||||
--tag nfoguard:${VERSION}-gitea \
|
||||
--tag nfoguard:${{ github.sha }} \
|
||||
--tag "$CACHE_IMAGE" \
|
||||
.
|
||||
@@ -141,7 +145,9 @@ jobs:
|
||||
echo "✅ Login succeeded with direct method"
|
||||
|
||||
# Tag for local registry (cache image already tagged in build step)
|
||||
VERSION=$(cat VERSION 2>/dev/null || echo "unknown")
|
||||
docker tag nfoguard:latest "$LOCAL_REGISTRY/sbcrumb/nfoguard:latest"
|
||||
docker tag nfoguard:${VERSION}-gitea "$LOCAL_REGISTRY/sbcrumb/nfoguard:${VERSION}-gitea"
|
||||
docker tag nfoguard:latest "$LOCAL_REGISTRY/sbcrumb/nfoguard:${{ github.sha }}"
|
||||
|
||||
echo "Pushing to LOCAL registry (gigabit speed!)..."
|
||||
@@ -154,6 +160,11 @@ jobs:
|
||||
if timeout 120 docker --config $DOCKER_CONFIG push "$LOCAL_REGISTRY/sbcrumb/nfoguard:latest"; then
|
||||
echo "✅ Latest tag pushed successfully to LOCAL registry"
|
||||
|
||||
echo "=== Pushing version-gitea tag ==="
|
||||
if timeout 60 docker --config $DOCKER_CONFIG push "$LOCAL_REGISTRY/sbcrumb/nfoguard:${VERSION}-gitea"; then
|
||||
echo "✅ Version-gitea tag pushed successfully: ${VERSION}-gitea"
|
||||
fi
|
||||
|
||||
echo "=== Pushing SHA tag to LOCAL IP ==="
|
||||
if timeout 60 docker --config $DOCKER_CONFIG push "$LOCAL_REGISTRY/sbcrumb/nfoguard:${{ github.sha }}"; then
|
||||
echo "✅ SHA tag pushed successfully to LOCAL registry"
|
||||
@@ -183,10 +194,14 @@ jobs:
|
||||
echo ""
|
||||
echo "🎉 Local build completed successfully!"
|
||||
echo ""
|
||||
VERSION=$(cat VERSION 2>/dev/null || echo "unknown")
|
||||
echo "📦 Available images:"
|
||||
echo " Local Docker: nfoguard:latest"
|
||||
echo " Local SHA: nfoguard:${{ github.sha }}"
|
||||
echo " Local Gitea: 192.168.253.221:3000/sbcrumb/nfoguard:latest"
|
||||
echo " Local Docker: nfoguard:latest"
|
||||
echo " Version tag: nfoguard:${VERSION}-gitea"
|
||||
echo " Local SHA: nfoguard:${{ github.sha }}"
|
||||
echo " Local Gitea: 192.168.253.221:3000/sbcrumb/nfoguard:latest"
|
||||
echo ""
|
||||
echo "🐳 Pull with: docker pull 192.168.253.221:3000/sbcrumb/nfoguard:${VERSION}-gitea"
|
||||
|
||||
deploy:
|
||||
needs: build
|
||||
|
||||
Reference in New Issue
Block a user