Skip to content

Commit a958343

Browse files
authored
Merge pull request #6 from H1ghSyst3m/feature/batch-processing
feat: Batch Feature Implementation - Complete (v2.0.0)
2 parents ae5901a + ec5b3fe commit a958343

17 files changed

Lines changed: 4118 additions & 199 deletions

CHANGELOG.md

Lines changed: 43 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,50 @@
11
# Changelog
2-
All notable changes to this project will be documented in this file.
32

4-
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
5-
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
3+
## v2.0.0
4+
5+
### What's New in v2.0
6+
7+
**Multi-Build Workspace**
8+
Work on several builds at once instead of one at a time. Create Build 01, 02, 03... and manage them together in a single session.
9+
10+
**Batch Operations**
11+
- Package multiple builds together
12+
- Track progress for each build and overall completion
13+
- Get a summary report showing successes and failures
14+
- Check/uncheck builds to control which ones get processed
15+
16+
**Archive Extraction Upgrades**
17+
- Process multiple archive files in one operation
18+
- Sort archives into three categories: templates, content to extract, and files to skip
19+
- Let the app detect templates automatically based on your preferences
20+
- Assign archives to specific build numbers
21+
22+
**Workspace Changes**
23+
Your files now live in `Builds/Build001/Content/`, `Build002/Content/`, etc. instead of a single `DIMBuild/` folder.
24+
25+
**Field Inheritance**
26+
Build 01 is the source for common fields. Build 02 and higher copy these values automatically. You can override any field in child builds when needed.
27+
28+
**Synchronization Tools**
29+
- Push updates from Build 01 to all other builds
30+
- Pull latest values from Build 01 into a specific build
31+
- Sync individual fields (store, SKU, tags) or everything at once
32+
33+
**Session Saves**
34+
All your builds save to `session.json` automatically. The app keeps 5 backup copies. When you reopen the app, everything comes back.
35+
36+
**New UI Elements**
37+
- Visual status badges: ✅ ready, ⚠️ needs info, 📭 empty
38+
- Delete button on each build row
39+
- Drag builds to reorder them
40+
- "New Session" button to start over
41+
42+
### Important Changes
43+
44+
**Settings**: "Copy Template Archives" renamed to "Enable Template Detection" (clearer meaning)
645

746
---
47+
848
## v1.2.1
949
### Changed
1050
- Updated dependencies in `requirements.txt` and `requirements-build.txt` to separate build-time and runtime packages.

README.md

Lines changed: 83 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -43,14 +43,22 @@ DAZ Studio users, creators, and vendors who want fast, repeatable, and tidy DIM
4343

4444
## Features
4545

46-
- **Make DIM packages in seconds** — just point to your files or an archive and click Generate.
47-
- **Drag & drop file management** — organize your content without leaving the app.
48-
- **Automatic folder detection** — files are placed where DIM expects them.
49-
- **Cover art made easy** — drop an image and it’s formatted for DIM automatically.
50-
- **Warnings before mistakes** — get notified about layout problems before packaging.
51-
- **Store & tag presets** — save time with one-click product metadata.
52-
- **Keeps your presets across updates** — your custom stores and tags won’t vanish after upgrading.
53-
- **Works without Python** — available as a ready-to-run Windows `.exe`.
46+
- **Multi-Build Workflow** — Manage unlimited builds (Build 01, 02, 03...) in one session with automatic field inheritance
47+
- **Batch Operations** — Package multiple builds at once with progress tracking and summary reports
48+
- **Smart Extraction** — Three-column dialog intelligently sorts templates, content, and ignored items
49+
- **Session Persistence** — All builds auto-save to disk and restore on next launch
50+
- **Drag-Drop Reordering** — Rearrange builds by dragging them, with automatic part number updates
51+
- **Field Synchronization** — Build 1 acts as parent; children inherit metadata with selective overrides
52+
- **Build Status Indicators** — Visual feedback showing which builds are ready (✅), incomplete (⚠️), or empty (📭)
53+
- **Quick Actions** — Per-build delete buttons, context menus, and keyboard shortcuts
54+
- **Make DIM packages in seconds** — just point to your files or an archive and click Package All
55+
- **Drag & drop file management** — organize your content without leaving the app
56+
- **Automatic folder detection** — files are placed where DIM expects them
57+
- **Cover art made easy** — drop an image and it's formatted for DIM automatically
58+
- **Warnings before mistakes** — get notified about layout problems before packaging
59+
- **Store & tag presets** — save time with one-click product metadata
60+
- **Keeps your presets across updates** — your custom stores and tags won't vanish after upgrading
61+
- **Works without Python** — available as a ready-to-run Windows `.exe`
5462

5563
---
5664

@@ -89,10 +97,14 @@ python app.py
8997

9098
## Quick Start
9199

92-
1. Launch the app — your workspace is `Documents/DIMCreator/DIMBuild/Content`.
93-
2. Pick your store, fill in product name/SKU, and (optional) add a cover image.
94-
3. Add content by dragging it in or importing an archive.
95-
4. Click **Generate** to create your DIM-ready `.zip`.
100+
1. Launch the app — your workspace is organized under `Documents/DIMCreator/Builds/`.
101+
2. Build001 is created automatically with its own `Content` folder.
102+
3. Pick your store, fill in product name/SKU, and (optional) add a cover image.
103+
4. Add content by dragging it in or importing an archive to the current build's Content folder.
104+
5. Click **Package All** to create your DIM-ready `.zip`.
105+
6. Use **+ Add Build** to create additional builds (Build 02, 03, etc.) that inherit metadata from Build 01.
106+
7. Rearrange builds by dragging them in the list, or use the trash icon for quick deletion.
107+
8. Click **Package All** to process all builds at once or select specific builds and click **Package Selected** to process only those.
96108

97109
---
98110

@@ -107,40 +119,85 @@ python app.py
107119

108120
## Workflows
109121

122+
### Single-Build Workflow (Traditional)
123+
1. Work in Build001 folder shown in File Explorer panel.
124+
2. Fill in all metadata fields (store, product name, SKU, tags, image).
125+
3. Add your DAZ content to the Content folder (drag files or extract archives).
126+
4. Click **Package All** when ready.
127+
128+
### Multi-Build Workflow (Batch Processing)
129+
1. Start with Build001 — fill in all metadata that will be shared across builds.
130+
2. Click **+ Add Build** to create Build002 — it automatically inherits metadata from Build 001.
131+
3. Add content to Build002's folder (File Explorer switches automatically when you select different builds).
132+
4. Override specific fields in Build002 if needed (e.g., different SKU, image, or Product Name).
133+
5. Create more builds (Build003, Build004...) as needed — each inherits from Build001 by default.
134+
6. Check the boxes next to builds you want to package.
135+
7. Click **Package All** to process all checked builds with progress tracking.
136+
8. Review the summary dialog showing which packages succeeded or failed.
137+
138+
### Smart Extraction for Multi-Build Setup
139+
1. Collect all your archives (.zip, .rar, .7z) in one location.
140+
2. Click **Extract Archive** and select multiple files.
141+
3. The extraction dialog shows three columns:
142+
- **Template**: Archives detected as templates (based on settings)
143+
- **Extract**: Content archives you want to process
144+
- **Ignored**: Archives you don't need
145+
4. Move items between columns by dragging or using arrow buttons.
146+
5. Assign each content archive to a build number (creates builds if needed).
147+
6. Click Extract — all content goes to the correct build folders automatically.
148+
149+
### Synchronization Examples
150+
**Updating All Builds from Build 1:**
151+
1. Edit metadata in Build001 (e.g., change store or tags).
152+
2. Click the **Sync to All Builds** dropdown.
153+
3. Choose "Sync All Fields" or select specific fields (Store, SKU, Tags, etc.).
154+
4. All child builds update instantly.
155+
156+
**Pulling Updates to a Specific Build:**
157+
1. Select Build002 (or any child build).
158+
2. Click **Sync from Build 1** button.
159+
3. All field overrides are cleared and Build002 inherits fresh values from Build001.
160+
161+
### Reordering Builds
162+
1. Drag Build003 above Build002 in the list.
163+
2. Part numbers automatically renumber (old Build003 becomes new Build002).
164+
3. If you move a build to position 1, it becomes the new parent and transfers its metadata.
165+
110166
### From a folder
111-
1. Put your DAZ content into `DIMBuild/Content`.
112-
2. Fill in details → Generate.
167+
1. Put your DAZ content into the current build's `Content` folder (shown in File Explorer).
168+
2. Fill in details → Package All.
113169

114170
### From an archive
115-
1. Import `.zip`, `.rar`, or `.7z`.
171+
1. Import `.zip`, `.rar`, or `.7z` into the current build.
116172
2. The app extracts only the correct DAZ folders.
117-
3. Fill in details → Generate.
173+
3. Fill in details → Package All.
118174

119175
---
120176

121177
## Configuration & Data Paths
122178

123-
- **Workspace:** `Documents/DIMCreator/DIMBuild/Content`
179+
- **Build Workspaces:** `Documents/DIMCreator/Builds/Build001/Content`, `Build002/Content`, etc.
180+
- **Session Data:** `Documents/DIMCreator/Sessions/session.json` (auto-saved with 5 backups)
124181
- **Logs:** `Documents/DIMCreator/Logs`
125182
- **Config Files:** `Documents/DIMCreator/Config/` (stores, tags, DAZ folder list)
126183

127-
Your custom settings and presets are preserved after updates.
184+
Your custom settings, presets, and build sessions are preserved after updates.
128185

129186
---
130187

131188
## Keyboard Shortcuts
132189

133190
### Main window
134191
- `Ctrl+G` — Generate GUID
135-
- `Ctrl+Enter` — Generate DIM package
136-
- `Ctrl+N` — Clear fields and clean workspace
192+
- `Ctrl+Enter` — Generate DIM package for current build
193+
- `Ctrl+N` — Clear fields and clean current build folder (deletes Manifest, Supplement, and all content)
137194

138195
### File Explorer
139-
- `Ctrl+E` — Open in Explorer
140-
- `Delete` — Delete selected item
141-
- `Ctrl+C` / `Ctrl+X` / `Ctrl+V` — Copy / Cut / Paste
142-
- `F2` — Rename
143-
- `F5` — Refresh
196+
- `Ctrl+E` — Open current folder in Windows Explorer
197+
- `Delete` — Delete selected file or folder
198+
- `Ctrl+C` / `Ctrl+X` / `Ctrl+V` — Copy / Cut / Paste files
199+
- `F2` — Rename selected item
200+
- `F5` — Refresh file tree
144201

145202
---
146203

@@ -155,7 +212,7 @@ Your custom settings and presets are preserved after updates.
155212
## Screenshots
156213

157214
<p align="center">
158-
<img width="781" height="721" alt="DIM-Creator main window" src="https://github.com/user-attachments/assets/3df3069e-211c-45e9-b3fa-51bc27bf31bb" />
215+
<img width="781" height="721" alt="DIM-Creator main window" src="https://github.com/user-attachments/assets/efc12e42-251d-441b-a236-d99befa5759b" />
159216
</p>
160217

161218
---

0 commit comments

Comments
 (0)