Fix 1 - File modification time for created_at: - Get file.ModTime() in processMediaFile and pass to CreateMediaItem - Modified SQL INSERT to include created_at column Fix 2 - Force rescan UPDATE instead of DELETE+INSERT: - Changed force rescan logic to call updateMediaItem instead of delete + create - Preserves created_at timestamp on force rescan Fix 3 - GetMediaItemByFilePath filters by library_id: - Added library_id to WHERE clause in SQL query - Created GetMediaItemByFilePathAnyLibrary for cross-library lookups (KOReader) - Added SetLibraryID method to MediaScanner - Updated handler to call SetLibraryID for watch mode Fix 4 - File deletion handling with persistent logging: - Added fsnotify.Remove handler in WatchChanges - Added orphan cleanup in ScanFolders after scan completes - Created scanner_logger.go with daily log rotation (7 days) - Logs to /app/logs/scanner-deletes-YYYY-MM-DD.log and scanner-errors-YYYY-MM-DD.log - Individual deletes with enhanced safety logging Note: Integration tests can now safely scan /app/uploads because GetMediaItemByFilePath now filters by library_id, preventing cross-library interference.
43 lines
1.0 KiB
YAML
43 lines
1.0 KiB
YAML
info:
|
|
name: Get Scan Settings
|
|
type: http
|
|
seq: 2
|
|
|
|
http:
|
|
method: GET
|
|
url: "{{base_url}}/api/libraries/scan-settings"
|
|
headers:
|
|
- name: ""
|
|
value: application/json
|
|
auth: inherit
|
|
|
|
settings:
|
|
encodeUrl: true
|
|
timeout: 0
|
|
followRedirects: true
|
|
maxRedirects: 5
|
|
|
|
docs: |-
|
|
## Get Scan Settings
|
|
|
|
Retrieves the user's current library scanning settings.
|
|
|
|
**Method:** GET
|
|
|
|
**Endpoint:** /api/library/scan-settings
|
|
|
|
**Authentication:** Required (Bearer token)
|
|
|
|
**Response:**
|
|
- `scan_frequency_minutes` (number): Minutes between automatic scans (minimum 1)
|
|
- `auto_scan_enabled` (boolean): Whether automatic scanning is enabled
|
|
- `last_scan_at` (string, optional): Timestamp of last scan
|
|
- `next_scan_at` (string, optional): Timestamp of next scheduled scan
|
|
- `library_id` (string, optional): Library ID for context
|
|
|
|
**Status Codes:**
|
|
- 200: Success
|
|
- 401: Unauthorized
|
|
- 403: Forbidden (access denied)
|
|
- 500: Internal server error
|