termitter 2010.11.16

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.
@@ -0,0 +1,3 @@
1
+ pkg/*
2
+ *.gem
3
+ .bundle
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in termitter.gemspec
4
+ gemspec
@@ -0,0 +1,2 @@
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
@@ -0,0 +1,20 @@
1
+ #!/usr/bin/env ruby
2
+ source_dir = File.join(File.dirname(__FILE__), "../src")
3
+ $LOAD_PATH.unshift source_dir
4
+
5
+ require 'termitter'
6
+
7
+ usage = <<HELP
8
+ USAGE:
9
+ $ termitter
10
+
11
+ Termitter is a client for twitter which does one thing - it prints the home
12
+ timeline to the standart output of the terminal.
13
+
14
+ HELP
15
+
16
+ consumer_key = 'woceBDOMe6MWD8OT5Z3yA'
17
+ consumer_secret ='ZcSDt7eIhqHQvakMr6IevCq4L1P7LJJqfn6f8qPI1Q'
18
+
19
+ app = Termitter.new(consumer_key, consumer_secret)
20
+ app.run
@@ -0,0 +1,67 @@
1
+ require 'rubygems'
2
+ require 'twitter_oauth'
3
+
4
+ class Termitter
5
+ VERSION = "2010.11.16"
6
+
7
+ def initialize(consumer_key, consumer_secret)
8
+ @consumer_key = consumer_key
9
+ @consumer_secret = consumer_secret
10
+ @auth_file = File.join(ENV['HOME'], ".termitter.oauth")
11
+ end
12
+
13
+ def run
14
+ client = authenticate
15
+ timeline = client.home_timeline.map do |t|
16
+ "#{t["user"]["screen_name"]}: #{t["text"].gsub("\n", " ")}"
17
+ end
18
+
19
+ puts timeline.join("\n")
20
+ rescue SocketError
21
+ $stderr.puts "Could not connect to Twitter"
22
+ exit
23
+ end
24
+
25
+ def authenticate
26
+ access_token, access_secret = File.read(@auth_file).split("\n").map{|l| l.strip}
27
+ client = TwitterOAuth::Client.new(
28
+ :consumer_key => @consumer_key,
29
+ :consumer_secret => @consumer_secret,
30
+ :token => access_token,
31
+ :secret => access_secret
32
+ )
33
+ client
34
+ rescue
35
+ authorize
36
+ end
37
+
38
+ def authorize
39
+ client = TwitterOAuth::Client.new(
40
+ :consumer_key => @consumer_key,
41
+ :consumer_secret => @consumer_secret
42
+ )
43
+ request_token = client.request_token()
44
+ puts "Please follow the URL below to authorize the application"
45
+ puts request_token.authorize_url
46
+ puts "Please enter the PIN below and press enter"
47
+ pin = STDIN.readline.chomp
48
+
49
+ access_token = client.authorize(
50
+ request_token.token,
51
+ request_token.secret,
52
+ {:oauth_verifier => pin}
53
+ )
54
+
55
+ puts "Verification complete!"
56
+
57
+ File.open(@auth_file, "w") {|f| f.write("#{access_token.token}\n#{access_token.secret}") }
58
+
59
+ client
60
+ rescue SocketError
61
+ $stderr.puts "Could not connect to twitter."
62
+ exit
63
+ rescue
64
+ $stderr.puts "Verification failed."
65
+ exit
66
+ end
67
+ end
@@ -0,0 +1,29 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../src", __FILE__)
3
+ require "termitter"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "termitter"
7
+ s.version = Termitter::VERSION
8
+ s.platform = Gem::Platform::RUBY
9
+ s.authors = ["Pavlo Kerestey"]
10
+ s.email = ["pavlo@kerestey.net"]
11
+ s.homepage = "http://rubygems.org/gems/termitter"
12
+ s.summary = %q{A simple terminal twitter client which prints the home timeline.}
13
+ s.description = %q{A terminal read-only twitter client. It prints the tweets along with the nicknames to the terminal output.}
14
+
15
+ s.rubyforge_project = "termitter"
16
+
17
+ s.add_dependency "twitter_oauth"
18
+
19
+ s.add_development_dependency "bundler", "~> 1.0"
20
+ s.add_development_dependency "rspec"
21
+ s.add_development_dependency "rake"
22
+
23
+ s.files = `git ls-files`.split("\n")
24
+ s.test_files = `git ls-files -- {tests,spec,features}/*`.split("\n")
25
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
26
+ s.require_paths = ["src"]
27
+
28
+ s.has_rdoc = false
29
+ end
metadata ADDED
@@ -0,0 +1,129 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: termitter
3
+ version: !ruby/object:Gem::Version
4
+ hash: 16067
5
+ prerelease: false
6
+ segments:
7
+ - 2010
8
+ - 11
9
+ - 16
10
+ version: 2010.11.16
11
+ platform: ruby
12
+ authors:
13
+ - Pavlo Kerestey
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2010-11-16 00:00:00 +01:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: twitter_oauth
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ hash: 3
30
+ segments:
31
+ - 0
32
+ version: "0"
33
+ type: :runtime
34
+ version_requirements: *id001
35
+ - !ruby/object:Gem::Dependency
36
+ name: bundler
37
+ prerelease: false
38
+ requirement: &id002 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ~>
42
+ - !ruby/object:Gem::Version
43
+ hash: 15
44
+ segments:
45
+ - 1
46
+ - 0
47
+ version: "1.0"
48
+ type: :development
49
+ version_requirements: *id002
50
+ - !ruby/object:Gem::Dependency
51
+ name: rspec
52
+ prerelease: false
53
+ requirement: &id003 !ruby/object:Gem::Requirement
54
+ none: false
55
+ requirements:
56
+ - - ">="
57
+ - !ruby/object:Gem::Version
58
+ hash: 3
59
+ segments:
60
+ - 0
61
+ version: "0"
62
+ type: :development
63
+ version_requirements: *id003
64
+ - !ruby/object:Gem::Dependency
65
+ name: rake
66
+ prerelease: false
67
+ requirement: &id004 !ruby/object:Gem::Requirement
68
+ none: false
69
+ requirements:
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ hash: 3
73
+ segments:
74
+ - 0
75
+ version: "0"
76
+ type: :development
77
+ version_requirements: *id004
78
+ description: A terminal read-only twitter client. It prints the tweets along with the nicknames to the terminal output.
79
+ email:
80
+ - pavlo@kerestey.net
81
+ executables:
82
+ - termitter
83
+ extensions: []
84
+
85
+ extra_rdoc_files: []
86
+
87
+ files:
88
+ - .gitignore
89
+ - Gemfile
90
+ - Rakefile
91
+ - bin/termitter
92
+ - src/termitter.rb
93
+ - termitter.gemspec
94
+ has_rdoc: true
95
+ homepage: http://rubygems.org/gems/termitter
96
+ licenses: []
97
+
98
+ post_install_message:
99
+ rdoc_options: []
100
+
101
+ require_paths:
102
+ - src
103
+ required_ruby_version: !ruby/object:Gem::Requirement
104
+ none: false
105
+ requirements:
106
+ - - ">="
107
+ - !ruby/object:Gem::Version
108
+ hash: 3
109
+ segments:
110
+ - 0
111
+ version: "0"
112
+ required_rubygems_version: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ hash: 3
118
+ segments:
119
+ - 0
120
+ version: "0"
121
+ requirements: []
122
+
123
+ rubyforge_project: termitter
124
+ rubygems_version: 1.3.7
125
+ signing_key:
126
+ specification_version: 3
127
+ summary: A simple terminal twitter client which prints the home timeline.
128
+ test_files: []
129
+