Skip to content

Models

lib/my_news/models/

All models use Sequel::Model.

Feed

MyNews::Models::Feed

Column Type Description
id Integer Primary key
url Text Feed URL (unique)
name Text Display name
handler Text Custom handler name
etag Text Last ETag header
last_modified Text Last-Modified header
last_fetched_at Text Timestamp of last fetch
enabled Integer 1 = enabled, 0 = disabled

Associations: one_to_many :entries

Scopes: .enabled -- feeds where enabled = 1

Entry

MyNews::Models::Entry

Column Type Description
id Integer Primary key
feed_id Integer Foreign key to feeds
guid Text Unique entry identifier
title Text Entry title
url Text Entry URL
raw_html Text Raw HTML content
fetched_at Text When the entry was fetched

Associations: many_to_one :feed, one_to_one :article

Article

MyNews::Models::Article

Column Type Description
id Integer Primary key
entry_id Integer Foreign key to entries (unique)
markdown Text Normalized markdown content
summary Text LLM-generated summary
simhash Integer 64-bit SimHash fingerprint
cluster_id Integer Duplicate cluster group
is_recurring Integer 1 if recurring topic
processed_at Text When the article was processed

Associations: many_to_one :entry

Bulletin

MyNews::Models::Bulletin

Column Type Description
id Integer Primary key
theme Text Bulletin theme name
content_md Text Markdown content
content_html Text HTML content
published_at Text Publication timestamp
pushed_freshrss Integer 1 if pushed to FreshRSS