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