pupil 0.3.3 → 0.4
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.md +7 -0
- data/bin/eyedrops +96 -0
- data/lib/pupil/keygen.rb +1 -0
- data/lib/pupil/keygen/base.rb +7 -12
- data/lib/pupil/version.rb +1 -1
- metadata +13 -13
- data/bin/hitomi +0 -0
data/CHANGELOG.md
CHANGED
data/bin/eyedrops
ADDED
@@ -0,0 +1,96 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "pupil"
|
4
|
+
require "pupil/keygen"
|
5
|
+
require "yaml"
|
6
|
+
require "fileutils"
|
7
|
+
require "readline"
|
8
|
+
|
9
|
+
class Credentials
|
10
|
+
attr_accessor :credentials
|
11
|
+
|
12
|
+
def initialize(file)
|
13
|
+
FileUtils.touch file unless FileTest.exists? file
|
14
|
+
@credentials_file = file
|
15
|
+
@credentials = YAML.load_file(file)
|
16
|
+
end
|
17
|
+
|
18
|
+
def save
|
19
|
+
YAML.dump(@credentials, File.open(@credentials_file, "w"))
|
20
|
+
end
|
21
|
+
|
22
|
+
def create
|
23
|
+
token = Pupil::Keygen.new.interactive
|
24
|
+
@credentials ||= Hash.new
|
25
|
+
@credentials.update({token[:screen_name] => token.reject{|k, v| k == :screen_name }})
|
26
|
+
self.save
|
27
|
+
return token
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
# Initialize
|
32
|
+
home_dir = `echo $HOME`.strip
|
33
|
+
eyedrops_dir = File.join(home_dir, ".eyedrops")
|
34
|
+
credentials_file = File.join(eyedrops_dir, "credentials")
|
35
|
+
|
36
|
+
Dir.mkdir eyedrops_dir unless FileTest.exists? eyedrops_dir
|
37
|
+
cred = Credentials.new(credentials_file)
|
38
|
+
|
39
|
+
unless cred.credentials
|
40
|
+
cred.create
|
41
|
+
end
|
42
|
+
|
43
|
+
puts "Eyedrops, the interactive twitter with Pupil #{Pupil::VERSION}"
|
44
|
+
|
45
|
+
num = 1
|
46
|
+
cred.credentials.keys.each do |name|
|
47
|
+
puts "#{num}. #{name}"
|
48
|
+
num += 1
|
49
|
+
end
|
50
|
+
puts "#{num}. Add Account"
|
51
|
+
sel = Readline.readline("Choose account: ", false).to_i
|
52
|
+
if sel == cred.credentials.keys.size + 1
|
53
|
+
cred.create
|
54
|
+
sel = cred.credentials.keys.size
|
55
|
+
end
|
56
|
+
|
57
|
+
puts "Preparing Pupil instance..."
|
58
|
+
pupil = Pupil.new(cred.credentials[cred.credentials.keys[sel-1]])
|
59
|
+
puts "Signed with @#{cred.credentials.keys[sel-1]}"
|
60
|
+
|
61
|
+
while(true)
|
62
|
+
begin
|
63
|
+
line = Readline.readline("eyedrops> ", true)
|
64
|
+
break if line =~ /^(exit|quit)$/
|
65
|
+
|
66
|
+
arr = line.split(" ")
|
67
|
+
command = arr.first
|
68
|
+
option = arr[1, arr.size]
|
69
|
+
|
70
|
+
case command.to_sym
|
71
|
+
when :help
|
72
|
+
puts <<-'EOD'
|
73
|
+
### External Commands ###
|
74
|
+
help - Now you typed it.
|
75
|
+
exit|quit - Exit eyedrops.
|
76
|
+
|
77
|
+
### Examples ###
|
78
|
+
eyedrops> puts pupil.profile.id
|
79
|
+
237079012
|
80
|
+
=> nil
|
81
|
+
eyedrops> pupil.timeline :count => 5
|
82
|
+
#<Pupil::Status:0x007fafb34b5720>
|
83
|
+
#<Pupil::Status:0x007fafb34b56f8>
|
84
|
+
#<Pupil::Status:0x007fafb34b56d0>
|
85
|
+
#<Pupil::Status:0x007fafb34b56a8>
|
86
|
+
#<Pupil::Status:0x007fafb34b5680>
|
87
|
+
=> nil
|
88
|
+
EOD
|
89
|
+
else
|
90
|
+
result = eval(line)
|
91
|
+
puts "=> #{result.inspect}"
|
92
|
+
end
|
93
|
+
rescue => exception
|
94
|
+
puts exception
|
95
|
+
end
|
96
|
+
end
|
data/lib/pupil/keygen.rb
CHANGED
data/lib/pupil/keygen/base.rb
CHANGED
@@ -30,7 +30,7 @@ class Pupil
|
|
30
30
|
return {:access_token => access_token.token, :access_token_secret => access_token.secret}
|
31
31
|
end
|
32
32
|
|
33
|
-
def
|
33
|
+
def pupil_key
|
34
34
|
raise MissingRequiredTokens, "Pupil::Keygen#pupilkey require consumer_key, consumer_secret, access_token and access_token_secret" unless @consumer_key || @consumer_secret || @access_token || @access_token_secret
|
35
35
|
return {
|
36
36
|
:consumer_key => @consumer_key,
|
@@ -41,28 +41,23 @@ class Pupil
|
|
41
41
|
end
|
42
42
|
|
43
43
|
def interactive
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
@consumer_secret = gets.chomp.strip unless @consumer_secret
|
44
|
+
@consumer_key = Readline.readline("Enter OAuth Consumer Key: ", true) unless @consumer_key
|
45
|
+
print unless @consumer_secret
|
46
|
+
@consumer_secret = Readline.readline("Enter OAuth Consumer Secret: ", true) unless @consumer_secret
|
48
47
|
|
49
48
|
consumer = OAuth::Consumer.new(@consumer_key, @consumer_secret, :site => 'http://twitter.com')
|
50
49
|
|
51
50
|
request_token = consumer.get_request_token
|
52
51
|
|
53
52
|
puts "Access to this URL and approve: #{request_token.authorize_url}"
|
54
|
-
|
55
|
-
|
56
|
-
oauth_verifier = gets.chomp.strip
|
53
|
+
|
54
|
+
oauth_verifier = Readline.readline("Enter OAuth Verifier: ", true)
|
57
55
|
|
58
56
|
access_token = request_token.get_access_token(:oauth_verifier => oauth_verifier)
|
59
57
|
@access_token = access_token.token
|
60
58
|
@access_token_secret = access_token.secret
|
61
59
|
|
62
|
-
|
63
|
-
puts "Access token: #{access_token.token}"
|
64
|
-
puts "Access token secret: #{access_token.secret}"
|
65
|
-
return {:consumer_key => @consumer_key, :consumer_secret => @consumer_secret, :access_token => access_token.token, :access_token_secret => access_token.secret}
|
60
|
+
return {:consumer_key => @consumer_key, :consumer_secret => @consumer_secret, :access_token => access_token.token, :access_token_secret => access_token.secret, :screen_name => access_token.params[:screen_name]}
|
66
61
|
end
|
67
62
|
end
|
68
63
|
end
|
data/lib/pupil/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pupil
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: '0.4'
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2012-05-18 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: oauth
|
16
|
-
requirement: &
|
16
|
+
requirement: &70170194408800 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70170194408800
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: json
|
27
|
-
requirement: &
|
27
|
+
requirement: &70170194408300 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70170194408300
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rspec
|
38
|
-
requirement: &
|
38
|
+
requirement: &70170194407740 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70170194407740
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: yard
|
49
|
-
requirement: &
|
49
|
+
requirement: &70170194423220 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70170194423220
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: bundler
|
60
|
-
requirement: &
|
60
|
+
requirement: &70170194421440 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,12 +65,12 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70170194421440
|
69
69
|
description: The "Lazy" Twitter API Library for Ruby 1.9.x. Easy to use.
|
70
70
|
email:
|
71
71
|
- oame@oameya.com
|
72
72
|
executables:
|
73
|
-
-
|
73
|
+
- eyedrops
|
74
74
|
extensions: []
|
75
75
|
extra_rdoc_files: []
|
76
76
|
files:
|
@@ -82,7 +82,7 @@ files:
|
|
82
82
|
- README.ja.md
|
83
83
|
- README.md
|
84
84
|
- Rakefile
|
85
|
-
- bin/
|
85
|
+
- bin/eyedrops
|
86
86
|
- lib/pupil.rb
|
87
87
|
- lib/pupil/account.rb
|
88
88
|
- lib/pupil/base.rb
|
data/bin/hitomi
DELETED
File without changes
|