X-Git-Url: https://git.toastfreeware.priv.at/gregoa/bti.git/blobdiff_plain/c0aca65fa48662063e693155c2760dd427043908..0e8c78df15289f19b3c03a6761d9ac8d3fabc965:/bti.c diff --git a/bti.c b/bti.c index 26d7928..4ad5b54 100644 --- a/bti.c +++ b/bti.c @@ -98,6 +98,7 @@ struct session { int dry_run; int page; int no_oauth; + int guest; enum host host; enum action action; void *readline_handle; @@ -592,7 +593,7 @@ static int send_request(struct session *session) if (!session->hosturl) session->hosturl = strdup(twitter_host); - if (session->no_oauth) { + if (session->no_oauth || session->guest) { curl_buf = bti_curl_buffer_alloc(session->action); if (!curl_buf) return -ENOMEM; @@ -1547,11 +1548,17 @@ int main(int argc, char *argv[], char *envp[]) if (session->host == HOST_TWITTER) { if (!session->consumer_key || !session->consumer_secret) { - fprintf(stderr, - "Twitter no longer supports HTTP basic authentication.\n" - "Both consumer key, and consumer secret are required" - " for bti in order to behave as an OAuth consumer.\n"); - goto exit; + if (session->action == ACTION_USER || + session->action == ACTION_PUBLIC) { + /* Some actions may still work without authentication */ + session->guest = 1; + } else { + fprintf(stderr, + "Twitter no longer supports HTTP basic authentication.\n" + "Both consumer key, and consumer secret are required" + " for bti in order to behave as an OAuth consumer.\n"); + goto exit; + } } if (session->action == ACTION_GROUP) { fprintf(stderr, "Groups only work in Identi.ca.\n"); @@ -1573,7 +1580,7 @@ int main(int argc, char *argv[], char *envp[]) session->hostname); session->password = strdup(password); } - } else { + } else if (!session->guest) { if (!session->access_token_key || !session->access_token_secret) { request_access_token(session);