Update OAuth instructions on README.Debian.
[debian/bti.git] / bti.h
1 /*
2  * Copyright (C) 2008-2011 Greg Kroah-Hartman <greg@kroah.com>
3  * Copyright (C) 2009 Bart Trojanowski <bart@jukie.net>
4  * Copyright (C) 2009-2010 Amir Mohammad Saied <amirsaied@gmail.com>
5  *
6  * This program is free software; you can redistribute it and/or modify it
7  * under the terms of the GNU General Public License as published by the
8  * Free Software Foundation version 2 of the License.
9  *
10  * This program is distributed in the hope that it will be useful, but
11  * WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  * General Public License for more details.
14  */
15
16 #ifndef __BTI_H
17 #define __BTI_H
18
19 enum host {
20         HOST_TWITTER  = 0,
21         HOST_IDENTICA = 1,
22         HOST_CUSTOM   = 2
23 };
24
25 enum action {
26         ACTION_UPDATE  = 0,
27         ACTION_FRIENDS = 1,
28         ACTION_USER    = 2,
29         ACTION_REPLIES = 4,
30         ACTION_PUBLIC  = 8,
31         ACTION_GROUP   = 16,
32         ACTION_RETWEET = 32,
33         ACTION_DIRECT  = 64,
34         ACTION_UNKNOWN = 128
35 };
36
37 struct session {
38         char *password;
39         char *account;
40         char *consumer_key;
41         char *consumer_secret;
42         char *access_token_key;
43         char *access_token_secret;
44         char *tweet;
45         char *proxy;
46         char *time;
47         char *homedir;
48         char *logfile;
49         char *user;
50         char *group;
51         char *hosturl;
52         char *hostname;
53         char *configfile;
54         char *replyto;
55         char *retweet;
56         int bash;
57         int background;
58         int interactive;
59         int shrink_urls;
60         int dry_run;
61         int page;
62         int no_oauth;
63         int guest;
64         int verbose;
65         int column_output;
66         enum host host;
67         enum action action;
68         void *readline_handle;
69         char *(*readline)(const char *);
70 };
71
72 struct bti_curl_buffer {
73         char *data;
74         struct session *session;
75         enum action action;
76         int length;
77 };
78
79 extern const char twitter_host[];
80 extern const char identica_host[];
81 extern const char twitter_name[];
82 extern const char identica_name[];
83 extern int debug;
84
85 extern void bti_parse_configfile(struct session *session);
86
87 #define dbg(format, arg...)                                             \
88         do {                                                            \
89                 if (debug)                                              \
90                         fprintf(stdout, "bti: %s: " format , __func__ , \
91                                 ## arg);                                \
92         } while (0)
93
94
95 #endif