Make GData plugin use the password store.
[claws.git] / src / plugins / rssyl / rssyl.h
1 #ifndef __RSSYL_H
2 #define __RSSYL_H
3
4 #include <glib.h>
5
6 #include <folder.h>
7
8 #include "libfeed/feed.h"
9
10 /* Name of directory in rcdir where RSSyl will store its data. */
11 #define RSSYL_DIR               "RSSyl"
12
13 /* Folder name for a new feed, before it is parsed for the first time. */
14 #define RSSYL_NEW_FOLDER_NAME           "NewFeed"
15
16 /* Default RSSyl mailbox name */
17 #define RSSYL_DEFAULT_MAILBOX   _("My Feeds")
18
19 /* Default feed to be added when creating mailbox for the first time */
20 #define RSSYL_DEFAULT_FEED      "http://planet.claws-mail.org/rss20.xml"
21
22 /* File where info about user-deleted feed items is stored */
23 #define RSSYL_DELETED_FILE ".deleted"
24
25 struct _RFolderItem {
26         FolderItem item;
27         gchar *url;
28         FeedAuth *auth;
29         gchar *official_title;
30         gchar *source_id;
31
32         gboolean keep_old;
33
34         gboolean default_refresh_interval;
35         gint refresh_interval;
36
37         gboolean fetch_comments;
38         gint fetch_comments_max_age;
39
40         gint silent_update;
41         gboolean write_heading;
42         gboolean ignore_title_rename;
43         gboolean ssl_verify_peer;
44
45         guint refresh_id;
46         gboolean fetching_comments;
47         time_t last_update;
48
49         struct _RFeedProp *feedprop;
50
51         GSList *items;
52         GSList *deleted_items;
53 };
54
55 typedef struct _RFolderItem RFolderItem;
56
57 struct _RRefreshCtx {
58         RFolderItem *ritem;
59         guint id;
60 };
61
62 typedef struct _RRefreshCtx RRefreshCtx;
63
64 struct _RFetchCtx {
65         Feed *feed;
66         guint response_code;
67         gchar *error;
68         gboolean success;
69         gboolean ready;
70 };
71
72 typedef struct _RFetchCtx RFetchCtx;
73
74 struct _RParseCtx {
75         RFolderItem *ritem;
76         gboolean ready;
77 };
78
79 typedef struct _RParseCtx RParseCtx;
80
81 struct _RDeletedItem {
82         gchar *id;
83         gchar *title;
84         time_t date_published;
85         time_t date_modified;
86 };
87
88 typedef struct _RDeletedItem RDeletedItem;
89
90 void rssyl_init(void);
91 void rssyl_done(void);
92
93 FolderClass *rssyl_folder_get_class(void);
94
95 FolderItem *rssyl_get_root_folderitem(FolderItem *item);
96
97 #define IS_RSSYL_FOLDER_ITEM(item) \
98         (item->folder->klass == rssyl_folder_get_class())
99
100 #endif /* __RSSYL_H */