30 lines
702 B
Dart
30 lines
702 B
Dart
import 'news_source.dart';
|
|||
|
|
|
||
|
|
class Article {
|
||
|
|
const Article({
|
||
|
|
required this.title,
|
||
|
|
required this.link,
|
||
|
|
required this.source,
|
||
|
|
this.published,
|
||
|
|
this.excerpt = '',
|
||
|
|
this.contentHtml = '',
|
||
|
|
this.imageUrl,
|
||
|
|
this.author,
|
||
|
|
});
|
||
|
|
|
||
|
|
final String title;
|
||
|
|
final String link;
|
||
|
|
final NewsSource source;
|
||
|
|
final DateTime? published;
|
||
|
|
|
||
|
|
/// Short plain-text teaser from the feed (description / summary).
|
||
|
|
final String excerpt;
|
||
|
|
|
||
|
|
/// Full article HTML if the feed ships it (content:encoded / atom content).
|
||
|
|
final String contentHtml;
|
||
|
|
final String? imageUrl;
|
||
|
|
final String? author;
|
||
|
|
|
||
|
|
/// The link is unique enough to identify an article across refreshes.
|
||
|
|
String get id => link;
|
||
|
|
}
|