qBittorrent
RSS::Article Class Reference

#include <rss_article.h>

Inheritance diagram for RSS::Article:
Collaboration diagram for RSS::Article:

Signals

void read (Article *article=nullptr)
 

Public Member Functions

Feedfeed () const
 
QString guid () const
 
QDateTime date () const
 
QString title () const
 
QString author () const
 
QString description () const
 
QString torrentUrl () const
 
QString link () const
 
bool isRead () const
 
QVariantHash data () const
 
void markAsRead ()
 
QJsonObject toJsonObject () const
 

Static Public Member Functions

static bool articleDateRecentThan (const Article *article, const QDateTime &date)
 

Static Public Attributes

static const QString KeyId
 
static const QString KeyDate
 
static const QString KeyTitle
 
static const QString KeyAuthor
 
static const QString KeyDescription
 
static const QString KeyTorrentURL
 
static const QString KeyLink
 
static const QString KeyIsRead
 

Private Member Functions

 Article (Feed *feed, const QVariantHash &varHash)
 
 Article (Feed *feed, const QJsonObject &jsonObj)
 

Private Attributes

Feedm_feed = nullptr
 
QString m_guid
 
QDateTime m_date
 
QString m_title
 
QString m_author
 
QString m_description
 
QString m_torrentURL
 
QString m_link
 
bool m_isRead = false
 
QVariantHash m_data
 

Friends

class Feed
 

Detailed Description

Definition at line 42 of file rss_article.h.

Constructor & Destructor Documentation

◆ Article() [1/2]

Article::Article ( Feed feed,
const QVariantHash &  varHash 
)
private

Definition at line 62 of file rss_article.cpp.

63  : QObject(feed)
64  , m_feed(feed)
65  , m_guid(varHash.value(KeyId).toString())
66  , m_date(varHash.value(KeyDate).toDateTime())
67  , m_title(varHash.value(KeyTitle).toString())
68  , m_author(varHash.value(KeyAuthor).toString())
69  , m_description(varHash.value(KeyDescription).toString())
70  , m_torrentURL(varHash.value(KeyTorrentURL).toString())
71  , m_link(varHash.value(KeyLink).toString())
72  , m_isRead(varHash.value(KeyIsRead, false).toBool())
73  , m_data(varHash)
74 {
75 }
QDateTime m_date
Definition: rss_article.h:85
Feed * m_feed
Definition: rss_article.h:83
QString m_link
Definition: rss_article.h:90
QString m_description
Definition: rss_article.h:88
QString m_title
Definition: rss_article.h:86
static const QString KeyIsRead
Definition: rss_article.h:60
static const QString KeyAuthor
Definition: rss_article.h:56
static const QString KeyDate
Definition: rss_article.h:54
QString m_guid
Definition: rss_article.h:84
static const QString KeyDescription
Definition: rss_article.h:57
QVariantHash m_data
Definition: rss_article.h:92
static const QString KeyLink
Definition: rss_article.h:59
bool m_isRead
Definition: rss_article.h:91
QString m_author
Definition: rss_article.h:87
static const QString KeyId
Definition: rss_article.h:53
static const QString KeyTitle
Definition: rss_article.h:55
static const QString KeyTorrentURL
Definition: rss_article.h:58
Feed * feed() const
QString m_torrentURL
Definition: rss_article.h:89

◆ Article() [2/2]

Article::Article ( Feed feed,
const QJsonObject &  jsonObj 
)
private

Definition at line 77 of file rss_article.cpp.

78  : Article(feed, articleDataFromJSON(jsonObj))
79 {
80 }
Article(Feed *feed, const QVariantHash &varHash)
Definition: rss_article.cpp:62
QVariantHash articleDataFromJSON(const QJsonObject &jsonObj)
Definition: rss_article.cpp:42

Member Function Documentation

◆ articleDateRecentThan()

bool Article::articleDateRecentThan ( const Article article,
const QDateTime &  date 
)
static

Definition at line 146 of file rss_article.cpp.

147 {
148  return article->date() > date;
149 }
QDateTime date() const
Definition: rss_article.cpp:87

References date().

Referenced by RSS::Feed::addArticle().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ author()

QString Article::author ( ) const

Definition at line 97 of file rss_article.cpp.

98 {
99  return m_author;
100 }

References m_author.

◆ data()

QVariantHash Article::data ( ) const

Definition at line 122 of file rss_article.cpp.

123 {
124  return m_data;
125 }

References m_data.

Referenced by RSS::AutoDownloader::addJobForArticle().

Here is the caller graph for this function:

◆ date()

QDateTime Article::date ( ) const

Definition at line 87 of file rss_article.cpp.

88 {
89  return m_date;
90 }

References m_date.

Referenced by RSS::Feed::addArticle(), articleDateRecentThan(), and RSS::Feed::updateArticles().

Here is the caller graph for this function:

◆ description()

QString Article::description ( ) const

Definition at line 102 of file rss_article.cpp.

103 {
104  return m_description;
105 }

References m_description.

◆ feed()

Feed * Article::feed ( ) const

Definition at line 151 of file rss_article.cpp.

152 {
153  return m_feed;
154 }

References m_feed.

Referenced by RSS::AutoDownloader::addJobForArticle().

Here is the caller graph for this function:

◆ guid()

QString Article::guid ( ) const

Definition at line 82 of file rss_article.cpp.

83 {
84  return m_guid;
85 }

References m_guid.

Referenced by RSS::Feed::addArticle().

Here is the caller graph for this function:

◆ isRead()

bool Article::isRead ( ) const

Definition at line 117 of file rss_article.cpp.

118 {
119  return m_isRead;
120 }

References m_isRead.

Referenced by RSS::Feed::addArticle(), ArticleListWidget::createItem(), ArticleListWidget::handleArticleAdded(), and RSS::AutoDownloader::handleNewArticle().

Here is the caller graph for this function:

◆ link()

QString Article::link ( ) const

Definition at line 112 of file rss_article.cpp.

113 {
114  return m_link;
115 }

References m_link.

◆ markAsRead()

void Article::markAsRead ( )

Definition at line 127 of file rss_article.cpp.

128 {
129  if (!m_isRead)
130  {
131  m_isRead = true;
133  emit read(this);
134  }
135 }
void read(Article *article=nullptr)

References KeyIsRead, m_data, m_isRead, and read().

Referenced by RSSController::markAsReadAction().

Here is the caller graph for this function:

◆ read

void RSS::Article::read ( Article article = nullptr)
signal

Referenced by RSS::Feed::addArticle(), and markAsRead().

Here is the caller graph for this function:

◆ title()

QString Article::title ( ) const

Definition at line 92 of file rss_article.cpp.

93 {
94  return m_title;
95 }

References m_title.

Referenced by ArticleListWidget::createItem().

Here is the caller graph for this function:

◆ toJsonObject()

QJsonObject Article::toJsonObject ( ) const

Definition at line 137 of file rss_article.cpp.

138 {
139  auto jsonObj = QJsonObject::fromVariantHash(m_data);
140  // JSON object doesn't support DateTime so we need to convert it
141  jsonObj[KeyDate] = m_date.toString(Qt::RFC2822Date);
142 
143  return jsonObj;
144 }

References KeyDate, m_data, and m_date.

◆ torrentUrl()

QString Article::torrentUrl ( ) const

Definition at line 107 of file rss_article.cpp.

108 {
109  return (m_torrentURL.isEmpty() ? m_link : m_torrentURL);
110 }

References m_link, and m_torrentURL.

Referenced by RSS::AutoDownloader::addJobForArticle(), and RSS::AutoDownloader::handleNewArticle().

Here is the caller graph for this function:

Friends And Related Function Documentation

◆ Feed

friend class Feed
friend

Definition at line 47 of file rss_article.h.

Member Data Documentation

◆ KeyAuthor

const QString Article::KeyAuthor
static

◆ KeyDate

◆ KeyDescription

const QString Article::KeyDescription
static

◆ KeyId

◆ KeyIsRead

const QString Article::KeyIsRead
static

Definition at line 60 of file rss_article.h.

Referenced by RSS::Feed::loadArticlesLegacy(), and markAsRead().

◆ KeyLink

◆ KeyTitle

◆ KeyTorrentURL

◆ m_author

QString RSS::Article::m_author
private

Definition at line 87 of file rss_article.h.

Referenced by author().

◆ m_data

QVariantHash RSS::Article::m_data
private

Definition at line 92 of file rss_article.h.

Referenced by data(), markAsRead(), and toJsonObject().

◆ m_date

QDateTime RSS::Article::m_date
private

Definition at line 85 of file rss_article.h.

Referenced by date(), and toJsonObject().

◆ m_description

QString RSS::Article::m_description
private

Definition at line 88 of file rss_article.h.

Referenced by description().

◆ m_feed

Feed* RSS::Article::m_feed = nullptr
private

Definition at line 83 of file rss_article.h.

Referenced by feed().

◆ m_guid

QString RSS::Article::m_guid
private

Definition at line 84 of file rss_article.h.

Referenced by guid().

◆ m_isRead

bool RSS::Article::m_isRead = false
private

Definition at line 91 of file rss_article.h.

Referenced by isRead(), and markAsRead().

◆ m_link

QString RSS::Article::m_link
private

Definition at line 90 of file rss_article.h.

Referenced by link(), and torrentUrl().

◆ m_title

QString RSS::Article::m_title
private

Definition at line 86 of file rss_article.h.

Referenced by title().

◆ m_torrentURL

QString RSS::Article::m_torrentURL
private

Definition at line 89 of file rss_article.h.

Referenced by torrentUrl().


The documentation for this class was generated from the following files: