1
#ifndef NEWSBEUTER_RSS__H
2
#define NEWSBEUTER_RSS__H
7
#include <configcontainer.h>
14
namespace newsbeuter {
20
rss_item(cache * c) : unread_(true), ch(c), enqueued_(false) { }
23
std::string title() const;
24
std::string title_raw() const { return title_; }
25
void set_title(const std::string& t);
27
inline const std::string& link() const { return link_; }
28
void set_link(const std::string& l);
30
std::string author() const;
31
std::string author_raw() const { return author_; }
32
void set_author(const std::string& a);
34
std::string description() const;
35
std::string description_raw() const { return description_; }
36
void set_description(const std::string& d);
38
std::string pubDate() const;
40
inline time_t pubDate_timestamp() const {
43
void set_pubDate(time_t t);
45
inline const std::string& guid() const { return guid_; }
46
void set_guid(const std::string& g);
48
inline bool unread() const { return unread_; }
49
void set_unread(bool u);
50
void set_unread_nowrite(bool u);
52
inline void set_cache(cache * c) { ch = c; }
53
inline void set_feedurl(const std::string& f) { feedurl_ = f; }
55
inline const std::string& feedurl() const { return feedurl_; }
57
inline const std::string& enclosure_url() const { return enclosure_url_; }
58
inline const std::string& enclosure_type() const { return enclosure_type_; }
60
void set_enclosure_url(const std::string& url);
61
void set_enclosure_type(const std::string& type);
63
inline bool enqueued() { return enqueued_; }
64
inline void set_enqueued(bool v) { enqueued_ = v; }
70
std::string description_;
76
std::string enclosure_url_;
77
std::string enclosure_type_;
83
rss_feed(cache * c) : ch(c) { }
85
std::string title_raw() const { return title_; }
86
std::string title() const;
87
inline void set_title(const std::string& t) { title_ = t; }
89
std::string description_raw() const { return description_; }
90
std::string description() const;
91
inline void set_description(const std::string& d) { description_ = d; }
93
inline const std::string& link() const { return link_; }
94
inline void set_link(const std::string& l) { link_ = l; }
96
inline std::string pubDate() const { return "TODO"; }
97
inline void set_pubDate(time_t t) { pubDate_ = t; }
99
inline std::vector<rss_item>& items() { return items_; }
101
rss_item& get_item_by_guid(const std::string& guid);
103
inline const std::string& rssurl() const { return rssurl_; }
104
inline void set_rssurl(const std::string& u) { rssurl_ = u; }
106
unsigned int unread_item_count() const;
108
void set_tags(const std::vector<std::string>& tags);
109
bool matches_tag(const std::string& tag);
110
std::string get_tags();
114
std::string description_;
118
std::vector<rss_item> items_;
119
std::vector<std::string> tags_;
126
rss_parser(const char * uri, cache * c, configcontainer *);
129
static time_t parse_date(const std::string& datestr);
133
configcontainer *cfgcont;