hayato1980-clitwitter 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
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