tit 2.1.5 → 2.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/ChangeLog.markdown +29 -1
- data/VERSION.yml +1 -1
- data/bin/tit +11 -0
- data/lib/tit.rb +16 -5
- data/tit.gemspec +2 -2
- metadata +2 -2
data/ChangeLog.markdown
CHANGED
|
@@ -1,7 +1,35 @@
|
|
|
1
|
-
# tit 2.1.
|
|
1
|
+
# tit 2.1.7 2011-09-19
|
|
2
|
+
|
|
3
|
+
*
|
|
4
|
+
|
|
5
|
+
# tit 2.1.6 2011-09-19
|
|
2
6
|
|
|
3
7
|
*
|
|
4
8
|
|
|
9
|
+
# tit 2.1.6 2011-09-19
|
|
10
|
+
|
|
11
|
+
*
|
|
12
|
+
|
|
13
|
+
# tit 2.1.6 2011-09-19
|
|
14
|
+
|
|
15
|
+
*
|
|
16
|
+
|
|
17
|
+
# tit 2.1.6 2011-09-19
|
|
18
|
+
|
|
19
|
+
*
|
|
20
|
+
|
|
21
|
+
# tit 2.1.6 2011-09-19
|
|
22
|
+
|
|
23
|
+
*
|
|
24
|
+
|
|
25
|
+
# tit 2.1.6 2011-09-19
|
|
26
|
+
|
|
27
|
+
* added preference as to whether t.co urls should be replaced with the expanded urls
|
|
28
|
+
|
|
29
|
+
# tit 2.1.5 2011-09-12
|
|
30
|
+
|
|
31
|
+
* some bug fixes and code restructuring
|
|
32
|
+
|
|
5
33
|
# tit 2.1.0 2011-09-10
|
|
6
34
|
|
|
7
35
|
* got direct messaging working -- requires reauthorization
|
data/VERSION.yml
CHANGED
data/bin/tit
CHANGED
|
@@ -26,14 +26,17 @@ def main
|
|
|
26
26
|
options[:action] = :public
|
|
27
27
|
unchanged = false
|
|
28
28
|
end
|
|
29
|
+
|
|
29
30
|
opts.on("-H", "--home", "Show home timeline (default)") do
|
|
30
31
|
options[:action] = :home
|
|
31
32
|
unchanged = false
|
|
32
33
|
end
|
|
34
|
+
|
|
33
35
|
opts.on("-m", "--mentions", "Show mentions timeline") do
|
|
34
36
|
options[:action] = :mentions
|
|
35
37
|
unchanged = false
|
|
36
38
|
end
|
|
39
|
+
|
|
37
40
|
opts.on("-u", "--user USERNAME",
|
|
38
41
|
"Show a particular user's timeline") do |user|
|
|
39
42
|
unchanged = false
|
|
@@ -41,6 +44,7 @@ def main
|
|
|
41
44
|
options[:payload] ||= {}
|
|
42
45
|
options[:payload]["user"] = user
|
|
43
46
|
end
|
|
47
|
+
|
|
44
48
|
opts.on("-d", "--dm [USERNAME]", "Read direct messages. Send a direct message if USERNAME is set and -t or --tweet accompanies it") do |user|
|
|
45
49
|
unchanged = false
|
|
46
50
|
if not user.nil?
|
|
@@ -51,6 +55,7 @@ def main
|
|
|
51
55
|
options[:action] = :direct_messages
|
|
52
56
|
end
|
|
53
57
|
end
|
|
58
|
+
|
|
54
59
|
opts.on("-t", "--tweet [STATUS]", "Update status (required when using -G)") do |status|
|
|
55
60
|
unchanged = false
|
|
56
61
|
if not options[:action].nil? and options[:action].eql?(:new_direct_message)
|
|
@@ -61,6 +66,7 @@ def main
|
|
|
61
66
|
options[:payload]["status"] = status
|
|
62
67
|
end
|
|
63
68
|
end
|
|
69
|
+
|
|
64
70
|
opts.on("--pin PIN", ("Set auth pin if this is your first time playing " +
|
|
65
71
|
"with this tit")) do |pin|
|
|
66
72
|
unchanged = false
|
|
@@ -115,6 +121,11 @@ def main
|
|
|
115
121
|
tit.update_count(count)
|
|
116
122
|
end
|
|
117
123
|
|
|
124
|
+
opts.on_tail("-o", "--tco TRUE/FALSE", "Tells tit whether to keep the t.co urls") do |tco|
|
|
125
|
+
unchanged = false
|
|
126
|
+
tit.update_tco(tco)
|
|
127
|
+
end
|
|
128
|
+
|
|
118
129
|
opts.on_tail("-h", "--help", "Show this message") do
|
|
119
130
|
unchanged = false
|
|
120
131
|
puts opts
|
data/lib/tit.rb
CHANGED
|
@@ -91,7 +91,7 @@ end
|
|
|
91
91
|
Why are you reading the documentation, you cunt?
|
|
92
92
|
=end
|
|
93
93
|
class Tit
|
|
94
|
-
VERSION = [2, 1,
|
|
94
|
+
VERSION = [2, 1, 7]
|
|
95
95
|
|
|
96
96
|
RCFILE = File.join(ENV["HOME"], ".titrc")
|
|
97
97
|
RTFILE = File.join(ENV["HOME"], ".titrt")
|
|
@@ -136,7 +136,7 @@ class Tit
|
|
|
136
136
|
YAML.dump(request_token.params, rt)
|
|
137
137
|
end
|
|
138
138
|
File.open(RCFILE, "w") do |rc|
|
|
139
|
-
YAML.dump({:count => 10}, rc)
|
|
139
|
+
YAML.dump({:count => 10, :tco => true}, rc)
|
|
140
140
|
end
|
|
141
141
|
tuts "Please visit '#{request_token.authorize_url}'."
|
|
142
142
|
tuts "When you finish, provide your pin with `tit --pin PIN'"
|
|
@@ -180,16 +180,19 @@ class Tit
|
|
|
180
180
|
end
|
|
181
181
|
api_endpoint.concat("&include_entities=true")
|
|
182
182
|
|
|
183
|
+
# I'll use this to decode HTML entities.
|
|
183
184
|
coder = HTMLEntities.new
|
|
184
185
|
|
|
185
186
|
# Parse XML
|
|
186
187
|
xmlbody = @access_token.get(api_endpoint).body
|
|
188
|
+
|
|
187
189
|
# Errors
|
|
188
190
|
Nokogiri.XML(xmlbody).xpath("//errors").map do |xml|
|
|
189
191
|
if xml.at_xpath("./error").content == "This application is not allowed to access or delete your direct messages"
|
|
190
192
|
abort("Your OAuth key is not authorized for direct messaging.\nDelete #{TITAT} and run tit without arguments to reauthorize.")
|
|
191
193
|
end
|
|
192
194
|
end
|
|
195
|
+
|
|
193
196
|
# no errors - get tits
|
|
194
197
|
if action != :direct_messages
|
|
195
198
|
Nokogiri.XML(xmlbody).xpath("//status").map do |xml|
|
|
@@ -199,8 +202,8 @@ class Tit
|
|
|
199
202
|
:text => xml.xpath("./text").map do |n|
|
|
200
203
|
txt = coder.decode(n.content)
|
|
201
204
|
if not xml.xpath("./entities/urls").nil?
|
|
202
|
-
xml.xpath("./entities/urls/url").map do |url|
|
|
203
|
-
txt.replace_with_expanded_url!(url.xpath("./expanded_url").map { |expurl| expurl.content })
|
|
205
|
+
xml.xpath("./entities/urls/url").map do |url|
|
|
206
|
+
txt.replace_with_expanded_url!(url.xpath("./expanded_url").map { |expurl| expurl.content }) unless @prefs[:tco].eql?("TRUE")
|
|
204
207
|
end
|
|
205
208
|
end
|
|
206
209
|
txt
|
|
@@ -256,7 +259,6 @@ class Tit
|
|
|
256
259
|
end
|
|
257
260
|
|
|
258
261
|
response = @access_token.post(URLS[:new_direct_message], payload)
|
|
259
|
-
puts response
|
|
260
262
|
|
|
261
263
|
# Check the response for errors
|
|
262
264
|
Nokogiri.XML(response).xpath("//hash").map do |xml|
|
|
@@ -340,6 +342,15 @@ class Tit
|
|
|
340
342
|
end
|
|
341
343
|
exit(0)
|
|
342
344
|
end
|
|
345
|
+
|
|
346
|
+
def update_tco(tco)
|
|
347
|
+
@prefs[:tco] = tco
|
|
348
|
+
@prefs["tco"] = tco
|
|
349
|
+
File.open(RCFILE, "w") do |rc|
|
|
350
|
+
YAML.dump(@prefs, rc)
|
|
351
|
+
end
|
|
352
|
+
exit(0)
|
|
353
|
+
end
|
|
343
354
|
|
|
344
355
|
def tuts(*strs)
|
|
345
356
|
strs.each { |s| puts s.to_s.wrapped(@cols) }
|
data/tit.gemspec
CHANGED
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
|
|
6
6
|
Gem::Specification.new do |s|
|
|
7
7
|
s.name = %q{tit}
|
|
8
|
-
s.version = "2.1.
|
|
8
|
+
s.version = "2.1.7"
|
|
9
9
|
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
11
11
|
s.authors = ["Leif Walsh", "Parker Moore"]
|
|
12
|
-
s.date = %q{
|
|
12
|
+
s.date = %q{2011-09-19}
|
|
13
13
|
s.default_executable = %q{tit}
|
|
14
14
|
s.description = %q{a stupid fucking twitter client}
|
|
15
15
|
s.email = [%q{leif.walsh@gmail.com}, %q{parkrmoore@gmail.com}]
|
metadata
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: tit
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease:
|
|
5
|
-
version: 2.1.
|
|
5
|
+
version: 2.1.7
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
8
8
|
- Leif Walsh
|
|
@@ -11,7 +11,7 @@ autorequire:
|
|
|
11
11
|
bindir: bin
|
|
12
12
|
cert_chain: []
|
|
13
13
|
|
|
14
|
-
date:
|
|
14
|
+
date: 2011-09-19 00:00:00 Z
|
|
15
15
|
dependencies:
|
|
16
16
|
- !ruby/object:Gem::Dependency
|
|
17
17
|
name: nokogiri
|