tjplurk 1.0.0
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.
- checksums.yaml +7 -0
- data/bin/tjplurk +3 -0
- data/lib/tjplurk/api.rb +25 -0
- data/lib/tjplurk/cli.rb +39 -0
- data/lib/tjplurk/version.rb +3 -0
- data/lib/tjplurk.rb +12 -0
- metadata +105 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 398334d936a13c800d8c6a8a53d7bc5e75a440ca
|
4
|
+
data.tar.gz: ee2c577d64529d0e0168528f8486fe9d35be75ce
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 10b0352ccc8a7f9ce921957ce95ad1af92698fa5b9faea9ec6cab6c86b2fae8603aa966c2f6233919300b5eadb7c8eecb1e60f77ee8bc907ccc8ba13b3504a53
|
7
|
+
data.tar.gz: ec703d4400428c658744dd2fa37f6ba3f02e3862286740cd9ef0a59f2a04102fca5d2ea57220dec7ef0ce1a875beceb748e01d5d82dd944c36059f1875a17efb
|
data/bin/tjplurk
ADDED
data/lib/tjplurk/api.rb
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'oauth'
|
2
|
+
require 'json'
|
3
|
+
|
4
|
+
module Tjplurk
|
5
|
+
class API
|
6
|
+
attr_reader :consumer, :request_token, :access_token
|
7
|
+
|
8
|
+
def initialize(consumer_key = nil, consumer_secret = nil, token_key = nil, token_secret = nil)
|
9
|
+
if consumer_key.nil? || consumer_secret.nil?
|
10
|
+
raise 'Consumer key & secret are not found.' unless File.exist? TJPLURK_FILE
|
11
|
+
consumer_key, consumer_secret, token_key, token_secret = File.readlines(TJPLURK_FILE).map(&:strip!).delete_if(&:empty?)
|
12
|
+
end
|
13
|
+
@consumer = OAuth::Consumer.new(consumer_key, consumer_secret, Tjplurk::OAUTH_OPTIONS)
|
14
|
+
@access_token = OAuth::AccessToken.new(@consumer, token_key, token_secret) if token_key && token_secret
|
15
|
+
end
|
16
|
+
|
17
|
+
def request_token
|
18
|
+
@request_token ||= @consumer.get_request_token
|
19
|
+
end
|
20
|
+
|
21
|
+
def request path, body = '', headers = {}
|
22
|
+
JSON.parse(@access_token.post(path, body, headers).body)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
data/lib/tjplurk/cli.rb
ADDED
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'launchy'
|
2
|
+
require 'tjplurk'
|
3
|
+
require 'thor'
|
4
|
+
|
5
|
+
module Tjplurk
|
6
|
+
class Cli < Thor
|
7
|
+
include Thor::Actions
|
8
|
+
|
9
|
+
desc 'auth CONSUMER_KEY CONSUMER_SECRET', 'get access token interactivly.'
|
10
|
+
def auth consumer_key, consumer_secret
|
11
|
+
api = Tjplurk::API.new(consumer_key, consumer_secret)
|
12
|
+
puts "Authorize URL: #{api.request_token.authorize_url}"
|
13
|
+
Launchy.open(api.request_token.authorize_url)
|
14
|
+
oauth_verifier = ask 'Enter Verification Number:'
|
15
|
+
access_token = api.request_token.get_access_token oauth_verifier: oauth_verifier
|
16
|
+
File.open(Tjplurk::TJPLURK_FILE, 'w') do |f|
|
17
|
+
f.puts consumer_key
|
18
|
+
f.puts consumer_secret
|
19
|
+
f.puts access_token.token
|
20
|
+
f.puts access_token.secret
|
21
|
+
end
|
22
|
+
puts "Key & secret successfully saved to \"#{Tjplurk::TJPLURK_FILE}\"."
|
23
|
+
end
|
24
|
+
|
25
|
+
desc 'api PATH ["FOO=BAR" ...]', 'send an API request.'
|
26
|
+
long_desc <<-LONGDESC
|
27
|
+
For example:
|
28
|
+
\x5$ tjplurk api /APP/Users/me
|
29
|
+
\x5$ tjplurk api /APP/Timeline/plurkAdd "content=hello world" qualifier=says
|
30
|
+
|
31
|
+
For more available paths, see http://www.plurk.com/API'
|
32
|
+
LONGDESC
|
33
|
+
def api path, *args
|
34
|
+
params = Hash[args.map{|arg| arg.split('=')}]
|
35
|
+
api = Tjplurk::API.new
|
36
|
+
puts api.access_token.post(path, params).body
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
data/lib/tjplurk.rb
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
require 'tjplurk/api'
|
2
|
+
|
3
|
+
module Tjplurk
|
4
|
+
OAUTH_OPTIONS = {
|
5
|
+
site: 'http://www.plurk.com',
|
6
|
+
request_token_path: '/OAuth/request_token',
|
7
|
+
access_token_path: '/OAuth/access_token',
|
8
|
+
authorize_path: '/OAuth/authorize'
|
9
|
+
}
|
10
|
+
|
11
|
+
TJPLURK_FILE = File.join(ENV['HOME'], '.tjplurk')
|
12
|
+
end
|
metadata
ADDED
@@ -0,0 +1,105 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: tjplurk
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Tony Jian
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-06-13 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: oauth
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: thor
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: launchy
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
description: Plurk API Wrapper
|
70
|
+
email: tonytonyjan@gmail.com
|
71
|
+
executables:
|
72
|
+
- tjplurk
|
73
|
+
extensions: []
|
74
|
+
extra_rdoc_files: []
|
75
|
+
files:
|
76
|
+
- bin/tjplurk
|
77
|
+
- lib/tjplurk.rb
|
78
|
+
- lib/tjplurk/api.rb
|
79
|
+
- lib/tjplurk/cli.rb
|
80
|
+
- lib/tjplurk/version.rb
|
81
|
+
homepage: https://github.com/tonytonyjan/tjplurk
|
82
|
+
licenses:
|
83
|
+
- MIT
|
84
|
+
metadata: {}
|
85
|
+
post_install_message:
|
86
|
+
rdoc_options: []
|
87
|
+
require_paths:
|
88
|
+
- lib
|
89
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
90
|
+
requirements:
|
91
|
+
- - ">="
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0'
|
94
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
95
|
+
requirements:
|
96
|
+
- - ">="
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '0'
|
99
|
+
requirements: []
|
100
|
+
rubyforge_project:
|
101
|
+
rubygems_version: 2.3.0
|
102
|
+
signing_key:
|
103
|
+
specification_version: 4
|
104
|
+
summary: Plurk API Wrapper
|
105
|
+
test_files: []
|