Skip to main content
Glama
hmumixaM

USCardForum MCP Server

by hmumixaM
topics.py3.02 kB
"""Domain models for topics and posts.""" from __future__ import annotations from datetime import datetime from pydantic import BaseModel, Field class TopicSummary(BaseModel): """Summary of a topic for list views (hot, new, top topics).""" id: int = Field(..., description="Unique topic identifier") title: str = Field(..., description="Topic title") posts_count: int = Field(0, description="Total number of posts") views: int = Field(0, description="Total view count") like_count: int = Field(0, description="Total likes on the topic") category_id: int | None = Field(None, description="Category identifier") category_name: str | None = Field(None, description="Category name") created_at: datetime | None = Field(None, description="When topic was created") last_posted_at: datetime | None = Field(None, description="Last activity time") class Config: extra = "ignore" class TopicInfo(BaseModel): """Detailed topic metadata.""" topic_id: int = Field(..., description="Topic identifier") title: str | None = Field(None, description="Topic title") post_count: int = Field(0, description="Total number of posts") highest_post_number: int = Field(0, description="Highest post number") last_posted_at: datetime | None = Field(None, description="Last activity time") class Config: extra = "ignore" class Post(BaseModel): """A single post within a topic.""" id: int = Field(..., description="Unique post identifier") post_number: int = Field(..., description="Position in topic (1-indexed)") username: str = Field(..., description="Author's username") cooked: str | None = Field(None, description="HTML-rendered content") raw: str | None = Field(None, description="Raw markdown source") created_at: datetime | None = Field(None, description="When posted") updated_at: datetime | None = Field(None, description="Last edit time") like_count: int = Field(0, description="Number of likes") reply_count: int = Field(0, description="Number of direct replies") reply_to_post_number: int | None = Field( None, description="Post number this replies to" ) class Config: extra = "ignore" class Topic(BaseModel): """Full topic with metadata and posts.""" id: int = Field(..., description="Topic identifier") title: str = Field(..., description="Topic title") posts_count: int = Field(0, description="Total posts") views: int = Field(0, description="View count") like_count: int = Field(0, description="Total likes") category_id: int | None = Field(None, description="Category ID") category_name: str | None = Field(None, description="Category name") created_at: datetime | None = Field(None, description="Creation time") last_posted_at: datetime | None = Field(None, description="Last activity") posts: list[Post] = Field(default_factory=list, description="Posts in topic") class Config: extra = "ignore"

Implementation Reference

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/hmumixaM/uscardforum-mcp4'

If you have feedback or need assistance with the MCP directory API, please join our Discord server