bti - send a tweet to twitter.com from the command line
bti [--account account]
[--password password] [--action action]
[--user screenname] [--host HOST_NAME]
[--proxy PROXY:PORT] [--logfile LOGFILE]
[--config CONFIGFILE] [--replyto ID]
[--retweet ID] [--page PAGENUMBER]
[--bash] [--shrink-urls] [--debug] [--dry-run]
[--verbose] [--version] [--help]
bti sends a tweet message to twitter.com.
--account account
Specify the twitter.com account name.
--password password
Specify the password of your twitter.com account.
--action action
Specify the action which you want to perform. Valid
options are "update" to send a message, "friends" to see
your friends timeline, "public" to track public timeline,
"replies" to see replies to your messages, "user" to see a
specific user's timeline and "direct" to send a direct message to a
friend. Default is "update".
--user screenname
Specify the user whose messages you want to see when the
action is "user", and the receiver of the direct message when the
action is "direct" (the sender must be following the
receiver).
--host HOST_NAME
Specify the host which you want to send your message to.
Valid options are "twitter" to send to twitter.com.
If no host is specified, the default is to send to
twitter.com.
--proxy PROXY:PORT
Specify a http proxy value. This is not a required
option, and only needed by systems that are behind a http proxy.
If --proxy is not specified but the environment variable
'http_proxy' is set the latter will be used.
--logfile LOGFILE
Specify a logfile for bti to write status messages to.
LOGFILE is in relation to the user's home directory, not an absolute path to a
file.
--config CONFIGFILE
Specify a config file for bti to read from. By default,
bti looks in the ~/.bti file for config values. This default location can be
overridden by setting a specific file with this option.
--replyto ID
Status ID of a single post to which you want to create a
threaded 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.
--retweet ID
Status ID of a single post which you want to
retweet.
--shrink-urls
Scans the tweet text for valid URL patterns and passes
each through the supplied bti-shrink-urls script. The script will pass the URL
to a web service that shrinks the URLs, making it more suitable for
micro-blogging.
The following URL shrinking services are available: http://2tu.us/
(default) and http://bit.ly / http://j.mp
See the documentation for bti-shrink-urls for the configuration
options.
--debug
Print a whole bunch of debugging messages to
stdout.
--page PAGENUMBER
When the action is to retrieve updates, it usually
retrieves only one page. If this option is used, the page number can be
specified.
--dry-run
Performs all steps that would normally be done for a
given action, but will not connect to the service to post or retrieve
data.
--verbose
Verbose mode. Print status IDs and timestamps.
--bash
Add the working directory and a '$' in the tweet message
to help specify it is coming from a command line. Don't put the working
directory and the '$' in the tweet message.
This option implies --background.
--background
Do not report back any errors that might have happened
when sending the message, and send it in the background, returning
immediately, allowing the user to continue on.
--version
Print version number.
--help
Print help text.
bti provides an easy way to send tweet messages direct from the
command line or any script. It reads the message on standard input and uses
the account and password settings either from the command line options, or
from a config file, to send the message out.
Its primary focus is to allow you to log everything that you type
into a bash shell, in a crazy, "this is what I'm doing right now!"
type of way, letting the world follow along with you constant moving between
directories and refreshing your email queue to see if there's anything
interesting going on.
To hook bti up to your bash shell, export the following
variable:
PROMPT_COMMAND='history 1 | sed -e "s/^\s*[0-9]*\s*//" |
bti --bash'
This example assumes that you have the ~/.bti set up with your
account and password information already in it, otherwise you can specify
them as an option.
The account and password can be stored in a configuration file in
the users home directory in a file named .bti. The structure of this file is
as follows:
account
The twitter.com account name you wish to use to send this
message with.
password
The twitter.com password for the account you wish to use
to send this message with.
--action action
Specify the action which you want to perform. Valid
options are "update" to send a message, "friends" to see
your friends timeline, "public" to track public timeline,
"replies" to see replies to your messages and "user" to
see a specific user's timeline.
--user screenname
Specify the user you want to see his/her messages while
the action is "user".
host
The host you want to use to send the message to. Valid
options is "twitter" or "custom" to specify your own
server.
proxy
The http proxy needed to send data out to the
Internet.
logfile
The logfile name for bti to write what happened to. This
file is relative to the user's home directory. If this file is not specified
here or on the command line, no logging will be written to the disk.
replyto
The status ID to which all notices will be linked to.
There is no sane reason for a need to have this set in a config
file. One such reason is to have all your messages as children to a
particular status.
shrink-urls
Setting this variable to 'true' or 'yes' will enable the
URL shrinking feature. This is equivalent to using the --shrink-urls
option.
verbose
Setting this variable to 'true' or 'yes' will enable the
verbose mode.
There is an example config file in
/usr/share/doc/bti/examples/bti.example that shows the structure of the
file.
Configuration options have the following priority:
command line option
config file option
environment variables
For example, command line options always override any config file
option, or any environment variables. Unless a config file is specified by
the command line. At that point, the new config file is read, and any
previous options set by a command line option, would be overridden.
Written by Greg Kroah-Hartman <<greg@kroah.com>> and
Amir Mohammad Saied <<amirsaied@gmail.com>>.