diff options
Diffstat (limited to 'nonprism/bti-nonprism')
-rw-r--r-- | nonprism/bti-nonprism/PKGBUILD | 37 | ||||
-rw-r--r-- | nonprism/bti-nonprism/nonprism.patch | 443 |
2 files changed, 480 insertions, 0 deletions
diff --git a/nonprism/bti-nonprism/PKGBUILD b/nonprism/bti-nonprism/PKGBUILD new file mode 100644 index 000000000..9c6414f40 --- /dev/null +++ b/nonprism/bti-nonprism/PKGBUILD @@ -0,0 +1,37 @@ +# $Id$ +# Maintainer: Kaiting Chen <kaitocracy@gmail.com> +# Contributor: uvok <uvok at online dot de> +# Contributor: Urist <9362773 at gmail.com> + +_pkgname=bti +pkgname=bti-nonprism +pkgver=033 +pkgrel=1 +pkgdesc='Console client for status.net, without Twitter support' +arch=('i686' 'x86_64' 'mips64el') +url='http://gregkh.github.com/bti/' +license=('GPL') +depends=('pcre' 'libxml2' 'curl' 'liboauth' 'json-c') +source=(http://www.kernel.org/pub/software/web/$_pkgname/$_pkgname-$pkgver.tar.xz + nonprism.patch) +sha256sums=('a3d9d8a86a718a4820387c75ac2af24fecfe754ee562163d700acb7cf795d753' + '184f2a134d44ae4c901ffdc824f833b477148f146e23f5d3680496658c9ca393') + +prepare() { + cd ${srcdir}/$_pkgname-$pkgver + patch -Np1 -i ${srcdir}/nonprism.patch +} + +build() { + cd ${srcdir}/$_pkgname-$pkgver + ./configure --prefix=/usr + + make +} + +package() { + cd ${srcdir}/$_pkgname-$pkgver + + make DESTDIR=${pkgdir} install +} + diff --git a/nonprism/bti-nonprism/nonprism.patch b/nonprism/bti-nonprism/nonprism.patch new file mode 100644 index 000000000..009c26d1e --- /dev/null +++ b/nonprism/bti-nonprism/nonprism.patch @@ -0,0 +1,443 @@ +diff -Nur bti-033/bti.1 bti-nonprism/bti.1 +--- bti-033/bti.1 2013-06-27 18:23:38.000000000 -0300 ++++ bti-nonprism/bti.1 2013-08-21 18:24:32.693871946 -0300 +@@ -28,23 +28,23 @@ + .\" * MAIN CONTENT STARTS HERE * + .\" ----------------------------------------------------------------- + .SH "NAME" +-bti \- send a tweet to twitter\&.com or identi\&.ca 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 or identi\&.ca\&. ++bti sends a tweet message to status\&.net\&. + .SH "OPTIONS" + .PP + \fB\-\-account account\fR + .RS 4 +-Specify the twitter\&.com or identi\&.ca account name\&. ++Specify the status\&.net account name\&. + .RE + .PP + \fB\-\-password password\fR + .RS 4 +-Specify the password of your twitter\&.com or identi\&.ca account\&. ++Specify the password of your status\&.net account\&. + .RE + .PP + \fB\-\-action action\fR +@@ -59,9 +59,9 @@ + .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 and "identica" to send to identi\&.ca\&. If you want to send the message to a custom StatusNet installation, you should specify the API URI\&. For example identi\&.ca\*(Aqs URI is: https://identi\&.ca/api/statuses ++Specify the host which you want to send your message to\&. Valid options are "statusnet" to send to status\&.net\&. If you want to send the message to a custom StatusNet installation, you should specify the API URI\&. For example status\&.net\*(Aqs URI is: https://status\&.net/api/statuses + .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 @@ + .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 @@ + .PP + \fBaccount\fR + .RS 4 +-The twitter\&.com or identi\&.ca 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 or identi\&.ca 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 @@ + .PP + \fBhost\fR + .RS 4 +-The host you want to use to send the message to\&. Valid options are either "twitter" or "identica" to send to twitter\&.com or identi\&.ca respectively\&. If you want to send the message to a custom StatusNet installation, you should specify the API URI\&. For example identi\&.ca\*(Aqs URI is: https://identi\&.ca/api/statuses\&. ++The host you want to use to send the message to\&. Valid options are either "statusnet" to send to status\&.net respectively\&. If you want to send the message to a custom StatusNet installation, you should specify the API URI\&. For example status\&.net\*(Aqs URI is: https://status\&.net/api/statuses\&. + .RE + .PP + \fBproxy\fR +diff -Nur bti-033/bti-bashcompletion bti-nonprism/bti-bashcompletion +--- bti-033/bti-bashcompletion 2013-06-27 18:23:38.000000000 -0300 ++++ bti-nonprism/bti-bashcompletion 2013-08-21 18:19:46.889928804 -0300 +@@ -12,7 +12,7 @@ + fi + + if [[ "${prev}" == "--host" ]] ; then +- COMPREPLY=( $(compgen -W "twitter identica" -- ${cur} ) ) ++ COMPREPLY=( $(compgen -W "statusnet" -- ${cur} ) ) + fi + + if [[ "${prev}" == "--action" ]] ; then +diff -Nur bti-033/bti.c bti-nonprism/bti.c +--- bti-033/bti.c 2013-06-27 18:23:38.000000000 -0300 ++++ bti-nonprism/bti.c 2013-08-21 18:31:54.013583020 -0300 +@@ -53,7 +53,7 @@ + + 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,19 +258,12 @@ + free(buffer); + } + +-const char twitter_host[] = "http://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[] = "http://api.twitter.com/1.1"; +-const char identica_host[] = "https://identi.ca/api/statuses"; +-const char twitter_name[] = "twitter"; +-const char identica_name[] = "identi.ca"; +- +-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 identica_request_token_uri[] = "https://identi.ca/api/oauth/request_token?oauth_callback=oob"; +-static const char identica_access_token_uri[] = "https://identi.ca/api/oauth/access_token"; +-static const char identica_authorize_uri[] = "https://identi.ca/api/oauth/authorize?oauth_token="; ++const char statusnet_host[] = "https://status.net/api/statuses"; ++const char statusnet_name[] = "status.net"; ++ ++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="; +@@ -855,14 +848,9 @@ + if (!session) + return -EINVAL; + +- if (session->host == HOST_TWITTER) +- request_url = oauth_sign_url2( +- twitter_request_token_uri, NULL, +- OA_HMAC, NULL, session->consumer_key, +- session->consumer_secret, NULL, NULL); +- else if (session->host == HOST_IDENTICA) ++ if (session->host == HOST_STATUSNET) + request_url = oauth_sign_url2( +- identica_request_token_uri, NULL, ++ statusnet_request_token_uri, NULL, + OA_HMAC, NULL, session->consumer_key, + session->consumer_secret, NULL, NULL); + else { +@@ -893,16 +881,11 @@ + "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); +- } else if (session->host == HOST_IDENTICA) { +- fprintf(stdout, "%s%s\nPIN: ", identica_authorize_uri, at_key); +- verifier = session->readline(NULL); +- sprintf(at_uri, "%s?oauth_verifier=%s", +- identica_access_token_uri, verifier); ++ statusnet_access_token_uri, verifier); + } else { + fprintf(stdout, "%s%s%s\nPIN: ", + session->hosturl, custom_authorize_uri, at_key); +@@ -956,7 +939,7 @@ + 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); +@@ -971,7 +954,7 @@ + } + + if (!session->hosturl) +- session->hosturl = strdup(twitter_host); ++ session->hosturl = strdup(statusnet_host); + + switch (session->action) { + case ACTION_UPDATE: +@@ -1032,7 +1015,7 @@ + + 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; +@@ -1045,7 +1028,6 @@ + break; + + case ACTION_DIRECT: +- /* NOT IMPLEMENTED - twitter requires authentication anyway */ + break; + + default: +@@ -1125,7 +1107,6 @@ + } 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; +@@ -1156,7 +1137,7 @@ + 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: +@@ -1175,7 +1156,7 @@ + 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; +@@ -1766,14 +1747,10 @@ + 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); +- } else if (strcasecmp(optarg, "identica") == 0) { +- session->host = HOST_IDENTICA; +- session->hosturl = strdup(identica_host); +- session->hostname = strdup(identica_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); +@@ -1829,31 +1806,8 @@ + 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 -Nur bti-033/bti.example bti-nonprism/bti.example +--- bti-033/bti.example 2012-06-22 18:45:42.000000000 -0300 ++++ bti-nonprism/bti.example 2013-08-21 18:24:54.398011375 -0300 +@@ -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 -Nur bti-033/bti.h bti-nonprism/bti.h +--- bti-033/bti.h 2013-06-27 18:23:38.000000000 -0300 ++++ bti-nonprism/bti.h 2013-08-21 18:19:22.865702111 -0300 +@@ -17,8 +17,7 @@ + #define __BTI_H + + enum host { +- HOST_TWITTER = 0, +- HOST_IDENTICA = 1, ++ HOST_STATUSNET = 1, + HOST_CUSTOM = 2 + }; + +@@ -76,10 +75,8 @@ + int length; + }; + +-extern const char twitter_host[]; +-extern const char identica_host[]; +-extern const char twitter_name[]; +-extern const char identica_name[]; ++extern const char statusnet_host[]; ++extern const char statusnet_name[]; + extern int debug; + + extern void bti_parse_configfile(struct session *session); +diff -Nur bti-033/bti.xml bti-nonprism/bti.xml +--- bti-033/bti.xml 2013-06-27 18:23:38.000000000 -0300 ++++ bti-nonprism/bti.xml 2013-08-21 18:22:20.722310079 -0300 +@@ -21,7 +21,7 @@ + + <refnamediv> + <refname>bti</refname> +- <refpurpose>send a tweet to twitter.com or identi.ca from the command line</refpurpose> ++ <refpurpose>send a tweet to status.net from the command line</refpurpose> + </refnamediv> + + <refsynopsisdiv> +@@ -49,7 +49,7 @@ + </refsynopsisdiv> + + <refsect1><title>DESCRIPTION</title> +- <para>bti sends a tweet message to twitter.com or identi.ca. ++ <para>bti sends a tweet message or status.net. + </para> + </refsect1> + +@@ -59,7 +59,7 @@ + <term><option>--account account</option></term> + <listitem> + <para> +- Specify the twitter.com or identi.ca account name. ++ Specify the status.net account name. + </para> + </listitem> + </varlistentry> +@@ -67,7 +67,7 @@ + <term><option>--password password</option></term> + <listitem> + <para> +- Specify the password of your twitter.com or identi.ca account. ++ Specify the password of your status.net account. + </para> + </listitem> + </varlistentry> +@@ -100,15 +100,15 @@ + <listitem> + <para> + Specify the host which you want to send your message to. Valid +- options are "twitter" to send to twitter.com and "identica" to +- send to identi.ca. ++ options are "statusnet" to ++ send to status.net. + + If you want to send the message to a custom StatusNet installation, +- you should specify the API URI. For example identi.ca's URI is: +- https://identi.ca/api/statuses ++ you should specify the API URI. For example status.net's URI is: ++ https://status.net/api/statuses + </para> + <para> +- 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. + </para> + </listitem> + </varlistentry> +@@ -154,10 +154,6 @@ + reply to. + </para> + <para> +- For twitter, this is ignored unless the message starts with the +- @name of the owner of the post with the status ID. +- </para> +- <para> + 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. +@@ -306,7 +302,7 @@ + <term><option>account</option></term> + <listitem> + <para> +- The twitter.com or identi.ca account name you wish to use to send this ++ The status.net account name you wish to use to send this + message with. + </para> + </listitem> +@@ -315,7 +311,7 @@ + <term><option>password</option></term> + <listitem> + <para> +- The twitter.com or identi.ca password for the account you wish to use ++ The status.net password for the account you wish to use + to send this message with. + </para> + </listitem> +@@ -346,12 +342,12 @@ + <listitem> + <para> + The host you want to use to send the message to. Valid +- options are either "twitter" or "identica" to send to +- twitter.com or identi.ca respectively. ++ options are either "statusnet" to send to ++ status.net respectively. + + If you want to send the message to a custom StatusNet installation, +- you should specify the API URI. For example identi.ca's URI is: +- https://identi.ca/api/statuses. ++ you should specify the API URI. For example status.net's URI is: ++ https://status.net/api/statuses. + </para> + </listitem> + </varlistentry> +diff -Nur bti-033/config.c bti-nonprism/config.c +--- bti-033/config.c 2013-04-23 20:18:04.000000000 -0300 ++++ bti-nonprism/config.c 2013-08-21 18:17:39.798533227 -0300 +@@ -219,14 +219,10 @@ + + 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); +- } else if (strcasecmp(value, "identica") == 0) { +- session->host = HOST_IDENTICA; +- session->hosturl = strdup(identica_host); +- session->hostname = strdup(identica_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); |