t 0.7.0 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -2,7 +2,8 @@
2
2
  ### A command-line power tool for Twitter.
3
3
 
4
4
  The CLI attempts to mimic the [Twitter SMS commands][sms] wherever possible,
5
- however it offers many more commands than are available via SMS.
5
+ however it offers vastly more commands and capabilities than are available via
6
+ SMS.
6
7
 
7
8
  [travis]: http://travis-ci.org/sferik/t
8
9
  [gemnasium]: https://gemnasium.com/sferik/t
@@ -25,9 +26,10 @@ secret, which you can use to authorize your Twitter account.
25
26
 
26
27
  t authorize -c YOUR_CONSUMER_KEY -s YOUR_CONSUMER_SECRET
27
28
 
28
- This will open a new browser window where you can authenticate to Twitter and
29
- then enter the returned PIN back into the terminal. Assuming that works,
30
- you'll be authorized to use the CLI.
29
+ This will direct you to a URL where you can authenticate to Twitter and then
30
+ enter the returned PIN back into the terminal. Assuming that works, you'll be
31
+ authorized to use `t` as that user. To authorize multiple accounts, simply
32
+ repeat the last step while signed in to Twitter as a different user.
31
33
 
32
34
  You can see a list of all the accounts you've authorized.
33
35
 
@@ -37,15 +39,18 @@ You can see a list of all the accounts you've authorized.
37
39
  UDfNTpOz5ZDG4a6w7dIWj
38
40
  uuP7Xbl2mEfGMiDu1uIyFN
39
41
  gem
40
- thG9EfWoADtIr6NjbL9ON (default)
42
+ thG9EfWoADtIr6NjbL9ON (active)
41
43
 
42
- Notice that one account is marked as the default. To change the default use the
43
- `set` subcommand, passing either just the username, if it's unambiguous, or the
44
- username and consumer key pair, like so:
44
+ Notice that one account is marked as the active. To change the active account
45
+ use the `set` subcommand, passing either just the username, if it's
46
+ unambiguous, or the username and consumer key pair, like so:
45
47
 
46
- t set default sferik UDfNTpOz5ZDG4a6w7dIWj
48
+ t set active sferik UDfNTpOz5ZDG4a6w7dIWj
47
49
 
48
- Account information is stored in the YAML-formatted file `~/.trc`.
50
+ Account information is stored in the YAML-formatted file `~/.trc`. **Note**:
51
+ Anyone with access to this file can masquerade as you on Twitter, so it's
52
+ important to keep it secure, just as you would treat your SSH private key. For
53
+ this reason, the file is hidden and has the permission bits set to 0600.
49
54
 
50
55
  ## <a name="examples"></a>Usage Examples
51
56
  Typing `t help` will give you a list of all the available commands. You can
@@ -58,7 +63,8 @@ type `t help TASK` to get help for a specific command.
58
63
 
59
64
  **Note**: If your tweet includes special characters (e.g. `!`), make sure to
60
65
  wrap it in single quotes instead of double quotes, so those characters are not
61
- interpreted by your shell.
66
+ interpreted by your shell. However, if you use single quotes, your Tweet can't
67
+ contain any apostrophes.
62
68
 
63
69
  ### <a name="stats"></a>Retrieve stats about users
64
70
  t users -l @sferik @gem
@@ -66,31 +72,35 @@ interpreted by your shell.
66
72
  ### <a name="follow"></a>Follow users
67
73
  t follow @sferik @gem
68
74
 
69
- ### <a name="does-follow"></a>Does one user follow another user?
75
+ ### <a name="does-follow"></a>Find out if one user follows another
70
76
  t does_follow @ev @sferik
71
77
 
72
- **Note**: When this command returns false, `t` exits with a non-zero exit code,
73
- which which allows you to execute conditional commands, for example:
78
+ **Note**: If the first user doesn't follow the second, `t` will exit with a
79
+ non-zero exit code. This allows you to execute conditional commands, for
80
+ example:
74
81
 
75
82
  t does_follow @ev @sferik && t dm @ev "What's up, bro?"
76
83
 
77
- ### <a name="friends"></a>List your friends (ordered by number of followers)
84
+ ### <a name="friends"></a>List all your friends (ordered by number of followers)
78
85
  t friends -lf
79
86
 
80
- ### <a name="leaders"></a>List your leaders (people you follow who don't follow you back)
87
+ ### <a name="leaders"></a>List all your leaders (people you follow who don't follow you back)
81
88
  t leaders -lf
82
89
 
83
90
  ### <a name="unfollow"></a>Unfollow everyone you follow who doesn't follow you back
84
91
  t leaders | xargs t unfollow
85
92
 
86
- ### <a name="follow"></a>Follow back everyone who follows you
93
+ ### <a name="follow"></a>Follow everyone who follows you (who you don't already follow)
87
94
  t disciples | xargs t follow
88
95
 
89
96
  ### <a name="follow-roulette"></a>Follow roulette: randomly follow someone who follows you
90
97
  t disciples | shuf | head -1 | xargs t follow
91
98
 
99
+ ### <a name="timeline"></a>Output the last 200 tweets in your timeline to a CSV file
100
+ t timeline -n 200 --csv > timeline.csv
101
+
92
102
  ### <a name="favorite"></a>Favorite the last 10 tweets that mention you
93
- t mentions -l -n 10 | awk '{print $1}' | xargs t favorite
103
+ t mentions -n 10 -l | awk '{print $1}' | xargs t favorite
94
104
 
95
105
  ### <a name="list-create"></a>Create a list
96
106
  t list create presidents
@@ -46,9 +46,10 @@ module T
46
46
 
47
47
  check_unknown_options!
48
48
 
49
- option :host, :aliases => "-H", :type => :string, :default => DEFAULT_HOST, :desc => "Twitter API server"
50
- option :no_ssl, :aliases => "-U", :type => :boolean, :default => false, :desc => "Disable SSL"
51
- option :profile, :aliases => "-P", :type => :string, :default => File.join(File.expand_path("~"), RCFile::FILE_NAME), :desc => "Path to RC file", :banner => "FILE"
49
+ option "host", :aliases => "-H", :type => :string, :default => DEFAULT_HOST, :desc => "Twitter API server"
50
+ option "no-color", :alias => "-N", :type => :boolean, :banner => "Disable colorization in output"
51
+ option "no-ssl", :aliases => "-U", :type => :boolean, :default => false, :desc => "Disable SSL"
52
+ option "profile", :aliases => "-P", :type => :string, :default => File.join(File.expand_path("~"), RCFile::FILE_NAME), :desc => "Path to RC file", :banner => "FILE"
52
53
 
53
54
  def initialize(*)
54
55
  super
@@ -61,16 +62,16 @@ module T
61
62
  @rcfile.profiles.each do |profile|
62
63
  say profile[0]
63
64
  profile[1].keys.each do |key|
64
- say " #{key}#{@rcfile.default_profile[0] == profile[0] && @rcfile.default_profile[1] == key ? " (default)" : nil}"
65
+ say " #{key}#{@rcfile.active_profile[0] == profile[0] && @rcfile.active_profile[1] == key ? " (active)" : nil}"
65
66
  end
66
67
  end
67
68
  end
68
69
 
69
70
  desc "authorize", "Allows an application to request user authorization"
70
- method_option :consumer_key, :aliases => "-c", :required => true, :desc => "This can be found at https://dev.twitter.com/apps"
71
- method_option :consumer_secret, :aliases => "-s", :required => true, :desc => "This can be found at https://dev.twitter.com/apps"
72
- method_option :display_url, :aliases => "-d", :type => :boolean, :default => false, :desc => "Display the authorization URL instead of attempting to open it."
73
- method_option :prompt, :aliases => "-p", :type => :boolean, :default => true
71
+ method_option "consumer-key", :aliases => "-c", :required => true, :desc => "This can be found at https://dev.twitter.com/apps"
72
+ method_option "consumer-secret", :aliases => "-s", :required => true, :desc => "This can be found at https://dev.twitter.com/apps"
73
+ method_option "display-url", :aliases => "-d", :type => :boolean, :default => false, :desc => "Display the authorization URL instead of attempting to open it."
74
+ method_option "prompt", :aliases => "-p", :type => :boolean, :default => true
74
75
  def authorize
75
76
  request_token = consumer.get_request_token
76
77
  url = generate_authorize_url(request_token)
@@ -85,27 +86,27 @@ module T
85
86
  ask "Press [Enter] to open the Twitter app authorization page."
86
87
  say
87
88
  end
88
- Launchy.open(url, :dry_run => options['display_url'])
89
+ Launchy.open(url, :dry_run => options['display-url'])
89
90
  pin = ask "Paste in the supplied PIN:"
90
91
  access_token = request_token.get_access_token(:oauth_verifier => pin.chomp)
91
92
  oauth_response = access_token.get('/1/account/verify_credentials.json')
92
93
  screen_name = oauth_response.body.match(/"screen_name"\s*:\s*"(.*?)"/).captures.first
93
94
  @rcfile.path = options['profile'] if options['profile']
94
95
  @rcfile[screen_name] = {
95
- options['consumer_key'] => {
96
+ options['consumer-key'] => {
96
97
  'username' => screen_name,
97
- 'consumer_key' => options['consumer_key'],
98
- 'consumer_secret' => options['consumer_secret'],
98
+ 'consumer_key' => options['consumer-key'],
99
+ 'consumer_secret' => options['consumer-secret'],
99
100
  'token' => access_token.token,
100
101
  'secret' => access_token.secret,
101
102
  }
102
103
  }
103
- @rcfile.default_profile = {'username' => screen_name, 'consumer_key' => options['consumer_key']}
104
+ @rcfile.active_profile = {'username' => screen_name, 'consumer_key' => options['consumer-key']}
104
105
  say "Authorization successful."
105
106
  end
106
107
 
107
108
  desc "block USER [USER...]", "Block users."
108
- method_option :id, :aliases => "-i", :type => "boolean", :default => false, :desc => "Specify input as Twitter user IDs instead of screen names."
109
+ method_option "id", :aliases => "-i", :type => "boolean", :default => false, :desc => "Specify input as Twitter user IDs instead of screen names."
109
110
  def block(user, *users)
110
111
  users.unshift(user)
111
112
  if options['id']
@@ -119,16 +120,16 @@ module T
119
120
  end
120
121
  end
121
122
  number = users.length
122
- say "@#{@rcfile.default_profile[0]} blocked #{number} #{number == 1 ? 'user' : 'users'}."
123
+ say "@#{@rcfile.active_profile[0]} blocked #{number} #{number == 1 ? 'user' : 'users'}."
123
124
  say
124
125
  say "Run `#{File.basename($0)} delete block #{users.map{|user| "@#{user.screen_name}"}.join(' ')}` to unblock."
125
126
  end
126
127
 
127
128
  desc "direct_messages", "Returns the #{DEFAULT_NUM_RESULTS} most recent Direct Messages sent to you."
128
- method_option :csv, :aliases => "-c", :type => :boolean, :default => false, :desc => "Output in CSV format."
129
- method_option :long, :aliases => "-l", :type => :boolean, :default => false, :desc => "Output in long format."
130
- method_option :number, :aliases => "-n", :type => :numeric, :default => DEFAULT_NUM_RESULTS, :desc => "Limit the number of results."
131
- method_option :reverse, :aliases => "-r", :type => :boolean, :default => false, :desc => "Reverse the order of the sort."
129
+ method_option "csv", :aliases => "-c", :type => :boolean, :default => false, :desc => "Output in CSV format."
130
+ method_option "long", :aliases => "-l", :type => :boolean, :default => false, :desc => "Output in long format."
131
+ method_option "number", :aliases => "-n", :type => :numeric, :default => DEFAULT_NUM_RESULTS, :desc => "Limit the number of results."
132
+ method_option "reverse", :aliases => "-r", :type => :boolean, :default => false, :desc => "Reverse the order of the sort."
132
133
  def direct_messages
133
134
  count = options['number'] || DEFAULT_NUM_RESULTS
134
135
  direct_messages = client.direct_messages(:count => count, :include_entities => false)
@@ -157,10 +158,10 @@ module T
157
158
  map %w(directmessages dms) => :direct_messages
158
159
 
159
160
  desc "direct_messages_sent", "Returns the #{DEFAULT_NUM_RESULTS} most recent Direct Messages sent to you."
160
- method_option :csv, :aliases => "-c", :type => :boolean, :default => false, :desc => "Output in CSV format."
161
- method_option :long, :aliases => "-l", :type => :boolean, :default => false, :desc => "Output in long format."
162
- method_option :number, :aliases => "-n", :type => :numeric, :default => DEFAULT_NUM_RESULTS, :desc => "Limit the number of results."
163
- method_option :reverse, :aliases => "-r", :type => :boolean, :default => false, :desc => "Reverse the order of the sort."
161
+ method_option "csv", :aliases => "-c", :type => :boolean, :default => false, :desc => "Output in CSV format."
162
+ method_option "long", :aliases => "-l", :type => :boolean, :default => false, :desc => "Output in long format."
163
+ method_option "number", :aliases => "-n", :type => :numeric, :default => DEFAULT_NUM_RESULTS, :desc => "Limit the number of results."
164
+ method_option "reverse", :aliases => "-r", :type => :boolean, :default => false, :desc => "Reverse the order of the sort."
164
165
  def direct_messages_sent
165
166
  count = options['number'] || DEFAULT_NUM_RESULTS
166
167
  direct_messages = client.direct_messages_sent(:count => count, :include_entities => false)
@@ -189,17 +190,17 @@ module T
189
190
  map %w(directmessagessent sent_messages sentmessages sms) => :direct_messages_sent
190
191
 
191
192
  desc "disciples [USER]", "Returns the list of people who follow you but you don't follow back."
192
- method_option :csv, :aliases => "-c", :type => :boolean, :default => false, :desc => "Output in CSV format."
193
- method_option :favorites, :aliases => "-v", :type => :boolean, :default => false, :desc => "Sort by number of favorites."
194
- method_option :followers, :aliases => "-f", :type => :boolean, :default => false, :desc => "Sort by number of followers."
195
- method_option :friends, :aliases => "-e", :type => :boolean, :default => false, :desc => "Sort by number of friends."
196
- method_option :id, :aliases => "-i", :type => "boolean", :default => false, :desc => "Specify user via ID instead of screen name."
197
- method_option :listed, :aliases => "-s", :type => :boolean, :default => false, :desc => "Sort by number of list memberships."
198
- method_option :long, :aliases => "-l", :type => :boolean, :default => false, :desc => "Output in long format."
199
- method_option :posted, :aliases => "-p", :type => :boolean, :default => false, :desc => "Sort by the time when Twitter account was posted."
200
- method_option :reverse, :aliases => "-r", :type => :boolean, :default => false, :desc => "Reverse the order of the sort."
201
- method_option :tweets, :aliases => "-t", :type => :boolean, :default => false, :desc => "Sort by number of Tweets."
202
- method_option :unsorted, :aliases => "-u", :type => :boolean, :default => false, :desc => "Output is not sorted."
193
+ method_option "csv", :aliases => "-c", :type => :boolean, :default => false, :desc => "Output in CSV format."
194
+ method_option "favorites", :aliases => "-v", :type => :boolean, :default => false, :desc => "Sort by number of favorites."
195
+ method_option "followers", :aliases => "-f", :type => :boolean, :default => false, :desc => "Sort by number of followers."
196
+ method_option "friends", :aliases => "-e", :type => :boolean, :default => false, :desc => "Sort by number of friends."
197
+ method_option "id", :aliases => "-i", :type => "boolean", :default => false, :desc => "Specify user via ID instead of screen name."
198
+ method_option "listed", :aliases => "-s", :type => :boolean, :default => false, :desc => "Sort by number of list memberships."
199
+ method_option "long", :aliases => "-l", :type => :boolean, :default => false, :desc => "Output in long format."
200
+ method_option "posted", :aliases => "-p", :type => :boolean, :default => false, :desc => "Sort by the time when Twitter account was posted."
201
+ method_option "reverse", :aliases => "-r", :type => :boolean, :default => false, :desc => "Reverse the order of the sort."
202
+ method_option "tweets", :aliases => "-t", :type => :boolean, :default => false, :desc => "Sort by number of Tweets."
203
+ method_option "unsorted", :aliases => "-u", :type => :boolean, :default => false, :desc => "Output is not sorted."
203
204
  def disciples(user=nil)
204
205
  if user
205
206
  user = if options['id']
@@ -224,7 +225,7 @@ module T
224
225
  end
225
226
 
226
227
  desc "dm USER MESSAGE", "Sends that person a Direct Message."
227
- method_option :id, :aliases => "-i", :type => "boolean", :default => false, :desc => "Specify user via ID instead of screen name."
228
+ method_option "id", :aliases => "-i", :type => "boolean", :default => false, :desc => "Specify user via ID instead of screen name."
228
229
  def dm(user, message)
229
230
  user = if options['id']
230
231
  user.to_i
@@ -232,17 +233,17 @@ module T
232
233
  user.strip_ats
233
234
  end
234
235
  direct_message = client.direct_message_create(user, message, :include_entities => false)
235
- say "Direct Message sent from @#{@rcfile.default_profile[0]} to @#{direct_message.recipient.screen_name} (#{time_ago_in_words(direct_message.created_at)} ago)."
236
+ say "Direct Message sent from @#{@rcfile.active_profile[0]} to @#{direct_message.recipient.screen_name} (#{time_ago_in_words(direct_message.created_at)} ago)."
236
237
  end
237
238
  map %w(d m) => :dm
238
239
 
239
240
  desc "does_contain [USER/]LIST USER", "Find out whether a list contains a user."
240
- method_option :id, :aliases => "-i", :type => "boolean", :default => false, :desc => "Specify user via ID instead of screen name."
241
+ method_option "id", :aliases => "-i", :type => "boolean", :default => false, :desc => "Specify user via ID instead of screen name."
241
242
  def does_contain(list, user=nil)
242
243
  owner, list = list.split('/')
243
244
  if list.nil?
244
245
  list = owner
245
- owner = @rcfile.default_profile[0]
246
+ owner = @rcfile.active_profile[0]
246
247
  else
247
248
  owner = if options['id']
248
249
  client.user(owner.to_i, :include_entities => false).screen_name
@@ -251,7 +252,7 @@ module T
251
252
  end
252
253
  end
253
254
  if user.nil?
254
- user = @rcfile.default_profile[0]
255
+ user = @rcfile.active_profile[0]
255
256
  else
256
257
  user = if options['id']
257
258
  user = client.user(user.to_i, :include_entities => false).screen_name
@@ -269,7 +270,7 @@ module T
269
270
  map %w(dc doescontain) => :does_contain
270
271
 
271
272
  desc "does_follow USER [USER]", "Find out whether one user follows another."
272
- method_option :id, :aliases => "-i", :type => "boolean", :default => false, :desc => "Specify user via ID instead of screen name."
273
+ method_option "id", :aliases => "-i", :type => "boolean", :default => false, :desc => "Specify user via ID instead of screen name."
273
274
  def does_follow(user1, user2=nil)
274
275
  user1 = if options['id']
275
276
  client.user(user1.to_i, :include_entities => false).screen_name
@@ -277,7 +278,7 @@ module T
277
278
  user1.strip_ats
278
279
  end
279
280
  if user2.nil?
280
- user2 = @rcfile.default_profile[0]
281
+ user2 = @rcfile.active_profile[0]
281
282
  else
282
283
  user2 = if options['id']
283
284
  client.user(user2.to_i, :include_entities => false).screen_name
@@ -304,18 +305,18 @@ module T
304
305
  end
305
306
  end
306
307
  number = favorites.length
307
- say "@#{@rcfile.default_profile[0]} favorited #{number} #{number == 1 ? 'tweet' : 'tweets'}."
308
+ say "@#{@rcfile.active_profile[0]} favorited #{number} #{number == 1 ? 'tweet' : 'tweets'}."
308
309
  say
309
310
  say "Run `#{File.basename($0)} delete favorite #{status_ids.join(' ')}` to unfavorite."
310
311
  end
311
312
  map %w(fave favourite) => :favorite
312
313
 
313
314
  desc "favorites [USER]", "Returns the #{DEFAULT_NUM_RESULTS} most recent Tweets you favorited."
314
- method_option :csv, :aliases => "-c", :type => :boolean, :default => false, :desc => "Output in CSV format."
315
- method_option :id, :aliases => "-i", :type => "boolean", :default => false, :desc => "Specify user via ID instead of screen name."
316
- method_option :long, :aliases => "-l", :type => :boolean, :default => false, :desc => "Output in long format."
317
- method_option :number, :aliases => "-n", :type => :numeric, :default => DEFAULT_NUM_RESULTS, :desc => "Limit the number of results."
318
- method_option :reverse, :aliases => "-r", :type => :boolean, :default => false, :desc => "Reverse the order of the sort."
315
+ method_option "csv", :aliases => "-c", :type => :boolean, :default => false, :desc => "Output in CSV format."
316
+ method_option "id", :aliases => "-i", :type => "boolean", :default => false, :desc => "Specify user via ID instead of screen name."
317
+ method_option "long", :aliases => "-l", :type => :boolean, :default => false, :desc => "Output in long format."
318
+ method_option "number", :aliases => "-n", :type => :numeric, :default => DEFAULT_NUM_RESULTS, :desc => "Limit the number of results."
319
+ method_option "reverse", :aliases => "-r", :type => :boolean, :default => false, :desc => "Reverse the order of the sort."
319
320
  def favorites(user=nil)
320
321
  if user
321
322
  user = if options['id']
@@ -331,7 +332,7 @@ module T
331
332
  map %w(faves favourites) => :favorites
332
333
 
333
334
  desc "follow USER [USER...]", "Allows you to start following users."
334
- method_option :id, :aliases => "-i", :type => "boolean", :default => false, :desc => "Specify input as Twitter user IDs instead of screen names."
335
+ method_option "id", :aliases => "-i", :type => "boolean", :default => false, :desc => "Specify input as Twitter user IDs instead of screen names."
335
336
  def follow(user, *users)
336
337
  users.unshift(user)
337
338
  if options['id']
@@ -345,23 +346,23 @@ module T
345
346
  end
346
347
  end
347
348
  number = users.length
348
- say "@#{@rcfile.default_profile[0]} is now following #{number} more #{number == 1 ? 'user' : 'users'}."
349
+ say "@#{@rcfile.active_profile[0]} is now following #{number} more #{number == 1 ? 'user' : 'users'}."
349
350
  say
350
351
  say "Run `#{File.basename($0)} unfollow #{users.map{|user| "@#{user.screen_name}"}.join(' ')}` to stop."
351
352
  end
352
353
 
353
354
  desc "followings [USER]", "Returns a list of the people you follow on Twitter."
354
- method_option :csv, :aliases => "-c", :type => :boolean, :default => false, :desc => "Output in CSV format."
355
- method_option :favorites, :aliases => "-v", :type => :boolean, :default => false, :desc => "Sort by number of favorites."
356
- method_option :followers, :aliases => "-f", :type => :boolean, :default => false, :desc => "Sort by number of followers."
357
- method_option :friends, :aliases => "-e", :type => :boolean, :default => false, :desc => "Sort by number of friends."
358
- method_option :id, :aliases => "-i", :type => "boolean", :default => false, :desc => "Specify user via ID instead of screen name."
359
- method_option :listed, :aliases => "-s", :type => :boolean, :default => false, :desc => "Sort by number of list memberships."
360
- method_option :long, :aliases => "-l", :type => :boolean, :default => false, :desc => "Output in long format."
361
- method_option :posted, :aliases => "-p", :type => :boolean, :default => false, :desc => "Sort by the time when Twitter account was posted."
362
- method_option :reverse, :aliases => "-r", :type => :boolean, :default => false, :desc => "Reverse the order of the sort."
363
- method_option :tweets, :aliases => "-t", :type => :boolean, :default => false, :desc => "Sort by number of Tweets."
364
- method_option :unsorted, :aliases => "-u", :type => :boolean, :default => false, :desc => "Output is not sorted."
355
+ method_option "csv", :aliases => "-c", :type => :boolean, :default => false, :desc => "Output in CSV format."
356
+ method_option "favorites", :aliases => "-v", :type => :boolean, :default => false, :desc => "Sort by number of favorites."
357
+ method_option "followers", :aliases => "-f", :type => :boolean, :default => false, :desc => "Sort by number of followers."
358
+ method_option "friends", :aliases => "-e", :type => :boolean, :default => false, :desc => "Sort by number of friends."
359
+ method_option "id", :aliases => "-i", :type => "boolean", :default => false, :desc => "Specify user via ID instead of screen name."
360
+ method_option "listed", :aliases => "-s", :type => :boolean, :default => false, :desc => "Sort by number of list memberships."
361
+ method_option "long", :aliases => "-l", :type => :boolean, :default => false, :desc => "Output in long format."
362
+ method_option "posted", :aliases => "-p", :type => :boolean, :default => false, :desc => "Sort by the time when Twitter account was posted."
363
+ method_option "reverse", :aliases => "-r", :type => :boolean, :default => false, :desc => "Reverse the order of the sort."
364
+ method_option "tweets", :aliases => "-t", :type => :boolean, :default => false, :desc => "Sort by number of Tweets."
365
+ method_option "unsorted", :aliases => "-u", :type => :boolean, :default => false, :desc => "Output is not sorted."
365
366
  def followings(user=nil)
366
367
  if user
367
368
  user = if options['id']
@@ -382,17 +383,17 @@ module T
382
383
  end
383
384
 
384
385
  desc "followers [USER]", "Returns a list of the people who follow you on Twitter."
385
- method_option :csv, :aliases => "-c", :type => :boolean, :default => false, :desc => "Output in CSV format."
386
- method_option :favorites, :aliases => "-v", :type => :boolean, :default => false, :desc => "Sort by number of favorites."
387
- method_option :followers, :aliases => "-f", :type => :boolean, :default => false, :desc => "Sort by number of followers."
388
- method_option :friends, :aliases => "-e", :type => :boolean, :default => false, :desc => "Sort by number of friends."
389
- method_option :id, :aliases => "-i", :type => "boolean", :default => false, :desc => "Specify user via ID instead of screen name."
390
- method_option :listed, :aliases => "-s", :type => :boolean, :default => false, :desc => "Sort by number of list memberships."
391
- method_option :long, :aliases => "-l", :type => :boolean, :default => false, :desc => "Output in long format."
392
- method_option :posted, :aliases => "-p", :type => :boolean, :default => false, :desc => "Sort by the time when Twitter account was posted."
393
- method_option :reverse, :aliases => "-r", :type => :boolean, :default => false, :desc => "Reverse the order of the sort."
394
- method_option :tweets, :aliases => "-t", :type => :boolean, :default => false, :desc => "Sort by number of Tweets."
395
- method_option :unsorted, :aliases => "-u", :type => :boolean, :default => false, :desc => "Output is not sorted."
386
+ method_option "csv", :aliases => "-c", :type => :boolean, :default => false, :desc => "Output in CSV format."
387
+ method_option "favorites", :aliases => "-v", :type => :boolean, :default => false, :desc => "Sort by number of favorites."
388
+ method_option "followers", :aliases => "-f", :type => :boolean, :default => false, :desc => "Sort by number of followers."
389
+ method_option "friends", :aliases => "-e", :type => :boolean, :default => false, :desc => "Sort by number of friends."
390
+ method_option "id", :aliases => "-i", :type => "boolean", :default => false, :desc => "Specify user via ID instead of screen name."
391
+ method_option "listed", :aliases => "-s", :type => :boolean, :default => false, :desc => "Sort by number of list memberships."
392
+ method_option "long", :aliases => "-l", :type => :boolean, :default => false, :desc => "Output in long format."
393
+ method_option "posted", :aliases => "-p", :type => :boolean, :default => false, :desc => "Sort by the time when Twitter account was posted."
394
+ method_option "reverse", :aliases => "-r", :type => :boolean, :default => false, :desc => "Reverse the order of the sort."
395
+ method_option "tweets", :aliases => "-t", :type => :boolean, :default => false, :desc => "Sort by number of Tweets."
396
+ method_option "unsorted", :aliases => "-u", :type => :boolean, :default => false, :desc => "Output is not sorted."
396
397
  def followers(user=nil)
397
398
  if user
398
399
  user = if options['id']
@@ -413,17 +414,17 @@ module T
413
414
  end
414
415
 
415
416
  desc "friends [USER]", "Returns the list of people who you follow and follow you back."
416
- method_option :csv, :aliases => "-c", :type => :boolean, :default => false, :desc => "Output in CSV format."
417
- method_option :favorites, :aliases => "-v", :type => :boolean, :default => false, :desc => "Sort by number of favorites."
418
- method_option :followers, :aliases => "-f", :type => :boolean, :default => false, :desc => "Sort by number of followers."
419
- method_option :friends, :aliases => "-e", :type => :boolean, :default => false, :desc => "Sort by number of friends."
420
- method_option :id, :aliases => "-i", :type => "boolean", :default => false, :desc => "Specify user via ID instead of screen name."
421
- method_option :listed, :aliases => "-s", :type => :boolean, :default => false, :desc => "Sort by number of list memberships."
422
- method_option :long, :aliases => "-l", :type => :boolean, :default => false, :desc => "Output in long format."
423
- method_option :posted, :aliases => "-p", :type => :boolean, :default => false, :desc => "Sort by the time when Twitter account was posted."
424
- method_option :reverse, :aliases => "-r", :type => :boolean, :default => false, :desc => "Reverse the order of the sort."
425
- method_option :tweets, :aliases => "-t", :type => :boolean, :default => false, :desc => "Sort by number of Tweets."
426
- method_option :unsorted, :aliases => "-u", :type => :boolean, :default => false, :desc => "Output is not sorted."
417
+ method_option "csv", :aliases => "-c", :type => :boolean, :default => false, :desc => "Output in CSV format."
418
+ method_option "favorites", :aliases => "-v", :type => :boolean, :default => false, :desc => "Sort by number of favorites."
419
+ method_option "followers", :aliases => "-f", :type => :boolean, :default => false, :desc => "Sort by number of followers."
420
+ method_option "friends", :aliases => "-e", :type => :boolean, :default => false, :desc => "Sort by number of friends."
421
+ method_option "id", :aliases => "-i", :type => "boolean", :default => false, :desc => "Specify user via ID instead of screen name."
422
+ method_option "listed", :aliases => "-s", :type => :boolean, :default => false, :desc => "Sort by number of list memberships."
423
+ method_option "long", :aliases => "-l", :type => :boolean, :default => false, :desc => "Output in long format."
424
+ method_option "posted", :aliases => "-p", :type => :boolean, :default => false, :desc => "Sort by the time when Twitter account was posted."
425
+ method_option "reverse", :aliases => "-r", :type => :boolean, :default => false, :desc => "Reverse the order of the sort."
426
+ method_option "tweets", :aliases => "-t", :type => :boolean, :default => false, :desc => "Sort by number of Tweets."
427
+ method_option "unsorted", :aliases => "-u", :type => :boolean, :default => false, :desc => "Output is not sorted."
427
428
  def friends(user=nil)
428
429
  if user
429
430
  user = if options['id']
@@ -448,17 +449,17 @@ module T
448
449
  end
449
450
 
450
451
  desc "leaders [USER]", "Returns the list of people who you follow but don't follow you back."
451
- method_option :csv, :aliases => "-c", :type => :boolean, :default => false, :desc => "Output in CSV format."
452
- method_option :favorites, :aliases => "-v", :type => :boolean, :default => false, :desc => "Sort by number of favorites."
453
- method_option :followers, :aliases => "-f", :type => :boolean, :default => false, :desc => "Sort by number of followers."
454
- method_option :friends, :aliases => "-e", :type => :boolean, :default => false, :desc => "Sort by number of friends."
455
- method_option :id, :aliases => "-i", :type => "boolean", :default => false, :desc => "Specify user via ID instead of screen name."
456
- method_option :listed, :aliases => "-s", :type => :boolean, :default => false, :desc => "Sort by number of list memberships."
457
- method_option :long, :aliases => "-l", :type => :boolean, :default => false, :desc => "Output in long format."
458
- method_option :posted, :aliases => "-p", :type => :boolean, :default => false, :desc => "Sort by the time when Twitter account was posted."
459
- method_option :reverse, :aliases => "-r", :type => :boolean, :default => false, :desc => "Reverse the order of the sort."
460
- method_option :tweets, :aliases => "-t", :type => :boolean, :default => false, :desc => "Sort by number of Tweets."
461
- method_option :unsorted, :aliases => "-u", :type => :boolean, :default => false, :desc => "Output is not sorted."
452
+ method_option "csv", :aliases => "-c", :type => :boolean, :default => false, :desc => "Output in CSV format."
453
+ method_option "favorites", :aliases => "-v", :type => :boolean, :default => false, :desc => "Sort by number of favorites."
454
+ method_option "followers", :aliases => "-f", :type => :boolean, :default => false, :desc => "Sort by number of followers."
455
+ method_option "friends", :aliases => "-e", :type => :boolean, :default => false, :desc => "Sort by number of friends."
456
+ method_option "id", :aliases => "-i", :type => "boolean", :default => false, :desc => "Specify user via ID instead of screen name."
457
+ method_option "listed", :aliases => "-s", :type => :boolean, :default => false, :desc => "Sort by number of list memberships."
458
+ method_option "long", :aliases => "-l", :type => :boolean, :default => false, :desc => "Output in long format."
459
+ method_option "posted", :aliases => "-p", :type => :boolean, :default => false, :desc => "Sort by the time when Twitter account was posted."
460
+ method_option "reverse", :aliases => "-r", :type => :boolean, :default => false, :desc => "Reverse the order of the sort."
461
+ method_option "tweets", :aliases => "-t", :type => :boolean, :default => false, :desc => "Sort by number of Tweets."
462
+ method_option "unsorted", :aliases => "-u", :type => :boolean, :default => false, :desc => "Output is not sorted."
462
463
  def leaders(user=nil)
463
464
  if user
464
465
  user = if options['id']
@@ -483,15 +484,15 @@ module T
483
484
  end
484
485
 
485
486
  desc "lists [USER]", "Returns the lists created by a user."
486
- method_option :csv, :aliases => "-c", :type => :boolean, :default => false, :desc => "Output in CSV format."
487
- method_option :id, :aliases => "-i", :type => "boolean", :default => false, :desc => "Specify user via ID instead of screen name."
488
- method_option :long, :aliases => "-l", :type => :boolean, :default => false, :desc => "Output in long format."
489
- method_option :members, :aliases => "-m", :type => :boolean, :default => false, :desc => "Sort by number of members."
490
- method_option :mode, :aliases => "-o", :type => :boolean, :default => false, :desc => "Sort by mode."
491
- method_option :posted, :aliases => "-p", :type => :boolean, :default => false, :desc => "Sort by the time when Twitter list was posted."
492
- method_option :reverse, :aliases => "-r", :type => :boolean, :default => false, :desc => "Reverse the order of the sort."
493
- method_option :subscribers, :aliases => "-s", :type => :boolean, :default => false, :desc => "Sort by number of subscribers."
494
- method_option :unsorted, :aliases => "-u", :type => :boolean, :default => false, :desc => "Output is not sorted."
487
+ method_option "csv", :aliases => "-c", :type => :boolean, :default => false, :desc => "Output in CSV format."
488
+ method_option "id", :aliases => "-i", :type => "boolean", :default => false, :desc => "Specify user via ID instead of screen name."
489
+ method_option "long", :aliases => "-l", :type => :boolean, :default => false, :desc => "Output in long format."
490
+ method_option "members", :aliases => "-m", :type => :boolean, :default => false, :desc => "Sort by number of members."
491
+ method_option "mode", :aliases => "-o", :type => :boolean, :default => false, :desc => "Sort by mode."
492
+ method_option "posted", :aliases => "-p", :type => :boolean, :default => false, :desc => "Sort by the time when Twitter list was posted."
493
+ method_option "reverse", :aliases => "-r", :type => :boolean, :default => false, :desc => "Reverse the order of the sort."
494
+ method_option "subscribers", :aliases => "-s", :type => :boolean, :default => false, :desc => "Sort by number of subscribers."
495
+ method_option "unsorted", :aliases => "-u", :type => :boolean, :default => false, :desc => "Output is not sorted."
495
496
  def lists(user=nil)
496
497
  if user
497
498
  user = if options['id']
@@ -507,10 +508,10 @@ module T
507
508
  end
508
509
 
509
510
  desc "mentions", "Returns the #{DEFAULT_NUM_RESULTS} most recent Tweets mentioning you."
510
- method_option :csv, :aliases => "-c", :type => :boolean, :default => false, :desc => "Output in CSV format."
511
- method_option :long, :aliases => "-l", :type => :boolean, :default => false, :desc => "Output in long format."
512
- method_option :number, :aliases => "-n", :type => :numeric, :default => DEFAULT_NUM_RESULTS, :desc => "Limit the number of results."
513
- method_option :reverse, :aliases => "-r", :type => :boolean, :default => false, :desc => "Reverse the order of the sort."
511
+ method_option "csv", :aliases => "-c", :type => :boolean, :default => false, :desc => "Output in CSV format."
512
+ method_option "long", :aliases => "-l", :type => :boolean, :default => false, :desc => "Output in long format."
513
+ method_option "number", :aliases => "-n", :type => :numeric, :default => DEFAULT_NUM_RESULTS, :desc => "Limit the number of results."
514
+ method_option "reverse", :aliases => "-r", :type => :boolean, :default => false, :desc => "Reverse the order of the sort."
514
515
  def mentions
515
516
  count = options['number'] || DEFAULT_NUM_RESULTS
516
517
  statuses = client.mentions(:count => count, :include_entities => false)
@@ -519,24 +520,24 @@ module T
519
520
  map %w(replies) => :mentions
520
521
 
521
522
  desc "open USER", "Opens that user's profile in a web browser."
522
- method_option :display_url, :aliases => "-d", :type => :boolean, :default => false, :desc => "Display the requested URL instead of attempting to open it."
523
- method_option :id, :aliases => "-i", :type => "boolean", :default => false, :desc => "Specify user via ID instead of screen name."
524
- method_option :status, :aliases => "-s", :type => :boolean, :default => false, :desc => "Specify input as a Twitter status ID instead of a screen name."
523
+ method_option "display-url", :aliases => "-d", :type => :boolean, :default => false, :desc => "Display the requested URL instead of attempting to open it."
524
+ method_option "id", :aliases => "-i", :type => "boolean", :default => false, :desc => "Specify user via ID instead of screen name."
525
+ method_option "status", :aliases => "-s", :type => :boolean, :default => false, :desc => "Specify input as a Twitter status ID instead of a screen name."
525
526
  def open(user)
526
527
  if options['id']
527
528
  user = client.user(user.to_i, :include_entities => false)
528
- Launchy.open("https://twitter.com/#{user.screen_name}", :dry_run => options['display_url'])
529
+ Launchy.open("https://twitter.com/#{user.screen_name}", :dry_run => options['display-url'])
529
530
  elsif options['status']
530
531
  status = client.status(user.to_i, :include_entities => false, :include_my_retweet => false)
531
- Launchy.open("https://twitter.com/#{status.user.screen_name}/status/#{status.id}", :dry_run => options['display_url'])
532
+ Launchy.open("https://twitter.com/#{status.user.screen_name}/status/#{status.id}", :dry_run => options['display-url'])
532
533
  else
533
- Launchy.open("https://twitter.com/#{user.strip_ats}", :dry_run => options['display_url'])
534
+ Launchy.open("https://twitter.com/#{user.strip_ats}", :dry_run => options['display-url'])
534
535
  end
535
536
  end
536
537
 
537
538
  desc "reply STATUS_ID MESSAGE", "Post your Tweet as a reply directed at another person."
538
- method_option :all, :aliases => "-a", :type => "boolean", :default => false, :desc => "Reply to all users mentioned in the Tweet."
539
- method_option :location, :aliases => "-l", :type => :boolean, :default => false
539
+ method_option "all", :aliases => "-a", :type => "boolean", :default => false, :desc => "Reply to all users mentioned in the Tweet."
540
+ method_option "location", :aliases => "-l", :type => :boolean, :default => false
540
541
  def reply(status_id, message)
541
542
  status_id = status_id.strip_commas
542
543
  status = client.status(status_id.to_i, :include_entities => false, :include_my_retweet => false)
@@ -547,13 +548,13 @@ module T
547
548
  opts = {:in_reply_to_status_id => status.id, :include_entities => false, :trim_user => true}
548
549
  opts.merge!(:lat => location.lat, :long => location.lng) if options['location']
549
550
  reply = client.update("#{users.join(' ')} #{message}", opts)
550
- say "Reply created by @#{@rcfile.default_profile[0]} to #{users.join(' ')} (#{time_ago_in_words(reply.created_at)} ago)."
551
+ say "Reply created by @#{@rcfile.active_profile[0]} to #{users.join(' ')} (#{time_ago_in_words(reply.created_at)} ago)."
551
552
  say
552
553
  say "Run `#{File.basename($0)} delete status #{reply.id}` to delete."
553
554
  end
554
555
 
555
556
  desc "report_spam USER [USER...]", "Report users for spam."
556
- method_option :id, :aliases => "-i", :type => "boolean", :default => false, :desc => "Specify input as Twitter user IDs instead of screen names."
557
+ method_option "id", :aliases => "-i", :type => "boolean", :default => false, :desc => "Specify input as Twitter user IDs instead of screen names."
557
558
  def report_spam(user, *users)
558
559
  users.unshift(user)
559
560
  if options['id']
@@ -567,7 +568,7 @@ module T
567
568
  end
568
569
  end
569
570
  number = users.length
570
- say "@#{@rcfile.default_profile[0]} reported #{number} #{number == 1 ? 'user' : 'users'}."
571
+ say "@#{@rcfile.active_profile[0]} reported #{number} #{number == 1 ? 'user' : 'users'}."
571
572
  end
572
573
  map %w(report reportspam spam) => :report_spam
573
574
 
@@ -581,18 +582,18 @@ module T
581
582
  end
582
583
  end
583
584
  number = retweets.length
584
- say "@#{@rcfile.default_profile[0]} retweeted #{number} #{number == 1 ? 'tweet' : 'tweets'}."
585
+ say "@#{@rcfile.active_profile[0]} retweeted #{number} #{number == 1 ? 'tweet' : 'tweets'}."
585
586
  say
586
587
  say "Run `#{File.basename($0)} delete status #{status_ids.join(' ')}` to undo."
587
588
  end
588
589
  map %w(rt) => :retweet
589
590
 
590
591
  desc "retweets [USER]", "Returns the #{DEFAULT_NUM_RESULTS} most recent Retweets by a user."
591
- method_option :csv, :aliases => "-c", :type => :boolean, :default => false, :desc => "Output in CSV format."
592
- method_option :id, :aliases => "-i", :type => "boolean", :default => false, :desc => "Specify user via ID instead of screen name."
593
- method_option :long, :aliases => "-l", :type => :boolean, :default => false, :desc => "Output in long format."
594
- method_option :number, :aliases => "-n", :type => :numeric, :default => DEFAULT_NUM_RESULTS, :desc => "Limit the number of results."
595
- method_option :reverse, :aliases => "-r", :type => :boolean, :default => false, :desc => "Reverse the order of the sort."
592
+ method_option "csv", :aliases => "-c", :type => :boolean, :default => false, :desc => "Output in CSV format."
593
+ method_option "id", :aliases => "-i", :type => "boolean", :default => false, :desc => "Specify user via ID instead of screen name."
594
+ method_option "long", :aliases => "-l", :type => :boolean, :default => false, :desc => "Output in long format."
595
+ method_option "number", :aliases => "-n", :type => :numeric, :default => DEFAULT_NUM_RESULTS, :desc => "Limit the number of results."
596
+ method_option "reverse", :aliases => "-r", :type => :boolean, :default => false, :desc => "Reverse the order of the sort."
596
597
  def retweets(user=nil)
597
598
  if user
598
599
  user = if options['id']
@@ -613,7 +614,7 @@ module T
613
614
  end
614
615
 
615
616
  desc "status STATUS_ID", "Retrieves detailed information about a Tweet."
616
- method_option :csv, :aliases => "-c", :type => :boolean, :default => false, :desc => "Output in CSV format."
617
+ method_option "csv", :aliases => "-c", :type => :boolean, :default => false, :desc => "Output in CSV format."
617
618
  def status(status_id)
618
619
  status_id = status_id.strip_commas
619
620
  status = client.status(status_id.to_i, :include_entities => false, :include_my_retweet => false)
@@ -648,18 +649,18 @@ module T
648
649
  end
649
650
 
650
651
  desc "suggest [USER]", "Returns a listing of Twitter users' accounts you might enjoy following."
651
- method_option :csv, :aliases => "-c", :type => :boolean, :default => false, :desc => "Output in CSV format."
652
- method_option :favorites, :aliases => "-v", :type => :boolean, :default => false, :desc => "Sort by number of favorites."
653
- method_option :followers, :aliases => "-f", :type => :boolean, :default => false, :desc => "Sort by number of followers."
654
- method_option :friends, :aliases => "-e", :type => :boolean, :default => false, :desc => "Sort by number of friends."
655
- method_option :id, :aliases => "-i", :type => "boolean", :default => false, :desc => "Specify user via ID instead of screen name."
656
- method_option :listed, :aliases => "-s", :type => :boolean, :default => false, :desc => "Sort by number of list memberships."
657
- method_option :long, :aliases => "-l", :type => :boolean, :default => false, :desc => "Output in long format."
658
- method_option :number, :aliases => "-n", :type => :numeric, :default => DEFAULT_NUM_RESULTS, :desc => "Limit the number of results."
659
- method_option :posted, :aliases => "-p", :type => :boolean, :default => false, :desc => "Sort by the time when Twitter account was posted."
660
- method_option :reverse, :aliases => "-r", :type => :boolean, :default => false, :desc => "Reverse the order of the sort."
661
- method_option :tweets, :aliases => "-t", :type => :boolean, :default => false, :desc => "Sort by number of Tweets."
662
- method_option :unsorted, :aliases => "-u", :type => :boolean, :default => false, :desc => "Output is not sorted."
652
+ method_option "csv", :aliases => "-c", :type => :boolean, :default => false, :desc => "Output in CSV format."
653
+ method_option "favorites", :aliases => "-v", :type => :boolean, :default => false, :desc => "Sort by number of favorites."
654
+ method_option "followers", :aliases => "-f", :type => :boolean, :default => false, :desc => "Sort by number of followers."
655
+ method_option "friends", :aliases => "-e", :type => :boolean, :default => false, :desc => "Sort by number of friends."
656
+ method_option "id", :aliases => "-i", :type => "boolean", :default => false, :desc => "Specify user via ID instead of screen name."
657
+ method_option "listed", :aliases => "-s", :type => :boolean, :default => false, :desc => "Sort by number of list memberships."
658
+ method_option "long", :aliases => "-l", :type => :boolean, :default => false, :desc => "Output in long format."
659
+ method_option "number", :aliases => "-n", :type => :numeric, :default => DEFAULT_NUM_RESULTS, :desc => "Limit the number of results."
660
+ method_option "posted", :aliases => "-p", :type => :boolean, :default => false, :desc => "Sort by the time when Twitter account was posted."
661
+ method_option "reverse", :aliases => "-r", :type => :boolean, :default => false, :desc => "Reverse the order of the sort."
662
+ method_option "tweets", :aliases => "-t", :type => :boolean, :default => false, :desc => "Sort by number of Tweets."
663
+ method_option "unsorted", :aliases => "-u", :type => :boolean, :default => false, :desc => "Output is not sorted."
663
664
  def suggest(user=nil)
664
665
  if user
665
666
  user = if options['id']
@@ -674,11 +675,11 @@ module T
674
675
  end
675
676
 
676
677
  desc "timeline [USER]", "Returns the #{DEFAULT_NUM_RESULTS} most recent Tweets posted by a user."
677
- method_option :csv, :aliases => "-c", :type => :boolean, :default => false, :desc => "Output in CSV format."
678
- method_option :id, :aliases => "-i", :type => "boolean", :default => false, :desc => "Specify user via ID instead of screen name."
679
- method_option :long, :aliases => "-l", :type => :boolean, :default => false, :desc => "Output in long format."
680
- method_option :number, :aliases => "-n", :type => :numeric, :default => DEFAULT_NUM_RESULTS, :desc => "Limit the number of results."
681
- method_option :reverse, :aliases => "-r", :type => :boolean, :default => false, :desc => "Reverse the order of the sort."
678
+ method_option "csv", :aliases => "-c", :type => :boolean, :default => false, :desc => "Output in CSV format."
679
+ method_option "id", :aliases => "-i", :type => "boolean", :default => false, :desc => "Specify user via ID instead of screen name."
680
+ method_option "long", :aliases => "-l", :type => :boolean, :default => false, :desc => "Output in long format."
681
+ method_option "number", :aliases => "-n", :type => :numeric, :default => DEFAULT_NUM_RESULTS, :desc => "Limit the number of results."
682
+ method_option "reverse", :aliases => "-r", :type => :boolean, :default => false, :desc => "Reverse the order of the sort."
682
683
  def timeline(user=nil)
683
684
  count = options['number'] || DEFAULT_NUM_RESULTS
684
685
  if user
@@ -696,10 +697,10 @@ module T
696
697
  map %w(tl) => :timeline
697
698
 
698
699
  desc "trends [WOEID]", "Returns the top 10 trending topics."
699
- method_option :exclude_hashtags, :aliases => "-x", :type => "boolean", :default => false, :desc => "Remove all hashtags from the trends list."
700
+ method_option "exclude-hashtags", :aliases => "-x", :type => "boolean", :default => false, :desc => "Remove all hashtags from the trends list."
700
701
  def trends(woe_id=1)
701
702
  opts = {}
702
- opts.merge!(:exclude => "hashtags") if options['exclude_hashtags']
703
+ opts.merge!(:exclude => "hashtags") if options['exclude-hashtags']
703
704
  trends = client.trends(woe_id, opts)
704
705
  if STDOUT.tty?
705
706
  print_in_columns(trends.map(&:name))
@@ -711,10 +712,10 @@ module T
711
712
  end
712
713
 
713
714
  desc "trends_locations", "Returns the locations for which Twitter has trending topic information."
714
- method_option :csv, :aliases => "-c", :type => :boolean, :default => false, :desc => "Output in CSV format."
715
- method_option :long, :aliases => "-l", :type => :boolean, :default => false, :desc => "Output in long format."
716
- method_option :reverse, :aliases => "-r", :type => :boolean, :default => false, :desc => "Reverse the order of the sort."
717
- method_option :unsorted, :aliases => "-u", :type => :boolean, :default => false, :desc => "Output is not sorted."
715
+ method_option "csv", :aliases => "-c", :type => :boolean, :default => false, :desc => "Output in CSV format."
716
+ method_option "long", :aliases => "-l", :type => :boolean, :default => false, :desc => "Output in long format."
717
+ method_option "reverse", :aliases => "-r", :type => :boolean, :default => false, :desc => "Reverse the order of the sort."
718
+ method_option "unsorted", :aliases => "-u", :type => :boolean, :default => false, :desc => "Output is not sorted."
718
719
  def trend_locations
719
720
  places = client.trend_locations
720
721
  places = places.sort_by{|places| places.name.downcase} unless options['unsorted']
@@ -746,7 +747,7 @@ module T
746
747
  map %w(locations trendlocations) => :trend_locations
747
748
 
748
749
  desc "unfollow USER [USER...]", "Allows you to stop following users."
749
- method_option :id, :aliases => "-i", :type => "boolean", :default => false, :desc => "Specify input as Twitter user IDs instead of screen names."
750
+ method_option "id", :aliases => "-i", :type => "boolean", :default => false, :desc => "Specify input as Twitter user IDs instead of screen names."
750
751
  def unfollow(user, *users)
751
752
  users.unshift(user)
752
753
  if options['id']
@@ -760,35 +761,35 @@ module T
760
761
  end
761
762
  end
762
763
  number = users.length
763
- say "@#{@rcfile.default_profile[0]} is no longer following #{number} #{number == 1 ? 'user' : 'users'}."
764
+ say "@#{@rcfile.active_profile[0]} is no longer following #{number} #{number == 1 ? 'user' : 'users'}."
764
765
  say
765
766
  say "Run `#{File.basename($0)} follow #{users.map{|user| "@#{user.screen_name}"}.join(' ')}` to follow again."
766
767
  end
767
768
 
768
769
  desc "update MESSAGE", "Post a Tweet."
769
- method_option :location, :aliases => "-l", :type => :boolean, :default => false
770
+ method_option "location", :aliases => "-l", :type => :boolean, :default => false
770
771
  def update(message)
771
772
  opts = {:include_entities => false, :trim_user => true}
772
773
  opts.merge!(:lat => location.lat, :long => location.lng) if options['location']
773
774
  status = client.update(message, opts)
774
- say "Tweet created by @#{@rcfile.default_profile[0]} (#{time_ago_in_words(status.created_at)} ago)."
775
+ say "Tweet created by @#{@rcfile.active_profile[0]} (#{time_ago_in_words(status.created_at)} ago)."
775
776
  say
776
777
  say "Run `#{File.basename($0)} delete status #{status.id}` to delete."
777
778
  end
778
779
  map %w(post tweet) => :update
779
780
 
780
781
  desc "users USER [USER...]", "Returns a list of users you specify."
781
- method_option :csv, :aliases => "-c", :type => :boolean, :default => false, :desc => "Output in CSV format."
782
- method_option :favorites, :aliases => "-v", :type => :boolean, :default => false, :desc => "Sort by number of favorites."
783
- method_option :followers, :aliases => "-f", :type => :boolean, :default => false, :desc => "Sort by number of followers."
784
- method_option :friends, :aliases => "-e", :type => :boolean, :default => false, :desc => "Sort by number of friends."
785
- method_option :id, :aliases => "-i", :type => "boolean", :default => false, :desc => "Specify input as Twitter user IDs instead of screen names."
786
- method_option :listed, :aliases => "-s", :type => :boolean, :default => false, :desc => "Sort by number of list memberships."
787
- method_option :long, :aliases => "-l", :type => :boolean, :default => false, :desc => "Output in long format."
788
- method_option :posted, :aliases => "-p", :type => :boolean, :default => false, :desc => "Sort by the time when Twitter account was posted."
789
- method_option :reverse, :aliases => "-r", :type => :boolean, :default => false, :desc => "Reverse the order of the sort."
790
- method_option :tweets, :aliases => "-t", :type => :boolean, :default => false, :desc => "Sort by number of Tweets."
791
- method_option :unsorted, :aliases => "-u", :type => :boolean, :default => false, :desc => "Output is not sorted."
782
+ method_option "csv", :aliases => "-c", :type => :boolean, :default => false, :desc => "Output in CSV format."
783
+ method_option "favorites", :aliases => "-v", :type => :boolean, :default => false, :desc => "Sort by number of favorites."
784
+ method_option "followers", :aliases => "-f", :type => :boolean, :default => false, :desc => "Sort by number of followers."
785
+ method_option "friends", :aliases => "-e", :type => :boolean, :default => false, :desc => "Sort by number of friends."
786
+ method_option "id", :aliases => "-i", :type => "boolean", :default => false, :desc => "Specify input as Twitter user IDs instead of screen names."
787
+ method_option "listed", :aliases => "-s", :type => :boolean, :default => false, :desc => "Sort by number of list memberships."
788
+ method_option "long", :aliases => "-l", :type => :boolean, :default => false, :desc => "Output in long format."
789
+ method_option "posted", :aliases => "-p", :type => :boolean, :default => false, :desc => "Sort by the time when Twitter account was posted."
790
+ method_option "reverse", :aliases => "-r", :type => :boolean, :default => false, :desc => "Reverse the order of the sort."
791
+ method_option "tweets", :aliases => "-t", :type => :boolean, :default => false, :desc => "Sort by number of Tweets."
792
+ method_option "unsorted", :aliases => "-u", :type => :boolean, :default => false, :desc => "Output is not sorted."
792
793
  def users(user, *users)
793
794
  users.unshift(user)
794
795
  if options['id']
@@ -808,8 +809,8 @@ module T
808
809
  map %w(-v --version) => :version
809
810
 
810
811
  desc "whois USER", "Retrieves profile information for the user."
811
- method_option :csv, :aliases => "-c", :type => :boolean, :default => false, :desc => "Output in CSV format."
812
- method_option :id, :aliases => "-i", :type => "boolean", :default => false, :desc => "Specify user via ID instead of screen name."
812
+ method_option "csv", :aliases => "-c", :type => :boolean, :default => false, :desc => "Output in CSV format."
813
+ method_option "id", :aliases => "-i", :type => "boolean", :default => false, :desc => "Specify user via ID instead of screen name."
813
814
  def whois(user)
814
815
  user = if options['id']
815
816
  user.to_i
@@ -859,8 +860,8 @@ module T
859
860
 
860
861
  def consumer
861
862
  OAuth::Consumer.new(
862
- options['consumer_key'],
863
- options['consumer_secret'],
863
+ options['consumer-key'],
864
+ options['consumer-secret'],
864
865
  :site => base_url
865
866
  )
866
867
  end