twail 0.1.8 → 0.1.9
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/twail.rb +31 -15
- data/twail.gemspec +1 -1
- metadata +2 -2
data/lib/twail.rb
CHANGED
@@ -9,8 +9,8 @@ require 'optparse'
|
|
9
9
|
|
10
10
|
# TODO DRY this code up!
|
11
11
|
|
12
|
-
TIMELINES = %w(
|
13
|
-
SPECIAL = %w(
|
12
|
+
TIMELINES = %w( home user mentions)
|
13
|
+
SPECIAL = %w(retweets_of_me)
|
14
14
|
|
15
15
|
if %w(-h --help).include?(ARGV.first)
|
16
16
|
puts <<END
|
@@ -30,20 +30,16 @@ Usage: twail [timeline]
|
|
30
30
|
|
31
31
|
[timeline] can be any of these:
|
32
32
|
|
33
|
-
public
|
34
33
|
home
|
35
|
-
friends
|
36
34
|
user
|
37
35
|
mentions
|
38
|
-
retweeted_by_me
|
39
|
-
retweeted_to_me
|
40
36
|
retweets_of_me
|
41
37
|
|
42
38
|
"home" is the default.
|
43
39
|
|
44
40
|
You can use these abbreviations:
|
45
41
|
|
46
|
-
|
42
|
+
h u m r
|
47
43
|
|
48
44
|
twail will perform a Twitter search if you use
|
49
45
|
|
@@ -99,18 +95,38 @@ if ARGV.first =~ /^s/ # search
|
|
99
95
|
|
100
96
|
total_width = `tput cols`.to_i
|
101
97
|
text_width = (total_width - 44)
|
98
|
+
network = true
|
102
99
|
|
103
100
|
while query
|
104
101
|
begin
|
105
|
-
url = "
|
106
|
-
|
107
|
-
|
108
|
-
|
102
|
+
url = "/1.1/search/tweets.json#{query}"
|
103
|
+
raw = begin
|
104
|
+
Twurl::CLI.output = StringIO.new
|
105
|
+
Twurl::CLI.run([url])
|
106
|
+
if network == false
|
107
|
+
network = true
|
108
|
+
$stderr.print(" The network is back up!\n")
|
109
|
+
end
|
110
|
+
Twurl::CLI.output.read
|
111
|
+
Twurl::CLI.output.rewind
|
112
|
+
Twurl::CLI.output.read
|
113
|
+
rescue SocketError
|
114
|
+
if network
|
115
|
+
$stderr.print("The network seems to be down.")
|
116
|
+
else
|
117
|
+
$stderr.print('.')
|
118
|
+
end
|
119
|
+
network = false
|
120
|
+
sleep 20
|
121
|
+
next
|
122
|
+
end
|
123
|
+
res = JSON.parse(raw)
|
124
|
+
res['statuses'].each do |x|
|
109
125
|
time = Time.parse(x['created_at']).localtime
|
110
126
|
text = x['text'].gsub(/\n/, ' ')
|
111
127
|
text += " #{x['id']}" if options[:tweet_ids]
|
112
128
|
textlines = options[:wrap] ? text.wrap(text_width).split(/\n/) : [text]
|
113
|
-
puts "%s | %s | %s" % [time.to_s.gsub(/\s\S+$/,''), x['
|
129
|
+
puts "%s | %s | %s" % [time.to_s.gsub(/\s\S+$/,''), x['user']['screen_name'].rjust(18), textlines.shift]
|
114
130
|
textlines.each do |line|
|
115
131
|
puts("%s | %s" % [''.rjust(40), line])
|
116
132
|
end
|
@@ -141,11 +157,11 @@ puts "Logging #{timeline} timeline at #{Time.now}"
|
|
141
157
|
url = case timeline
|
142
158
|
when 'retweets_of_me'
|
143
159
|
# This doesn't seem to do anything different; figure out later
|
144
|
-
"/1/statuses/#{timeline}.json?include_entities=true"
|
160
|
+
"/1.1/statuses/#{timeline}.json?include_entities=true"
|
145
161
|
when *SPECIAL
|
146
|
-
"/1/statuses/#{timeline}.json"
|
162
|
+
"/1.1/statuses/#{timeline}.json"
|
147
163
|
else
|
148
|
-
"/1/statuses/#{timeline}_timeline.json"
|
164
|
+
"/1.1/statuses/#{timeline}_timeline.json"
|
149
165
|
end
|
150
166
|
|
151
167
|
|
data/twail.gemspec
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: twail
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.9
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2013-06-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: twurl
|