Initial commit: Thread Ripper containerized application
This commit is contained in:
commit
a648a59c0f
16 files changed
+2213
No files matched your search
@@ -0,0 +1,52 @@
|
||||
from typing import List, Optional, Dict, Any
|
||||
from pydantic import BaseModel, Field
|
||||
from datetime import datetime
|
||||
|
||||
class MediaItem(BaseModel):
|
||||
type: str = "image"
|
||||
url: str
|
||||
alt_text: Optional[str] = None
|
||||
|
||||
class PostSegment(BaseModel):
|
||||
index: int
|
||||
author_handle: str
|
||||
author_name: Optional[str] = None
|
||||
author_avatar: Optional[str] = None
|
||||
timestamp: Optional[str] = None
|
||||
url: Optional[str] = None
|
||||
text: str
|
||||
is_author: bool = True
|
||||
images: List[MediaItem] = Field(default_factory=list)
|
||||
stats: Dict[str, str] = Field(default_factory=dict)
|
||||
|
||||
class RippedThread(BaseModel):
|
||||
id: str
|
||||
original_url: str
|
||||
canonical_url: str
|
||||
author_handle: str
|
||||
author_name: str
|
||||
author_avatar: Optional[str] = None
|
||||
created_at: str
|
||||
title: str
|
||||
segments: List[PostSegment]
|
||||
stitched_markdown: str
|
||||
stitched_text: str
|
||||
stitched_html: str
|
||||
segment_count: int
|
||||
total_words: int
|
||||
saved_at: datetime = Field(default_factory=datetime.utcnow)
|
||||
|
||||
class RipRequest(BaseModel):
|
||||
url: str
|
||||
mode: str = "author_only" # 'author_only' or 'all_replies'
|
||||
max_scrolls: int = 6
|
||||
|
||||
class HistorySummary(BaseModel):
|
||||
id: str
|
||||
title: str
|
||||
author_handle: str
|
||||
author_name: str
|
||||
segment_count: int
|
||||
total_words: int
|
||||
saved_at: str
|
||||
original_url: str
|
||||
Reference in new issue
Block a user