releasing package bti version 034-4
[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_CUSTOM   = 2
22 };
23
24 enum action {
25         ACTION_UPDATE  = 0,
26         ACTION_FRIENDS = 1,
27         ACTION_USER    = 2,
28         ACTION_REPLIES = 4,
29         ACTION_PUBLIC  = 8,
30         ACTION_GROUP   = 16,
31         ACTION_RETWEET = 32,
32         ACTION_DIRECT  = 64,
33         ACTION_UNKNOWN = 128
34 };
35
36 struct session {
37         char *password;
38         char *account;
39         char *consumer_key;
40         char *consumer_secret;
41         char *access_token_key;
42         char *access_token_secret;
43         char *tweet;
44         char *proxy;
45         char *time;
46         char *homedir;
47         char *logfile;
48         char *user;
49         char *group;
50         char *hosturl;
51         char *hostname;
52         char *configfile;
53         char *replyto;
54         char *retweet;
55         int bash;
56         int background;
57         int interactive;
58         int shrink_urls;
59         int dry_run;
60         int page;
61         int no_oauth;
62         int guest;
63         int verbose;
64         int column_output;
65         enum host host;
66         enum action action;
67         void *readline_handle;
68         char *(*readline)(const char *);
69 };
70
71 struct bti_curl_buffer {
72         char *data;
73         struct session *session;
74         enum action action;
75         int length;
76 };
77
78 extern const char twitter_host[];
79 extern const char twitter_name[];
80 extern int debug;
81
82 extern void bti_parse_configfile(struct session *session);
83
84 #define dbg(format, arg...)                                             \
85         do {                                                            \
86                 if (debug)                                              \
87                         fprintf(stdout, "bti: %s: " format , __func__ , \
88                                 ## arg);                                \
89         } while (0)
90
91
92 #endif