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 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 "term-ansicolor"
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.0
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
- require 'term/ansicolor'
7
- class String
8
- include Term::ANSIColor
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
- include Term::ANSIColor
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
- begin
22
- timeline = twit.friends_timeline({})
23
- rescue ::Twitter::Unavailable
24
- puts "Twitter Service Unavailable #{Time.now}"
25
- timeline = []
26
- rescue ::Timeout::Error
27
- puts "Twitter Timeout #{Time.now}"
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 {|opts|
7
- opts.on("--mail") {|v|
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") {|v|
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.0"
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-14}
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.4}
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<term-ansicolor>, [">= 0"])
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<term-ansicolor>, [">= 0"])
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<term-ansicolor>, [">= 0"])
66
+ s.add_dependency(%q<highline>, [">= 0"])
67
67
  end
68
68
  end
@@ -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
- attr_accessor :message
7
+ class Twitter
8
+ attr_accessor :message
8
9
 
9
- def initialize
10
- @tw = Pit.get("twitter.com")
10
+ def initialize
11
+ @tw = Pit.get("twitter.com")
11
12
 
12
- if ENV.include?('HTTP_PROXY')
13
- host,port= ENV['HTTP_PROXY'].sub(/^http:\/\//,"").split /:/
14
- ::Twitter::HTTPAuth.http_proxy( host, port)
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
- client = ::Twitter::HTTPAuth.new(@tw["username"], @tw["password"])
18
- @twitter = ::Twitter::Base.new(client)
19
- end
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
- def post message
22
- @twitter.update(message)
23
- end
37
+ def friends_timeline(query={})
38
+ query[:since_id] = @last_id if @last_id
24
39
 
25
- def friends_timeline query
26
- query[:since_id] = @last_id if @last_id
27
- result = @twitter.friends_timeline(query).reverse
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
- @last_id = result.last.id unless result.empty?
54
+ @last_id = result.last.id unless result.empty?
30
55
 
31
- result
32
- end
56
+ result
57
+ end
33
58
 
34
- def close_friends
35
- if @tw["close_friends"]
36
- @tw["close_friends"]
37
- else
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
- end
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.0
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-14 00:00:00 -07:00
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: term-ansicolor
46
+ name: highline
47
47
  type: :development
48
48
  version_requirement:
49
49
  version_requirements: !ruby/object:Gem::Requirement