static int debug;
-static int verbose;
enum host {
HOST_TWITTER = 0,
int page;
int no_oauth;
int guest;
+ int verbose;
enum host host;
enum action action;
void *readline_handle;
struct bti_curl_buffer {
char *data;
+ struct session *session;
enum action action;
int length;
};
return curl;
}
-static void parse_statuses(xmlDocPtr doc, xmlNodePtr current)
+static void parse_statuses(struct session *session,
+ xmlDocPtr doc, xmlNodePtr current)
{
xmlChar *text = NULL;
xmlChar *user = NULL;
}
if (user && text && created && id) {
- if (verbose)
+ if (session->verbose)
printf("[%s] {%s} (%.16s) %s\n",
user, id, created, text);
else
return;
}
-static void parse_timeline(char *document)
+static void parse_timeline(char *document, struct session *session)
{
xmlDocPtr doc;
xmlNodePtr current;
current = current->xmlChildrenNode;
while (current != NULL) {
if ((!xmlStrcmp(current->name, (const xmlChar *)"status")))
- parse_statuses(doc, current);
+ parse_statuses(session, doc, current);
current = current->next;
}
xmlFreeDoc(doc);
memcpy(&curl_buf->data[curl_buf->length], (char *)buffer, buffer_size);
curl_buf->length += buffer_size;
if (curl_buf->action)
- parse_timeline(curl_buf->data);
+ parse_timeline(curl_buf->data, curl_buf->session);
dbg("%s\n", curl_buf->data);
curl_buf = bti_curl_buffer_alloc(session->action);
if (!curl_buf)
return -ENOMEM;
+ curl_buf->session = session;
curl = curl_init();
if (!curl)
if ((session->action != ACTION_UPDATE) &&
(session->action != ACTION_RETWEET))
- parse_timeline(reply);
+ parse_timeline(reply, session);
}
return 0;
}
c += 8;
if (!strncasecmp(c, "true", 4) ||
!strncasecmp(c, "yes", 3))
- verbose = 1;
+ session->verbose = 1;
} else if (!strncasecmp(c,"retweet", 7) &&
(c[7] == '=')) {
c += 8;
int page_nr;
debug = 0;
- verbose = 0;
session = session_alloc();
if (!session) {
debug = 1;
break;
case 'V':
- verbose = 1;
+ session->verbose = 1;
break;
case 'a':
if (session->account)