hayato1980-clitwitter 0.1.0 → 0.1.1
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/Rakefile +1 -1
- data/VERSION +1 -1
- data/bin/clitwit-get +14 -24
- data/bin/clitwit-post +9 -7
- data/clitwitter.gemspec +6 -6
- data/lib/clitwitter/twit.rb +69 -26
- metadata +3 -3
data/Rakefile
CHANGED
@@ -13,7 +13,7 @@ begin
|
|
13
13
|
gem.add_development_dependency "rspec"
|
14
14
|
gem.add_development_dependency "pit"
|
15
15
|
gem.add_development_dependency "twitter"
|
16
|
-
gem.add_development_dependency "
|
16
|
+
gem.add_development_dependency "highline"
|
17
17
|
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
18
18
|
end
|
19
19
|
rescue LoadError
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.1
|
data/bin/clitwit-get
CHANGED
@@ -1,36 +1,26 @@
|
|
1
|
+
#!/bin/env ruby
|
1
2
|
require 'rubygems'
|
2
3
|
require 'clitwitter'
|
3
|
-
|
4
|
+
require 'highline'
|
4
5
|
require 'cgi'
|
5
6
|
|
6
|
-
|
7
|
-
|
8
|
-
|
7
|
+
HighLine.color_scheme = HighLine::ColorScheme.new do |cs|
|
8
|
+
cs[:username] = [ :red ]
|
9
|
+
cs[:close_friends] = [ :yellow ]
|
10
|
+
cs[:reply] = [:green]
|
9
11
|
end
|
10
12
|
|
11
|
-
|
12
|
-
|
13
|
-
class Color
|
14
|
-
class << self
|
15
|
-
include Term::ANSIColor
|
16
|
-
end
|
17
|
-
end
|
13
|
+
hl = HighLine.new
|
18
14
|
|
19
15
|
twit = ::Clitwitter::Twitter.new
|
20
16
|
loop do
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
timeline = []
|
29
|
-
end
|
30
|
-
timeline.each do |s|
|
31
|
-
username = s.user.name.red
|
32
|
-
username = s.user.name.yellow if twit.close_friends.include? s.user.screen_name
|
33
|
-
text = s.text.gsub(/(@[\w]+)/, Color.green { '\1' } )
|
17
|
+
twit.friends_timeline.each do |s|
|
18
|
+
if twit.close_friends.include? s.user.screen_name
|
19
|
+
username = hl.color(s.user.name , :close_friends )
|
20
|
+
else
|
21
|
+
username = hl.color(s.user.name , :username )
|
22
|
+
end
|
23
|
+
text = s.text.gsub(/(@[\w]+)/, hl.color('\1',:reply) )
|
34
24
|
text = CGI.unescapeHTML(text)
|
35
25
|
puts "-- #{username} : #{text}"
|
36
26
|
end
|
data/bin/clitwit-post
CHANGED
@@ -1,23 +1,25 @@
|
|
1
|
+
#!/bin/env ruby
|
2
|
+
|
1
3
|
require 'rubygems'
|
2
4
|
require 'clitwitter'
|
3
5
|
require 'optparse'
|
4
6
|
|
5
7
|
message = nil
|
6
|
-
OptionParser.new
|
7
|
-
opts.on("--mail")
|
8
|
+
OptionParser.new do |opts|
|
9
|
+
opts.on("--mail") do |v|
|
8
10
|
require 'tmail'
|
9
11
|
message = Proc.new do
|
10
12
|
stdin = STDIN.readlines.join
|
11
13
|
mail = TMail::Mail.parse stdin
|
12
14
|
mail.body
|
13
15
|
end
|
14
|
-
|
16
|
+
end
|
15
17
|
|
16
|
-
opts.on("--message MESSAGE")
|
18
|
+
opts.on("--message MESSAGE") do |v|
|
17
19
|
message = Proc.new { v }
|
18
|
-
|
20
|
+
end
|
19
21
|
opts.parse!(ARGV)
|
20
|
-
|
22
|
+
end
|
21
23
|
|
22
|
-
Clitwitter::Twit.new.post message.call
|
24
|
+
::Clitwitter::Twit.new.post message.call
|
23
25
|
|
data/clitwitter.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{clitwitter}
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Hayato"]
|
12
|
-
s.date = %q{2009-08-
|
12
|
+
s.date = %q{2009-08-15}
|
13
13
|
s.description = %q{command line twitter client}
|
14
14
|
s.email = %q{haya10.ito+github@gmail.com}
|
15
15
|
s.executables = ["clitwit-get", "clitwit-post"]
|
@@ -37,7 +37,7 @@ Gem::Specification.new do |s|
|
|
37
37
|
s.homepage = %q{http://github.com/hayato1980/ruby-clitwitter}
|
38
38
|
s.rdoc_options = ["--charset=UTF-8"]
|
39
39
|
s.require_paths = ["lib"]
|
40
|
-
s.rubygems_version = %q{1.3.
|
40
|
+
s.rubygems_version = %q{1.3.5}
|
41
41
|
s.summary = %q{command line twitter client}
|
42
42
|
s.test_files = [
|
43
43
|
"spec/ruby-clitwitter_spec.rb",
|
@@ -52,17 +52,17 @@ Gem::Specification.new do |s|
|
|
52
52
|
s.add_development_dependency(%q<rspec>, [">= 0"])
|
53
53
|
s.add_development_dependency(%q<pit>, [">= 0"])
|
54
54
|
s.add_development_dependency(%q<twitter>, [">= 0"])
|
55
|
-
s.add_development_dependency(%q<
|
55
|
+
s.add_development_dependency(%q<highline>, [">= 0"])
|
56
56
|
else
|
57
57
|
s.add_dependency(%q<rspec>, [">= 0"])
|
58
58
|
s.add_dependency(%q<pit>, [">= 0"])
|
59
59
|
s.add_dependency(%q<twitter>, [">= 0"])
|
60
|
-
s.add_dependency(%q<
|
60
|
+
s.add_dependency(%q<highline>, [">= 0"])
|
61
61
|
end
|
62
62
|
else
|
63
63
|
s.add_dependency(%q<rspec>, [">= 0"])
|
64
64
|
s.add_dependency(%q<pit>, [">= 0"])
|
65
65
|
s.add_dependency(%q<twitter>, [">= 0"])
|
66
|
-
s.add_dependency(%q<
|
66
|
+
s.add_dependency(%q<highline>, [">= 0"])
|
67
67
|
end
|
68
68
|
end
|
data/lib/clitwitter/twit.rb
CHANGED
@@ -1,44 +1,87 @@
|
|
1
1
|
require 'rubygems'
|
2
2
|
require 'twitter'
|
3
3
|
require 'pit'
|
4
|
+
require 'highline'
|
4
5
|
|
5
6
|
module Clitwitter
|
6
|
-
class Twitter
|
7
|
-
|
7
|
+
class Twitter
|
8
|
+
attr_accessor :message
|
8
9
|
|
9
|
-
|
10
|
-
|
10
|
+
def initialize
|
11
|
+
@tw = Pit.get("twitter.com")
|
11
12
|
|
12
|
-
|
13
|
-
|
14
|
-
|
13
|
+
if ENV.include?('HTTP_PROXY')
|
14
|
+
host,port= ENV['HTTP_PROXY'].sub(/^http:\/\//,"").split /:/
|
15
|
+
::Twitter::HTTPAuth.http_proxy( host, port)
|
16
|
+
end
|
17
|
+
|
18
|
+
authorize
|
15
19
|
end
|
16
20
|
|
17
|
-
|
18
|
-
|
19
|
-
|
21
|
+
def post message
|
22
|
+
begin
|
23
|
+
@twitter.update(message)
|
24
|
+
rescue ::Twitter::Unavailable
|
25
|
+
warn "Twitter Service Unavailable #{Time.now}"
|
26
|
+
retry
|
27
|
+
rescue ::Timeout::Error
|
28
|
+
warn "Twitter Timeout #{Time.now}"
|
29
|
+
retry
|
30
|
+
rescue ::Twitter::Unauthorized
|
31
|
+
reenterAuth
|
32
|
+
authorize
|
33
|
+
retry
|
34
|
+
end
|
35
|
+
end
|
20
36
|
|
21
|
-
|
22
|
-
|
23
|
-
end
|
37
|
+
def friends_timeline(query={})
|
38
|
+
query[:since_id] = @last_id if @last_id
|
24
39
|
|
25
|
-
|
26
|
-
|
27
|
-
|
40
|
+
begin
|
41
|
+
result = @twitter.friends_timeline(query).reverse
|
42
|
+
rescue ::Twitter::Unavailable
|
43
|
+
warn "Twitter Service Unavailable #{Time.now}"
|
44
|
+
result = []
|
45
|
+
rescue ::Timeout::Error
|
46
|
+
warn "Twitter Timeout #{Time.now}"
|
47
|
+
result = []
|
48
|
+
rescue ::Twitter::Unauthorized
|
49
|
+
reenterAuth
|
50
|
+
authorize
|
51
|
+
retry
|
52
|
+
end
|
28
53
|
|
29
|
-
|
54
|
+
@last_id = result.last.id unless result.empty?
|
30
55
|
|
31
|
-
|
32
|
-
|
56
|
+
result
|
57
|
+
end
|
33
58
|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
59
|
+
def close_friends
|
60
|
+
if @tw["close_friends"]
|
61
|
+
@tw["close_friends"]
|
62
|
+
else
|
63
|
+
{}
|
64
|
+
end
|
39
65
|
end
|
40
|
-
end
|
41
66
|
|
42
|
-
|
67
|
+
private
|
68
|
+
|
69
|
+
def reenterAuth
|
70
|
+
::HighLine.track_eof = false
|
71
|
+
puts "Enter Twitter Account"
|
72
|
+
@tw["username"] = ::HighLine.new.ask('username:') do |q|
|
73
|
+
q.default = @tw["username"]
|
74
|
+
end
|
75
|
+
@tw["password"] = ::HighLine.new.ask('password:') do |q|
|
76
|
+
q.echo = '*'
|
77
|
+
end
|
78
|
+
Pit.set("twitter.com",:data => @tw)
|
79
|
+
end
|
80
|
+
|
81
|
+
def authorize
|
82
|
+
client = ::Twitter::HTTPAuth.new(@tw["username"], @tw["password"])
|
83
|
+
@twitter = ::Twitter::Base.new(client)
|
84
|
+
end
|
85
|
+
end
|
43
86
|
|
44
87
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hayato1980-clitwitter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hayato
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-08-
|
12
|
+
date: 2009-08-15 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -43,7 +43,7 @@ dependencies:
|
|
43
43
|
version: "0"
|
44
44
|
version:
|
45
45
|
- !ruby/object:Gem::Dependency
|
46
|
-
name:
|
46
|
+
name: highline
|
47
47
|
type: :development
|
48
48
|
version_requirement:
|
49
49
|
version_requirements: !ruby/object:Gem::Requirement
|