diff --git a/bti-bashcompletion b/bti-bashcompletion index fa55d75..f957b32 100644 --- a/bti-bashcompletion +++ b/bti-bashcompletion @@ -12,7 +12,7 @@ _bti() fi if [[ "${prev}" == "--host" ]] ; then - COMPREPLY=( $(compgen -W "twitter identica" -- ${cur} ) ) + COMPREPLY=( $(compgen -W "statusnet" -- ${cur} ) ) fi if [[ "${prev}" == "--action" ]] ; then diff --git a/bti.1 b/bti.1 index bdd6c76..3577e98 100644 --- a/bti.1 +++ b/bti.1 @@ -28,23 +28,23 @@ .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" -bti \- send a tweet to twitter\&.com from the command line +bti \- send a tweet to status\&.net from the command line .SH "SYNOPSIS" .HP \w'\fBbti\fR\ 'u \fBbti\fR [\fB\-\-account\ account\fR] [\fB\-\-password\ password\fR] [\fB\-\-action\ action\fR] [\fB\-\-user\ screenname\fR] [\fB\-\-host\ HOST_NAME\fR] [\fB\-\-proxy\ PROXY:PORT\fR] [\fB\-\-logfile\ LOGFILE\fR] [\fB\-\-config\ CONFIGFILE\fR] [\fB\-\-replyto\ ID\fR] [\fB\-\-retweet\ ID\fR] [\fB\-\-page\ PAGENUMBER\fR] [\fB\-\-bash\fR] [\fB\-\-shrink\-urls\fR] [\fB\-\-debug\fR] [\fB\-\-dry\-run\fR] [\fB\-\-verbose\fR] [\fB\-\-version\fR] [\fB\-\-help\fR] .SH "DESCRIPTION" .PP -bti sends a tweet message to twitter\&.com\&. +bti sends a tweet message to status\&.net\&. .SH "OPTIONS" .PP \fB\-\-account account\fR .RS 4 -Specify the twitter\&.com account name\&. +Specify the status\&.net account name\&. .RE .PP \fB\-\-password password\fR .RS 4 -Specify the password of your twitter\&.com account\&. +Specify the password of your status\&.net account\&. .RE .PP \fB\-\-action action\fR @@ -59,9 +59,9 @@ Specify the user whose messages you want to see when the action is "user", and t .PP \fB\-\-host HOST_NAME\fR .RS 4 -Specify the host which you want to send your message to\&. Valid options are "twitter" to send to twitter\&.com\&. +Specify the host which you want to send your message to\&. Valid options are "statusnet" to send to status\&.net\&. .sp -If no host is specified, the default is to send to twitter\&.com\&. +If no host is specified, the default is to send to status\&.net\&. .RE .PP \fB\-\-proxy PROXY:PORT\fR @@ -85,8 +85,6 @@ Specify a config file for bti to read from\&. By default, bti looks in the ~/\&. .RS 4 Status ID of a single post to which you want to create a threaded reply to\&. .sp -For twitter, this is ignored unless the message starts with the @name of the owner of the post with the status ID\&. -.sp For status\&.net, this can link any two messages into context with each other\&. Status\&.net will also link a message that contains an @name without this without regard to context\&. .RE .PP @@ -167,12 +165,12 @@ The account and password can be stored in a configuration file in the users home .PP \fBaccount\fR .RS 4 -The twitter\&.com account name you wish to use to send this message with\&. +The status\&.net account name you wish to use to send this message with\&. .RE .PP \fBpassword\fR .RS 4 -The twitter\&.com password for the account you wish to use to send this message with\&. +The status\&.net password for the account you wish to use to send this message with\&. .RE .PP \fB\-\-action action\fR @@ -187,7 +185,7 @@ Specify the user you want to see his/her messages while the action is "user"\&. .PP \fBhost\fR .RS 4 -The host you want to use to send the message to\&. Valid options is "twitter" or "custom" to specify your own server\&. +The host you want to use to send the message to\&. Valid options is "statusnet" or "custom" to specify your own server\&. .RE .PP \fBproxy\fR diff --git a/bti.c b/bti.c index f4b2c4d..226e111 100644 --- a/bti.c +++ b/bti.c @@ -53,7 +53,7 @@ int debug; static void display_help(void) { - fprintf(stdout, "bti - send tweet to twitter or identi.ca\n" + fprintf(stdout, "bti - send tweet to status.net\n" "Version: %s\n" "Usage:\n" " bti [options]\n" @@ -258,14 +258,12 @@ static void bti_curl_buffer_free(struct bti_curl_buffer *buffer) free(buffer); } -const char twitter_host[] = "https://api.twitter.com/1.1/statuses"; -const char twitter_host_stream[] = "https://stream.twitter.com/1.1/statuses"; /*this is not reset, and doesnt work */ -const char twitter_host_simple[] = "https://api.twitter.com/1.1"; -const char twitter_name[] = "twitter"; +const char statusnet_host[] = "https://status.net/api/statuses"; +const char statusnet_name[] = "statusnet"; -static const char twitter_request_token_uri[] = "https://twitter.com/oauth/request_token"; -static const char twitter_access_token_uri[] = "https://twitter.com/oauth/access_token"; -static const char twitter_authorize_uri[] = "https://twitter.com/oauth/authorize?oauth_token="; +static const char statusnet_request_token_uri[] = "https://status.net/api/oauth/request_token?oauth_callback=oob"; +static const char statusnet_access_token_uri[] = "https://status.net/api/oauth/access_token"; +static const char statusnet_authorize_uri[] = "https://status.net/api/oauth/authorize?oauth_token="; static const char custom_request_token_uri[] = "/../oauth/request_token?oauth_callback=oob"; static const char custom_access_token_uri[] = "/../oauth/access_token"; static const char custom_authorize_uri[] = "/../oauth/authorize?oauth_token="; @@ -792,9 +790,9 @@ static int request_access_token(struct session *session) if (!session) return -EINVAL; - if (session->host == HOST_TWITTER) + if (session->host == HOST_STATUSNET) request_url = oauth_sign_url2( - twitter_request_token_uri, NULL, + statusnet_request_token_uri, NULL, OA_HMAC, NULL, session->consumer_key, session->consumer_secret, NULL, NULL); else { @@ -825,11 +823,11 @@ static int request_access_token(struct session *session) "Please open the following link in your browser, and " "allow 'bti' to access your account. Then paste " "back the provided PIN in here.\n"); - if (session->host == HOST_TWITTER) { - fprintf(stdout, "%s%s\nPIN: ", twitter_authorize_uri, at_key); + if (session->host == HOST_STATUSNET) { + fprintf(stdout, "%s%s\nPIN: ", statusnet_authorize_uri, at_key); verifier = session->readline(NULL); sprintf(at_uri, "%s?oauth_verifier=%s", - twitter_access_token_uri, verifier); + statusnet_access_token_uri, verifier); } else { fprintf(stdout, "%s%s%s\nPIN: ", session->hosturl, custom_authorize_uri, at_key); @@ -883,7 +881,7 @@ static int send_request(struct session *session) return -EINVAL; if (!session->hosturl) - session->hosturl = strdup(twitter_host); + session->hosturl = strdup(statusnet_host); if (session->no_oauth || session->guest) { curl_buf = bti_curl_buffer_alloc(session->action); @@ -898,7 +896,7 @@ static int send_request(struct session *session) } if (!session->hosturl) - session->hosturl = strdup(twitter_host); + session->hosturl = strdup(statusnet_host); switch (session->action) { case ACTION_UPDATE: @@ -959,7 +957,7 @@ static int send_request(struct session *session) case ACTION_PUBLIC: /*snprintf(endpoint, endpoint_size, "%s%s?page=%d", session->hosturl,*/ - snprintf(endpoint, endpoint_size, "%s%s", twitter_host_stream, + snprintf(endpoint, endpoint_size, "%s%s", statusnet_host, public_uri); curl_easy_setopt(curl, CURLOPT_URL, endpoint); break; @@ -972,7 +970,6 @@ static int send_request(struct session *session) break; case ACTION_DIRECT: - /* NOT IMPLEMENTED - twitter requires authentication anyway */ break; default: @@ -1052,7 +1049,6 @@ static int send_request(struct session *session) } else { switch (session->action) { case ACTION_UPDATE: - /* dont test it here, let twitter return an error that we show */ if (strlen_utf8(session->tweet) > 140 + 1000 ) { printf("E: tweet is too long!\n"); goto skip_tweet; @@ -1083,7 +1079,7 @@ static int send_request(struct session *session) mentions_uri, session->page); break; case ACTION_PUBLIC: - sprintf(endpoint, "%s%s", twitter_host_stream, + sprintf(endpoint, "%s%s", statusnet_host, public_uri); break; case ACTION_GROUP: @@ -1102,7 +1098,7 @@ static int send_request(struct session *session) break; case ACTION_DIRECT: escaped_tweet = oauth_url_escape(session->tweet); - sprintf(endpoint, "%s%s?user=%s&text=%s", twitter_host_simple, + sprintf(endpoint, "%s%s?user=%s&text=%s", statusnet_host, direct_uri, session->user, escaped_tweet); is_post = 1; break; @@ -1691,10 +1687,10 @@ int main(int argc, char *argv[], char *envp[]) free(session->hosturl); if (session->hostname) free(session->hostname); - if (strcasecmp(optarg, "twitter") == 0) { - session->host = HOST_TWITTER; - session->hosturl = strdup(twitter_host); - session->hostname = strdup(twitter_name); + if (strcasecmp(optarg, "statusnet") == 0) { + session->host = HOST_STATUSNET; + session->hosturl = strdup(statusnet_host); + session->hostname = strdup(statusnet_name); } else { session->host = HOST_CUSTOM; session->hosturl = strdup(optarg); @@ -1750,31 +1746,8 @@ int main(int argc, char *argv[], char *envp[]) if (debug) display_version(); - if (session->host == HOST_TWITTER) { - if (!session->consumer_key || !session->consumer_secret) { - 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"); - goto exit; - } - } else { - if (!session->consumer_key || !session->consumer_secret) - session->no_oauth = 1; - } + if (!session->consumer_key || !session->consumer_secret) + session->no_oauth = 1; if (session->no_oauth) { if (!session->account) { diff --git a/bti.example b/bti.example index 57c55c9..29afa11 100644 --- a/bti.example +++ b/bti.example @@ -5,7 +5,7 @@ # a message. account=twitmaster password=icanhascheezburger -host=identica +host=statusnet # Example of a custom StatusNet installation #host=http://army.twit.tv/api/statuses logfile=.bti.log diff --git a/bti.h b/bti.h index 3d5ed9c..e466c2a 100644 --- a/bti.h +++ b/bti.h @@ -17,7 +17,7 @@ #define __BTI_H enum host { - HOST_TWITTER = 0, + HOST_STATUSNET = 1, HOST_CUSTOM = 2 }; @@ -75,8 +75,8 @@ struct bti_curl_buffer { int length; }; -extern const char twitter_host[]; -extern const char twitter_name[]; +extern const char statusnet_host[]; +extern const char statusnet_name[]; extern int debug; extern void bti_parse_configfile(struct session *session); diff --git a/bti.xml b/bti.xml index c0b89ee..00ad9a8 100644 --- a/bti.xml +++ b/bti.xml @@ -21,7 +21,7 @@ bti - send a tweet to twitter.com from the command line + send a tweet to status.net from the command line @@ -49,7 +49,7 @@ DESCRIPTION - bti sends a tweet message to twitter.com. + bti sends a tweet message to status.net. @@ -59,7 +59,7 @@ - Specify the twitter.com account name. + Specify the status.net account name. @@ -67,7 +67,7 @@ - Specify the password of your twitter.com account. + Specify the password of your status.net account. @@ -100,10 +100,10 @@ Specify the host which you want to send your message to. Valid - options are "twitter" to send to twitter.com. + options are "statusnet" to send to status.net. - If no host is specified, the default is to send to twitter.com. + If no host is specified, the default is to send to status.net. @@ -149,10 +149,6 @@ reply to. - For twitter, this is ignored unless the message starts with the - @name of the owner of the post with the status ID. - - For status.net, this can link any two messages into context with each other. Status.net will also link a message that contains an @name without this without regard to context. @@ -301,7 +297,7 @@ - The twitter.com account name you wish to use to send this + The status.net account name you wish to use to send this message with. @@ -310,7 +306,7 @@ - The twitter.com password for the account you wish to use + The status.net password for the account you wish to use to send this message with. @@ -341,7 +337,7 @@ The host you want to use to send the message to. Valid - options is "twitter" or "custom" to specify your own server. + options is "statusnet" or "custom" to specify your own server. diff --git a/config.c b/config.c index e6fecc1..0bbc186 100644 --- a/config.c +++ b/config.c @@ -219,10 +219,10 @@ static int retweet_callback(struct session *session, char *value) static int host_callback(struct session *session, char *value) { - if (strcasecmp(value, "twitter") == 0) { - session->host = HOST_TWITTER; - session->hosturl = strdup(twitter_host); - session->hostname = strdup(twitter_name); + if (strcasecmp(value, "statusnet") == 0) { + session->host = HOST_STATUSNET; + session->hosturl = strdup(statusnet_host); + session->hostname = strdup(statusnet_name); } else { session->host = HOST_CUSTOM; session->hosturl = strdup(value);