Reading Progress
This commit is contained in:
@@ -69,6 +69,8 @@ CREATE TABLE stories (
|
||||
volume INTEGER,
|
||||
rating INTEGER CHECK (rating >= 1 AND rating <= 5),
|
||||
cover_image_path VARCHAR(500), -- Phase 2: Consider storing base filename without size suffix
|
||||
reading_position INTEGER DEFAULT 0, -- Character position for reading progress
|
||||
last_read_at TIMESTAMP, -- Last time story was accessed
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (author_id) REFERENCES authors(id),
|
||||
@@ -140,7 +142,7 @@ CREATE TABLE story_tags (
|
||||
{"name": "summary", "type": "string", "optional": true},
|
||||
{"name": "author_name", "type": "string"},
|
||||
{"name": "content", "type": "string"},
|
||||
{"name": "tags", "type": "string[]"},
|
||||
{"name": "tagNames", "type": "string[]", "facet": true},
|
||||
{"name": "series_name", "type": "string", "optional": true},
|
||||
{"name": "word_count", "type": "int32"},
|
||||
{"name": "rating", "type": "int32", "optional": true},
|
||||
@@ -178,6 +180,7 @@ Query parameters:
|
||||
- `tags` (string[]): Filter by tags
|
||||
- `authorId` (uuid): Filter by author
|
||||
- `seriesId` (uuid): Filter by series
|
||||
- `facetBy` (string[]): Enable faceting for specified fields (e.g., ['tagNames'])
|
||||
|
||||
#### POST /api/stories
|
||||
```json
|
||||
@@ -223,6 +226,21 @@ Request:
|
||||
}
|
||||
```
|
||||
|
||||
#### POST /api/stories/{id}/reading-progress
|
||||
```json
|
||||
Request:
|
||||
{
|
||||
"position": 1250
|
||||
}
|
||||
|
||||
Response:
|
||||
{
|
||||
"id": "uuid",
|
||||
"readingPosition": 1250,
|
||||
"lastReadAt": "2024-01-01T12:00:00Z"
|
||||
}
|
||||
```
|
||||
|
||||
### 4.3 Author Endpoints
|
||||
|
||||
#### GET /api/authors
|
||||
@@ -300,7 +318,7 @@ Get all stories in a series ordered by volume
|
||||
#### Story List View
|
||||
- Grid/List toggle
|
||||
- Search bar with real-time results
|
||||
- Tag cloud for filtering
|
||||
- Dynamic tag filtering with live story counts (faceted search)
|
||||
- Sort options: Date added, Title, Author, Rating
|
||||
- Pagination
|
||||
- Cover image thumbnails in grid view
|
||||
@@ -321,7 +339,9 @@ Get all stories in a series ordered by volume
|
||||
- Clean, distraction-free interface
|
||||
- Cover image display at the top (if available)
|
||||
- Responsive typography
|
||||
- Progress indicator
|
||||
- Real-time reading progress indicator with visual progress bar
|
||||
- Character-based position tracking with automatic saving
|
||||
- Automatic scroll-to-position restoration on story reopen
|
||||
- Navigation: Previous/Next in series
|
||||
- Quick access to rate story
|
||||
- Back to library button
|
||||
@@ -468,6 +488,8 @@ Get all stories in a series ordered by volume
|
||||
2. On story delete: Remove from index
|
||||
3. Batch reindex endpoint for maintenance
|
||||
4. Search includes: title, author, content, tags
|
||||
5. Faceted search support for dynamic filtering
|
||||
6. Tag facets provide real-time counts for library filtering
|
||||
|
||||
### 6.4 Security Considerations
|
||||
|
||||
@@ -567,11 +589,11 @@ APP_PASSWORD=application_password_here
|
||||
|
||||
## 9. Phase 2 Roadmap
|
||||
|
||||
### 9.1 URL Content Grabbing
|
||||
### 9.1 URL Content Grabbing ✅ IMPLEMENTED
|
||||
- Configurable scrapers for specific sites
|
||||
- Site configuration stored in database
|
||||
- Content extraction rules per site
|
||||
- Image download and storage
|
||||
- Site configuration stored in JSON files
|
||||
- Content extraction rules per site (DeviantArt support added)
|
||||
- Adaptive content extraction for varying HTML structures
|
||||
|
||||
### 9.2 Enhanced Image Processing & Optimization
|
||||
- **Multi-size generation during upload**
|
||||
@@ -623,7 +645,9 @@ APP_PASSWORD=application_password_here
|
||||
- Search interface
|
||||
|
||||
### Milestone 4: Reading Experience (Week 6)
|
||||
- Reading view implementation
|
||||
- Reading view implementation with progress tracking
|
||||
- Character-based reading position persistence
|
||||
- Automatic position restoration
|
||||
- Settings management
|
||||
- Rating system
|
||||
|
||||
|
||||
Reference in New Issue
Block a user