Schema Examples¶
This guide provides examples of different schema implementations in NewLoom.
Sitemap Schema¶
Example of a sitemap configuration schema:
from pydantic import BaseModel, HttpUrl, Field
class SitemapConfig(BaseModel):
sitemap_url: HttpUrl
max_links: int = Field(gt=0, le=1000, default=100)
follow_next: bool = False
class Config:
extra = 'forbid'
Playwright Schema¶
Example of a Playwright configuration schema:
class PlaywrightConfig(BaseModel):
url: HttpUrl
link_selector: str
max_links: int = Field(gt=0, le=1000, default=100)
wait_for: Optional[str] = None
@field_validator('link_selector')
def validate_selector(cls, v):
if not v.strip():
raise ValueError("Selector cannot be empty")
return v
RSS Feed Schema¶
Example of an RSS feed configuration schema:
class RSSFeedConfig(BaseModel):
feed_url: HttpUrl
max_items: int = Field(gt=0, le=500, default=50)
include_summary: bool = True
update_interval: int = Field(
gt=0,
le=24*60,
default=60,
description="Update interval in minutes"
)
Telegram Schema¶
Example of a Telegram configuration schema:
class TelegramConfig(BaseModel):
channel_name: str
limit: int = Field(gt=0, le=100, default=50)
include_media: bool = True
@field_validator('channel_name')
def validate_channel_name(cls, v):
if not v.strip().startswith('@'):
raise ValueError("Channel name must start with @")
return v