summaryrefslogtreecommitdiff
path: root/nonprism/bti-nonprism
diff options
context:
space:
mode:
Diffstat (limited to 'nonprism/bti-nonprism')
-rw-r--r--nonprism/bti-nonprism/PKGBUILD37
-rw-r--r--nonprism/bti-nonprism/nonprism.patch443
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);