series management tuning and import archive extraction troubleshooting
This commit is contained in:
+62
-51
@@ -58,7 +58,7 @@ Relationships: tags (many-to-many via image_tags)
|
||||
### Tag (lines 42-51)
|
||||
Tagging system for organization.
|
||||
```
|
||||
Fields: id, name (unique), kind (artist|archive|user|source|post|character|series|rating)
|
||||
Fields: id, name (unique), kind (artist|archive|user|source|post|character|series|fandom|rating)
|
||||
Relationships: images (many-to-many)
|
||||
```
|
||||
|
||||
@@ -211,96 +211,104 @@ Task types: scan, import_image, import_archive, thumbnail, sidecar
|
||||
| Route | Line | Purpose |
|
||||
|-------|------|---------|
|
||||
| `GET /` | 18-30 | Showcase - random images masonry |
|
||||
| `GET /gallery` | 80-124 | Main gallery with infinite scroll |
|
||||
| `GET /tags` | 391-475 | Tag explorer (filterable by kind) |
|
||||
| `GET /artists` | 477-480 | Redirect to tag_list?kind=artist |
|
||||
| `GET /settings` | 488-490 | Settings page |
|
||||
| `GET /gallery` | 80-160 | Main gallery with infinite scroll |
|
||||
| `GET /tags` | 426-510 | Tag explorer (filterable by kind) |
|
||||
| `GET /artists` | 512-515 | Redirect to tag_list?kind=artist |
|
||||
| `GET /settings` | 523-529 | Settings page |
|
||||
|
||||
### Gallery API
|
||||
|
||||
| Route | Line | Purpose |
|
||||
|-------|------|---------|
|
||||
| `GET /api/random-images` | 33-77 | Random images for showcase shuffle |
|
||||
| `GET /api/gallery/scroll` | 188-259 | Infinite scroll pagination |
|
||||
| `GET /api/gallery/timeline` | 262-316 | Year-month groups for sidebar |
|
||||
| `GET /api/gallery/jump` | 319-388 | Jump to specific year-month |
|
||||
| `GET /images/<path:filename>` | 127-129 | Serve image files |
|
||||
| `GET /api/gallery/scroll` | 223-295 | Infinite scroll pagination |
|
||||
| `GET /api/gallery/timeline` | 297-352 | Year-month groups for sidebar |
|
||||
| `GET /api/gallery/jump` | 354-423 | Jump to specific year-month |
|
||||
| `GET /images/<path:filename>` | 162-220 | Serve image files |
|
||||
|
||||
### Tag API
|
||||
|
||||
| Route | Line | Purpose |
|
||||
|-------|------|---------|
|
||||
| `GET /api/tags/search` | 497-537 | Tag autocomplete search |
|
||||
| `GET /image/<id>/tags` | 540-543 | List tags for image |
|
||||
| `POST /image/<id>/tags/add` | 546-573 | Add tag to image |
|
||||
| `POST /image/<id>/tags/remove` | 576-587 | Remove tag from image |
|
||||
| `GET /api/tag/<id>` | 594-605 | Get tag details |
|
||||
| `GET /api/post-metadata/<id>` | 608-651 | Get post metadata for a post tag |
|
||||
| `GET /api/post-metadata/by-tag-name/<name>` | 654-685 | Get post metadata by tag name |
|
||||
| `POST /api/tag/<id>/update` | 688-764 | Update/merge tag |
|
||||
| `POST /api/tag/<id>/delete` | 767-776 | Delete tag |
|
||||
| `GET /api/tag/<id>/image-count` | 842-847 | Count images with tag |
|
||||
| `GET /api/tags/search` | 532-579 | Tag autocomplete search (supports `kind` filter) |
|
||||
| `GET /image/<id>/tags` | 581-585 | List tags for image |
|
||||
| `POST /image/<id>/tags/add` | 587-615 | Add tag to image |
|
||||
| `POST /image/<id>/tags/remove` | 617-633 | Remove tag from image |
|
||||
| `GET /api/tag/<id>` | 635-647 | Get tag details |
|
||||
| `GET /api/post-metadata/<id>` | 649-680 | Get post metadata for a post tag |
|
||||
| `GET /api/post-metadata/by-tag-name/<name>` | 682-714 | Get post metadata by tag name |
|
||||
| `POST /api/tag/<id>/update` | 716-793 | Update/merge tag |
|
||||
| `POST /api/tag/<id>/delete` | 795-809 | Delete tag |
|
||||
| `GET /api/tag/<id>/image-count` | 870-880 | Count images with tag |
|
||||
|
||||
### Bulk Operations
|
||||
|
||||
| Route | Line | Purpose |
|
||||
|-------|------|---------|
|
||||
| `POST /api/delete-by-tag` | 703-759 | Delete all images with tag |
|
||||
| `POST /api/images/common-tags` | 1394-1425 | Get common tags across images |
|
||||
| `POST /api/images/bulk-add-tag` | 1428-1474 | Add tag to multiple images |
|
||||
| `POST /api/images/bulk-remove-tag` | 1477-1514 | Remove tag from multiple images |
|
||||
| `POST /api/delete-by-tag` | 811-868 | Delete all images with tag |
|
||||
| `POST /api/images/common-tags` | 1604-1636 | Get common tags across images |
|
||||
| `POST /api/images/bulk-add-tag` | 1638-1685 | Add tag to multiple images |
|
||||
| `POST /api/images/bulk-remove-tag` | 1687-1729 | Remove tag from multiple images |
|
||||
|
||||
### Series / Reader API
|
||||
|
||||
| Route | Line | Purpose |
|
||||
|-------|------|---------|
|
||||
| `GET /read/<tag_id>` | 1620-1650 | Reader view for a series (vertical scroll) |
|
||||
| `GET /api/series/<tag_id>/pages` | 1653-1685 | Get all pages in a series |
|
||||
| `POST /api/series/<tag_id>/pages/add` | 1688-1737 | Add single image to series with page number |
|
||||
| `POST /api/series/<tag_id>/pages/bulk-add` | 1740-1800 | Add multiple images with sequential page numbers |
|
||||
| `POST /api/series/page/<page_id>/update` | 1803-1828 | Update a page's page number |
|
||||
| `POST /api/series/page/<page_id>/delete` | 1831-1841 | Remove image from series |
|
||||
| `GET /api/image/<image_id>/series-info` | 1844-1858 | Check if image is in a series |
|
||||
| `GET /read/<tag_id>` | 1731-1763 | Reader view for a series (vertical scroll) |
|
||||
| `GET /api/series/<tag_id>/pages` | 1765-1795 | Get all pages in a series |
|
||||
| `POST /api/series/<tag_id>/pages/add` | 1797-1853 | Add single image to series with page number |
|
||||
| `POST /api/series/<tag_id>/pages/bulk-add` | 1855-1915 | Add multiple images with sequential page numbers |
|
||||
| `POST /api/series/page/<page_id>/update` | 1917-1946 | Update a page's page number |
|
||||
| `POST /api/series/page/<page_id>/delete` | 1948-1958 | Remove image from series |
|
||||
| `GET /api/image/<image_id>/series-info` | 1960-1976 | Check if image is in a series |
|
||||
| `POST /api/image/<image_id>/add-to-series` | 1978-2070 | Add/update/move image in series |
|
||||
|
||||
### Import Queue API
|
||||
|
||||
| Route | Line | Purpose |
|
||||
|-------|------|---------|
|
||||
| `POST /api/import/trigger` | 961-981 | Start directory scan |
|
||||
| `GET /api/import/status` | 984-1042 | Queue status and recent tasks |
|
||||
| `GET /api/import/task/<id>` | 1045-1082 | Task details |
|
||||
| `POST /api/import/retry-failed` | 1085-1122 | Retry failed tasks |
|
||||
| `POST /api/import/clear-completed` | 1125-1144 | Clear completed tasks |
|
||||
| `GET /api/import/batches` | 1222-1250 | List import batches |
|
||||
| `POST /api/import/trigger` | 1069-1090 | Start directory scan |
|
||||
| `GET /api/import/status` | 1092-1151 | Queue status and recent tasks |
|
||||
| `GET /api/import/task/<id>` | 1153-1191 | Task details |
|
||||
| `POST /api/import/retry-failed` | 1193-1231 | Retry failed tasks |
|
||||
| `POST /api/import/clear-completed` | 1233-1253 | Clear completed tasks |
|
||||
| `GET /api/import/batches` | 1432-1465 | List import batches |
|
||||
|
||||
### Settings API
|
||||
|
||||
| Route | Line | Purpose |
|
||||
|-------|------|---------|
|
||||
| `GET /api/import-settings` | 774-788 | Get import filter settings |
|
||||
| `POST /api/import-settings` | 791-821 | Save import filter settings |
|
||||
| `GET /api/filter-scan` | 828-902 | Scan images against filters |
|
||||
| `POST /api/filter-delete` | 905-954 | Delete filtered images |
|
||||
| `GET /api/import-settings` | 882-897 | Get import filter settings |
|
||||
| `POST /api/import-settings` | 899-934 | Save import filter settings |
|
||||
| `GET /api/filter-scan` | 936-1011 | Scan images against filters |
|
||||
| `POST /api/filter-delete` | 1013-1067 | Delete filtered images |
|
||||
|
||||
### Thumbnail API
|
||||
|
||||
| Route | Line | Purpose |
|
||||
|-------|------|---------|
|
||||
| `POST /api/thumbnails/regenerate` | 1147-1164 | Regenerate all thumbnails |
|
||||
| `POST /api/thumbnails/regenerate-missing` | 1167-1183 | Generate missing thumbnails |
|
||||
| `POST /api/thumbnails/regenerate` | 1255-1273 | Regenerate all thumbnails |
|
||||
| `POST /api/thumbnails/regenerate-missing` | 1275-1292 | Generate missing thumbnails |
|
||||
|
||||
### Maintenance API
|
||||
|
||||
| Route | Line | Purpose |
|
||||
|-------|------|---------|
|
||||
| `POST /api/reapply-artist-tags` | 1294-1358 | Re-apply artist tags from file paths |
|
||||
| `POST /api/cleanup-orphaned-tags` | 1360-1394 | Delete tags with no associated images |
|
||||
|
||||
### Celery Status
|
||||
|
||||
| Route | Line | Purpose |
|
||||
|-------|------|---------|
|
||||
| `GET /api/celery/status` | 1186-1219 | Worker and queue status |
|
||||
| `GET /api/celery/status` | 1396-1430 | Worker and queue status |
|
||||
|
||||
### Duplicate Detection
|
||||
|
||||
| Route | Line | Purpose |
|
||||
|-------|------|---------|
|
||||
| `POST /api/duplicates/scan` | 1257-1343 | Scan for similar images by pHash |
|
||||
| `POST /api/duplicates/delete` | 1346-1387 | Delete duplicate images |
|
||||
| `POST /api/duplicates/scan` | 1467-1554 | Scan for similar images by pHash |
|
||||
| `POST /api/duplicates/delete` | 1556-1602 | Delete duplicate images |
|
||||
|
||||
---
|
||||
|
||||
@@ -313,9 +321,9 @@ Task types: scan, import_image, import_archive, thumbnail, sidecar
|
||||
| `gallery.html` | Main gallery with infinite scroll, timeline sidebar, bulk editor, series editor |
|
||||
| `reader.html` | Series reader with vertical scroll, page jump, thumbnail navigation |
|
||||
| `tags_list.html` | Tag browser with preview images |
|
||||
| `settings.html` | Import settings, deletion tools, duplicate detection |
|
||||
| `_gallery_item.html` | Single gallery item partial |
|
||||
| `_gallery_modal.html` | Image modal with tag editor |
|
||||
| `settings.html` | Import settings, deletion tools, duplicate detection, maintenance tools |
|
||||
| `_gallery_item.html` | Single gallery item partial (with tag overlay) |
|
||||
| `_gallery_modal.html` | Image modal with tag editor and series management |
|
||||
| `_gallery_grid.html` | Gallery grid partial |
|
||||
| `_pagination.html` | Pagination controls |
|
||||
|
||||
@@ -324,8 +332,8 @@ Task types: scan, import_image, import_archive, thumbnail, sidecar
|
||||
| File | Purpose |
|
||||
|------|---------|
|
||||
| `gallery-infinite.js` | Infinite scroll, timeline navigation |
|
||||
| `modal-pagination.js` | Modal image navigation |
|
||||
| `bulk-select.js` | Multi-select and bulk tag editing |
|
||||
| `modal-pagination.js` | Modal image navigation, tag editing, series management (add/update/move) |
|
||||
| `bulk-select.js` | Multi-select with ordered selection, bulk tag editing, tag refresh, series bulk-add |
|
||||
| `tag-editor.js` | Tag autocomplete and editing |
|
||||
| `showcase.js` | Showcase shuffle functionality |
|
||||
|
||||
@@ -357,7 +365,10 @@ Files are stored with hash suffix: `{filename}__{hash[:10]}.{ext}`
|
||||
- `source` - Platform source (prefix: `source:platform`)
|
||||
- `post` - Post reference (prefix: `post:platform:artist:id`)
|
||||
- `user` - User-created tags (no prefix)
|
||||
- `character`, `series`, `rating` - Content tags
|
||||
- `character` - Character tags (prefix: `character:name`)
|
||||
- `series` - Series for ordered reading (prefix: `series:name`)
|
||||
- `fandom` - Fandom/franchise tags (prefix: `fandom:name`)
|
||||
- `rating` - Content rating tags (prefix: `rating:level`)
|
||||
|
||||
### Import Pipeline
|
||||
1. `scan_directory` walks `/import/{artist}/` folders
|
||||
|
||||
Reference in New Issue
Block a user