kinja 0.0.1 → 0.0.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ea1a752d777fa593bbdbbcf75ccf665bd00abe76
4
- data.tar.gz: 84e633a5f48efeaece4fe150dc15c78309b7448a
3
+ metadata.gz: c945e7865c586660797f7e146653271a984ba68e
4
+ data.tar.gz: 61ab343e0f22ea70bd660ce326e96ec237ec22e7
5
5
  SHA512:
6
- metadata.gz: 5865341f8dac7bd0701b043f2de4451148202830d10b03faa5c18583c69d51ba75997c304962ae93f5470c8a39455cca1e7cf88bacb869b674dba011da531e21
7
- data.tar.gz: 0e8b67a30cfa3bdda390eea4f58c133ec193d5d0cf766c3d15607c99d2e7cc287451ba65e9b5c1d5a93515e6883e61e6a5b5f8862665136228e4a92e8a3dfb29
6
+ metadata.gz: 50fd40bf8df6ca652d2da26e76e332154ab45e93cff80a91b3fd1819349bffa27c5591bb69183ece9378ebc00b092819a7a23a5dc0aa277ae824d07d9fb216bf
7
+ data.tar.gz: 6f60288b336db7ee1a96721f6a12323a09d82ce4e26358a0a631c52cff79e195e23a6648dac4d13cda0fb940665cf505bda475dbe43cb7f88da8058df79b3123
data/.env.sample ADDED
@@ -0,0 +1,3 @@
1
+ USER="burner_username"
2
+ PASS="burnerpassword"
3
+
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Kinja
2
2
 
3
- TODO: Write a gem description
3
+ Ruby gem for posting to Kinja (currently only supports Burner accounts)
4
4
 
5
5
  ## Installation
6
6
 
@@ -20,12 +20,34 @@ Or install it yourself as:
20
20
 
21
21
  ## Usage
22
22
 
23
- TODO: Write usage instructions here
23
+ ```ruby
24
+ # Create an instance of the kinja client
25
+ client = Kinja::Client.new(
26
+ user: "username",
27
+ password: "password"
28
+ )
29
+
30
+ # Create a post
31
+ post = client.create_post(
32
+ headline: '', # required
33
+ body: '<p>This is a post</p>', # required
34
+ status: 'PUBLISHED', # optional (default is "DRAFT")
35
+ replies: false # optional (default is true)
36
+ )
37
+
38
+ # Get a post
39
+ post = client.get_post("http://gawker.com/lapd-claims-the-jinx-had-nothing-to-do-with-robert-durs-1691730232")
40
+
41
+ # ...OR...
42
+
43
+ post = client.get_post("1691730232")
44
+ ```
24
45
 
25
46
  ## Contributing
26
47
 
27
- 1. Fork it ( https://github.com/[my-github-username]/kinja/fork )
28
- 2. Create your feature branch (`git checkout -b my-new-feature`)
29
- 3. Commit your changes (`git commit -am 'Add some feature'`)
30
- 4. Push to the branch (`git push origin my-new-feature`)
31
- 5. Create a new Pull Request
48
+ 1. Fork it ( https://github.com/adampash/kinja/fork )
49
+ 2. Setup .env file with a test burner account
50
+ 3. Create your feature branch (`git checkout -b my-new-feature`)
51
+ 4. Commit your changes with tests (`git commit -am 'Add some feature'`)
52
+ 5. Push to the branch (`git push origin my-new-feature`)
53
+ 6. Create a new Pull Request
data/lib/kinja/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Kinja
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
data/lib/kinja.rb CHANGED
@@ -6,7 +6,8 @@ module Kinja
6
6
  API_ROOT = "http://kinja.com/api"
7
7
  LOGIN_PATH = "/profile/account/burner/login"
8
8
  TOKEN_PATH = "/profile/token"
9
- POST_PATH = "/core/post/add"
9
+ CREATE_POST_PATH = "/core/post/add"
10
+ GET_POST_PATH = "/core/post"
10
11
  AUTHOR_PATH = "/profile/user/views/asAuthor"
11
12
 
12
13
  def initialize(opts={})
@@ -14,12 +15,12 @@ module Kinja
14
15
  @pass = opts[:password]
15
16
  end
16
17
 
17
- def post(opts={})
18
+ def create_post(opts={})
18
19
  opts[:status] = opts[:status] || "DRAFT"
19
20
  opts[:replies] = opts[:replies] || true
20
- api_token(login)
21
+ get_api_token(login)
21
22
 
22
- HTTParty.post "#{API_ROOT}#{POST_PATH}?token=#{@api_token}",
23
+ HTTParty.post "#{API_ROOT}#{CREATE_POST_PATH}?token=#{@api_token}",
23
24
  body: {
24
25
  headline: opts[:headline],
25
26
  original: opts[:body],
@@ -30,6 +31,30 @@ module Kinja
30
31
  headers: { 'Content-Type' => 'application/json' }
31
32
  end
32
33
 
34
+ def get_post(link_or_id)
35
+ id = get_post_id link_or_id
36
+ HTTParty.get "#{API_ROOT}#{GET_POST_PATH}/#{id}"
37
+ end
38
+
39
+ def get_post_id(link)
40
+ return link if link.match(/^\d+$/)
41
+ new_link_re = /-(\d+)\/?/
42
+ old_link_re = /\.com\/(\d+)\//
43
+ return link.match(new_link_re)[1] if link.match(new_link_re)
44
+ return link.match(old_link_re)[1] if link.match(old_link_re)
45
+ # isLink: (link) ->
46
+ # @newLink(link) or @oldLink(link)
47
+ # newLink: (link) ->
48
+ # link.match(/-(\d+)\/?/)
49
+ # oldLink: (link) ->
50
+ # link.match(/\.com\/\d+\//)
51
+ # postId: (link) ->
52
+ # if @newLink(link)
53
+ # link.match(/-(\d+)\/?/)[1]
54
+ # else
55
+ # link.match(/\.com\/(\d+)\//)[1]
56
+ end
57
+
33
58
  def get_author(user)
34
59
  HTTParty.get "#{API_ROOT}#{AUTHOR_PATH}?ids=#{user["id"]}"
35
60
  end
@@ -44,7 +69,7 @@ module Kinja
44
69
  response
45
70
  end
46
71
 
47
- def api_token(response)
72
+ def get_api_token(response)
48
73
  @api_token = HTTParty.get("#{API_ROOT}#{TOKEN_PATH}",
49
74
  cookies: {KinjaSession: session_token(response)}
50
75
  )['data']['token']
@@ -0,0 +1,258 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://kinja.com/api/core/post/1691726561
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers: {}
10
+ response:
11
+ status:
12
+ code: 200
13
+ message: OK
14
+ headers:
15
+ Access-Control-Allow-Origin:
16
+ - "*"
17
+ Access-Control-Allow-Headers:
18
+ - Content-Type
19
+ Access-Control-Allow-Methods:
20
+ - POST, GET, OPTIONS, PUT, DELETE
21
+ Content-Type:
22
+ - application/json; charset=utf-8
23
+ X-Kinja:
24
+ - 'app17.bfc.kinja-ops.com #6039'
25
+ X-Cdn-Fetch:
26
+ - mantle-default
27
+ Via:
28
+ - 1.1 varnish
29
+ - 1.1 varnish
30
+ Set-Cookie:
31
+ - geocc=US;path=/;
32
+ - geocc=US;path=/;
33
+ Content-Length:
34
+ - '8967'
35
+ Accept-Ranges:
36
+ - none
37
+ Date:
38
+ - Mon, 16 Mar 2015 19:22:00 GMT
39
+ Age:
40
+ - '0'
41
+ Connection:
42
+ - keep-alive
43
+ X-Served-By:
44
+ - cache-jfk1027-JFK, cache-iad2130-IAD
45
+ X-Cache:
46
+ - MISS, MISS
47
+ X-Cache-Hits:
48
+ - 0, 0
49
+ X-Timer:
50
+ - S1426533720.310476,VS0,VE21
51
+ Vary:
52
+ - X-Feature-Hash
53
+ body:
54
+ encoding: ASCII-8BIT
55
+ string: !binary |-
56
+ eyJtZXRhIjp7InN1Y2Nlc3MiOnRydWUsInN0YXR1cyI6MjAwLCJtZXNzYWdl
57
+ IjoiT2siLCJlcnJvciI6e319LCJkYXRhIjp7ImlkIjoxNjkxNzI2NTYxLCJw
58
+ YXJlbnRJZCI6bnVsbCwicGFyZW50QXV0aG9ySWQiOm51bGwsInN0YXJ0ZXJJ
59
+ ZCI6MTY5MTcyNjU2MSwicHVibGlzaFRpbWVNaWxsaXMiOjE0MjY1MzEwODA0
60
+ OTMsImxhc3RVcGRhdGVUaW1lTWlsbGlzIjoxNDI2NTMxMzk1MTM3LCJ0aW1l
61
+ em9uZSI6IkFtZXJpY2EvTmV3X1lvcmsiLCJzaGFyZUJsb2dJZCI6bnVsbCwi
62
+ c2hhcmVkUG9zdElkIjpudWxsLCJzaGFyZWRVcmwiOm51bGwsInNhbGVzQXZh
63
+ dGFyIjpudWxsLCJzcG9uc29yZWQiOmZhbHNlLCJzdGF0dXMiOiJQVUJMSVNI
64
+ RUQiLCJhdXRob3JJZCI6IjE1NzM3NTk4NzciLCJhbGxvd1JlcGxpZXMiOnRy
65
+ dWUsImJ5bGluZSI6IiIsInNob3dCeWxpbmUiOnRydWUsInByb3BlcnRpZXMi
66
+ OiJ7XCJhZHpvbmVcIjpcImNvbGxhcHNlXCJ9IiwieG1saUlkIjpudWxsLCJi
67
+ bG9nSWQiOlsxNTczNzU5ODc5LDddLCJkZWZhdWx0QmxvZ0lkIjo3LCJhdXRo
68
+ b3JCbG9nSWQiOjE1NzM3NTk4NzksImxpdmVCbG9nIjpmYWxzZSwiYXBwcm92
69
+ ZWQiOnRydWUsImhlYWRsaW5lIjoiSXMgVGhpcyBBdXN0cmFsaWFuIFRWIEFu
70
+ Y2hvciBXZWFyaW5nIGEgRGljayBPciBXaGF0P8KgIiwib3JpZ2luYWwiOiI8
71
+ cD5cblx0PGltZyBpZD1cInRhZy1SdEZoZE4tNTQ3OVwiIGRhdGEtdWlkPVwi
72
+ dGFnLVJ0RmhkTi01NDc5XCIgc3JjPVwiaHR0cDovL2kua2luamEtaW1nLmNv
73
+ bS9nYXdrZXItbWVkaWEvaW1hZ2UvdXBsb2FkL3dla2Nodmxnam1xeWJwc3cz
74
+ cmJxLmpwZ1wiIGNsYXNzPVwiaGFzLW1lZGlhIG1lZGlhLTY0MCBpbWFnZS1p
75
+ bml0YWxcIj48L3A+PHA+XG5cdE5hdGFyc2hhIEJlbGxpbmcgaXMgYW4gYW5j
76
+ aG9yIGZvciBBdXN0cmFsaWFuIHRlbGV2aXNpb24ncyBOZXR3b3JrIFRlbi4g
77
+ T24gYSBicm9hZGNhc3QgYXBwYXJlbnRseSBmcm9tIHRoaXMgcGFzdCB3ZWVr
78
+ ZW5kLCBzaGUgd29yZSBcblx0PGEgaHJlZj1cImh0dHA6Ly93d3cuZGFpbHlt
79
+ YWlsLmNvLnVrL25ld3MvYXJ0aWNsZS0yOTk2MzM5L05ld3MtZmxhc2gtVFYt
80
+ aG9zdC1OYXRhcnNoYS1CZWxsaW5nLXMtcGhhbGxpYy1uZWNrbGluZS1zcGFy
81
+ a3Mtc29jaWFsLW1lZGlhLXN0b3JtLmh0bWxcIiBpZD1cImluc2V0NjI1M1wi
82
+ IGRhdGEtcHJvdmlkZXI9XCJkZWZhdWx0XCIgY2xhc3M9XCJqc19wYXJzZXIt
83
+ c2tpcFwiPnRoaXMgZ3JlZW4gamFja2V0PC9hPi4gV2hhdCBkb2VzIGhlciBu
84
+ ZWNrbGluZSByZXNlbWJsZT8gU29tZSBzYXkgXCJhIGRpY2suXCI8L3A+PGlm
85
+ cmFtZSBzcmM9XCJodHRwOi8vYWRhbXBhc2guY29tL3JlbGF0ZWQtd2lkZ2V0
86
+ L2J1aWxkLz9wb3N0cz0xNjg1NTQwMTg5LDE2NDQ4NTc0MjYsMTYxODE5ODM2
87
+ OSZ0aXRsZT1QcmV2aW91c2x5IENvbnNpZGVyZWQgRGlja3NcIiB3aWR0aD1c
88
+ IjEwMCVcIiBoZWlnaHQ9XCIyNTBcIiBjbGFzcz1cImN1c3RvbSBhc3BlY3Qg
89
+ cmVjb21tZW5kZWRcIiBpZD1cImVkaXRvcmlhbF9sYWJzX3JlY29tbWVuZGVk
90
+ X3N0b3JpZXNfd2lkZ2V0XCI+PC9pZnJhbWU+PHA+XG5cdFx0WzxlbT5JbWFn
91
+ ZSB2aWEgPGEgaHJlZj1cImh0dHA6Ly93d3cubXR2LmNvLnVrL3d0Zi9uZXdz
92
+ L2F1c3NpZS1uZXdzLWhvc3QtbmF0YXJzaGEtYmVsbGluZy13ZWFycy10b3At
93
+ d2l0aC1wZW5pc3NoYXBlZC1uZWNrbGluZVwiIGlkPVwiaW5zZXQ2MjUwXCIg
94
+ ZGF0YS1wcm92aWRlcj1cImRlZmF1bHRcIiBjbGFzcz1cImpzX3BhcnNlci1z
95
+ a2lwXCI+UnViZW4gSGF5d29vZC9NVFYgVUs8L2E+PC9lbT5dPC9wPjxocj5c
96
+ bjxwPlxuXHQ8ZW0+PHNtYWxsPkNvbnRhY3QgdGhlIGF1dGhvciBhdCA8YSBo
97
+ cmVmPVwibWFpbHRvOmFsZWtzYW5kZXJAZ2F3a2VyLmNvbSBcIiBjbGFzcz1c
98
+ IlwiPmFsZWtzYW5kZXJAZ2F3a2VyLmNvbSA8L2E+Ljwvc21hbGw+PC9lbT48
99
+ L3A+Iiwic291cmNlIjoid3lzaXd5ZyIsImltYWdlcyI6W3sidXJpIjoiaHR0
100
+ cDovL2kua2luamEtaW1nLmNvbS9nYXdrZXItbWVkaWEvaW1hZ2UvdXBsb2Fk
101
+ L3dla2Nodmxnam1xeWJwc3czcmJxLmpwZyIsImlkIjoid2VrY2h2bGdqbXF5
102
+ YnBzdzNyYnEiLCJ3aWR0aCI6NjM2LCJoZWlnaHQiOjQyMywiZm9ybWF0Ijoi
103
+ anBnIiwicmVjb21tZW5kZWQiOnRydWV9XSwidmlkZW9zIjpbXSwidmlkZW9U
104
+ aHVtYnMiOltdLCJhdXRob3IiOnsiaWQiOiIxNTczNzU5ODc3Iiwic2NyZWVu
105
+ TmFtZSI6ImFsZWtzYW5kZXJjaGFuIiwiZGlzcGxheU5hbWUiOiJBbGVrc2Fu
106
+ ZGVyIENoYW4iLCJkZWZhdWx0QmxvZ0lkIjoxNTczNzU5ODc5LCJkZWZhdWx0
107
+ QmxvZyI6bnVsbCwiYXZhdGFyIjp7ImlkIjoibHdqYmdwanBpcno3NG9jeWtt
108
+ dmoiLCJmb3JtYXQiOiJwbmcifX0sInRhZ3MiOlt7ImlkIjoxNjE4MTY1MDgx
109
+ LCJuYW1lIjoiaXMgdGhpcyBhIGRpY2sgb3Igd2hhdCIsImRlc2MiOiJJcyBU
110
+ aGlzIGEgRGljayBvciBXaGF0PyIsInVybE5hbWUiOiJpcy10aGlzLWEtZGlj
111
+ ay1vci13aGF0In0seyJpZCI6NTYyNTc4LCJuYW1lIjoiZGlja3MiLCJkZXNj
112
+ IjoiRGlja3MiLCJ1cmxOYW1lIjoiZGlja3MifSx7ImlkIjoxNjkxNzI2NTYy
113
+ LCJuYW1lIjoibmF0YXJzaGEgYmVsbGluZyIsImRlc2MiOiJOYXRhcnNoYSBC
114
+ ZWxsaW5nIiwidXJsTmFtZSI6Im5hdGFyc2hhLWJlbGxpbmcifV0sImJsb2dz
115
+ IjpbeyJpZCI6MTU3Mzc1OTg3OSwibmFtZSI6ImFsZWtzYW5kZXJjaGFuIiwi
116
+ ZGlzcGxheU5hbWUiOiJBbGVrc2FuZGVyIENoYW4iLCJjYW5vbmljYWxIb3N0
117
+ IjoiYWxla3NhbmRlcmNoYW4ua2luamEuY29tIiwiaG9zdHMiOltdLCJzdGF0
118
+ dXMiOiJFTkFCTEVEIiwidGltZXpvbmUiOiJBbWVyaWNhL05ld19Zb3JrIiwi
119
+ dGltZXpvbmVPZmZzZXQiOi0xNDQwMDAwMCwidGltZXpvbmVTaG9ydG5hbWUi
120
+ OiJFRFQiLCJtZXJnZWRQcm9wZXJ0aWVzIjpudWxsLCJhdmF0YXIiOm51bGx9
121
+ LHsiaWQiOjcsIm5hbWUiOiJnYXdrZXIiLCJkaXNwbGF5TmFtZSI6Ikdhd2tl
122
+ ciIsImNhbm9uaWNhbEhvc3QiOiJnYXdrZXIuY29tIiwiaG9zdHMiOlsibmV3
123
+ ZmVlZGdhd2tlci5raW5qYS5jb20iLCJkZS5nYXdrZXIuY29tIiwiYXUuZ2F3
124
+ a2VyLmNvbSIsInVzLmdhd2tlci5jb20iLCJtLmdhd2tlci5jb20iLCJici5n
125
+ YXdrZXIuY29tIiwibmV3c2ZlZWQuZ2F3a2VyLmNvbSIsInJ1Lmdhd2tlci5j
126
+ b20iLCJ3d3cuZ2F3a2VyLmNvbSIsImFkcy5nYXdrZXIuY29tIiwiYmxvZy5n
127
+ YXdrZXIuY29tIiwiYXNzZXRzLmdhd2tlci5jb20iLCJjYS5nYXdrZXIuY29t
128
+ IiwidWsuZ2F3a2VyLmNvbSIsImNpdHlmaWxlLmdhd2tlci5jb20iLCJmZXRj
129
+ aC5nYXdrZXIuY29tIiwibmwuZ2F3a2VyLmNvbSIsImVzLmdhd2tlci5jb20i
130
+ XSwic3RhdHVzIjoiRU5BQkxFRCIsInRpbWV6b25lIjoiQW1lcmljYS9OZXdf
131
+ WW9yayIsInRpbWV6b25lT2Zmc2V0IjotMTQ0MDAwMDAsInRpbWV6b25lU2hv
132
+ cnRuYW1lIjoiRURUIiwibWVyZ2VkUHJvcGVydGllcyI6eyJhYm91dFBvc3RJ
133
+ ZCI6MTY3OTAwNjkzMSwic2hvd0luc2V0cyI6dHJ1ZSwiZmJBcHBJZCI6IjQ0
134
+ NzA4NDA3ODY5MDg3MCIsIm1ldGFUaXRsZSI6Ikdhd2tlciAmbWRhc2g7IFRv
135
+ ZGF5J3MgZ29zc2lwIGlzIHRvbW9ycm93J3MgbmV3cyIsImdvb2dsZVNpdGVW
136
+ ZXJpZmljYXRpb24iOiJQTU9EdjVmT2ZJX0k2R1JuMDZQNnVEU25UUExnaXBj
137
+ X2Zna21oN0VnWHl3IiwiYmxvZ0dyb3VwIjoiZ2F3a2VyIiwiaXNHbWdCbG9n
138
+ Ijp0cnVlLCJnb29nbGVBbmFseXRpY3NJRCI6IlVBLTE0MjIxOC0yIiwia3J1
139
+ eElkIjoiSk1XZ0xRYWEiLCJ0ZW1wbGF0ZSI6Imdhd2tlciJ9LCJhdmF0YXIi
140
+ OnsiaWQiOiJkdXl5OGJieHYxajV4aTNzcHQ1biIsImZvcm1hdCI6ImpwZyJ9
141
+ fV0sImFubm90YXRpb24iOm51bGwsInZpZXdzdGF0cyI6bnVsbCwicHJvbW90
142
+ aW9ucyI6W10sInJlcGx5TWV0YSI6eyJwYXJlbnRBdXRob3IiOm51bGwsInNo
143
+ b3dQYXJlbnRCeWxpbmUiOmZhbHNlLCJwYXJlbnRCeWxpbmUiOiIiLCJhcHBy
144
+ b3ZlZEV4cGxhbmF0aW9uIjpudWxsLCJjb250cmlidXRvcnMiOltdLCJjb250
145
+ cmlidXRpb25Db3VudCI6bnVsbH0sInJlcGx5Q291bnQiOm51bGwsInBhcmVu
146
+ dCI6bnVsbCwic3RhcnRlciI6bnVsbCwiYmxvZ1Bvc3RBY3Rpb24iOm51bGws
147
+ InNjb3JlIjpudWxsLCJpbnNldHMiOltdLCJyZWZlcmVuY2VkQnkiOltdLCJs
148
+ aWtlcyI6bnVsbCwic2hhcmVkUG9zdCI6bnVsbCwicmVmcmFtZXMiOltdLCJu
149
+ b2luZGV4IjpudWxsLCJpc1JlY29tbWVuZGVkIjpudWxsLCJwZXJtYWxpbmsi
150
+ OiJodHRwOi8vZ2F3a2VyLmNvbS9pcy10aGlzLWF1c3RyYWxpYW4tdHYtYW5j
151
+ aG9yLXdlYXJpbmctYS1kaWNrLW9yLXdoYXQtMTY5MTcyNjU2MSIsInBlcm1h
152
+ bGlua0hvc3QiOiJodHRwOi8vZ2F3a2VyLmNvbSIsInBlcm1hbGlua1BhdGgi
153
+ OiIvaXMtdGhpcy1hdXN0cmFsaWFuLXR2LWFuY2hvci13ZWFyaW5nLWEtZGlj
154
+ ay1vci13aGF0LTE2OTE3MjY1NjEiLCJkaXNwbGF5IjoiPHAgY2xhc3M9XCJo
155
+ YXMtbWVkaWEgbWVkaWEtNjQwXCI+PGltZyBzcmM9XCJodHRwOi8vaS5raW5q
156
+ YS1pbWcuY29tL2dhd2tlci1tZWRpYS9pbWFnZS91cGxvYWQvcy0taDZQcmM3
157
+ QkctLS93ZWtjaHZsZ2ptcXlicHN3M3JicS5qcGdcIiB3aWR0aD1cIjYzNlwi
158
+ IGhlaWdodD1cIjQyM1wiIGFsdD1cIklzIFRoaXMgQXVzdHJhbGlhbiBUViBB
159
+ bmNob3IgV2VhcmluZyBhIERpY2sgT3IgV2hhdD8mbmJzcDtcIiBkYXRhLWNo
160
+ b21wLWlkPVwid2VrY2h2bGdqbXF5YnBzdzNyYnFcIiBkYXRhLWFzc2V0LXVy
161
+ bD1cImh0dHA6Ly9pLmtpbmphLWltZy5jb20vZ2F3a2VyLW1lZGlhL2ltYWdl
162
+ L3VwbG9hZC9zLS1oNlByYzdCRy0tL3dla2Nodmxnam1xeWJwc3czcmJxLmpw
163
+ Z1wiIGRhdGEtZm9ybWF0PVwianBnXCIgLz48L3A+PHAgY2xhc3M9XCJmaXJz
164
+ dC10ZXh0XCI+XG5cdE5hdGFyc2hhIEJlbGxpbmcgaXMgYW4gYW5jaG9yIGZv
165
+ ciBBdXN0cmFsaWFuIHRlbGV2aXNpb24ncyBOZXR3b3JrIFRlbi4gT24gYSBi
166
+ cm9hZGNhc3QgYXBwYXJlbnRseSBmcm9tIHRoaXMgcGFzdCB3ZWVrZW5kLCBz
167
+ aGUgd29yZSBcblx0PGEgaHJlZj1cImh0dHA6Ly93d3cuZGFpbHltYWlsLmNv
168
+ LnVrL25ld3MvYXJ0aWNsZS0yOTk2MzM5L05ld3MtZmxhc2gtVFYtaG9zdC1O
169
+ YXRhcnNoYS1CZWxsaW5nLXMtcGhhbGxpYy1uZWNrbGluZS1zcGFya3Mtc29j
170
+ aWFsLW1lZGlhLXN0b3JtLmh0bWxcIiB0YXJnZXQ9XCJfYmxhbmtcIj50aGlz
171
+ IGdyZWVuIGphY2tldDwvYT4uIFdoYXQgZG9lcyBoZXIgbmVja2xpbmUgcmVz
172
+ ZW1ibGU/IFNvbWUgc2F5ICZxdW90O2EgZGljay4mcXVvdDs8L3A+PGlmcmFt
173
+ ZSBjbGFzcz1cImN1c3RvbSBhc3BlY3QgcmVjb21tZW5kZWRcIiBoZWlnaHQ9
174
+ XCIyNTBcIiB3aWR0aD1cIjEwMCVcIiBzcmM9XCJodHRwOi8vYWRhbXBhc2gu
175
+ Y29tL3JlbGF0ZWQtd2lkZ2V0L2J1aWxkLz9wb3N0cz0xNjg1NTQwMTg5LDE2
176
+ NDQ4NTc0MjYsMTYxODE5ODM2OSZhbXA7dGl0bGU9UHJldmlvdXNseSBDb25z
177
+ aWRlcmVkIERpY2tzXCI+PC9pZnJhbWU+PHA+XG5cdFx0WzxlbT5JbWFnZSB2
178
+ aWEgPGEgaHJlZj1cImh0dHA6Ly93d3cubXR2LmNvLnVrL3d0Zi9uZXdzL2F1
179
+ c3NpZS1uZXdzLWhvc3QtbmF0YXJzaGEtYmVsbGluZy13ZWFycy10b3Atd2l0
180
+ aC1wZW5pc3NoYXBlZC1uZWNrbGluZVwiIHRhcmdldD1cIl9ibGFua1wiPlJ1
181
+ YmVuIEhheXdvb2QvTVRWIFVLPC9hPjwvZW0+XTwvcD48aHIgLz5cbjxwPlxu
182
+ XHQ8ZW0+PHNtYWxsPkNvbnRhY3QgdGhlIGF1dGhvciBhdCA8YSBocmVmPVwi
183
+ bWFpbHRvOmFsZWtzYW5kZXJAZ2F3a2VyLmNvbVwiPmFsZWtzYW5kZXJAZ2F3
184
+ a2VyLmNvbSA8L2E+Ljwvc21hbGw+PC9lbT48L3A+PCEtLSBjb3JlLWRlY29y
185
+ YXRlZCAtLT4iLCJleGNlcnB0IjoiPHAgY2xhc3M9XCJmaXJzdC10ZXh0XCI+
186
+ IE5hdGFyc2hhIEJlbGxpbmcgaXMgYW4gYW5jaG9yIGZvciBBdXN0cmFsaWFu
187
+ IHRlbGV2aXNpb24ncyBOZXR3b3JrIFRlbi4gT24gYSBicm9hZGNhc3QgYXBw
188
+ YXJlbnRseSBmcm9tIHRoaXMgcGFzdCB3ZWVrZW5kLCBzaGUgd29yZSA8YSBo
189
+ cmVmPVwiaHR0cDovL3d3dy5kYWlseW1haWwuY28udWsvbmV3cy9hcnRpY2xl
190
+ LTI5OTYzMzkvTmV3cy1mbGFzaC1UVi1ob3N0LU5hdGFyc2hhLUJlbGxpbmct
191
+ cy1waGFsbGljLW5lY2tsaW5lLXNwYXJrcy1zb2NpYWwtbWVkaWEtc3Rvcm0u
192
+ aHRtbFwiIHRhcmdldD1cIl9ibGFua1wiPnRoaXMgZ3JlZW4gamFja2V0PC9h
193
+ Pi4gV2hhdCBkb2VzIGhlciBuZWNrbGluZSByZXNlbWJsZT8gU29tZSBzYXkg
194
+ JnF1b3Q7YSBkaWNrLiZxdW90OzwvcD4iLCJjb21wYWN0IjoiTmF0YXJzaGEg
195
+ QmVsbGluZyBpcyBhbiBhbmNob3IgZm9yIEF1c3RyYWxpYW4gdGVsZXZpc2lv
196
+ bidzIE5ldHdvcmsgVGVuLiIsInBsYWludGV4dCI6Ik5hdGFyc2hhIEJlbGxp
197
+ bmcgaXMgYW4gYW5jaG9yIGZvciBBdXN0cmFsaWFuIHRlbGV2aXNpb24ncyBO
198
+ ZXR3b3JrIFRlbi4gT24gYSBicm9hZGNhc3QgYXBwYXJlbnRseSBmcm9tIHRo
199
+ aXMgcGFzdCB3ZWVrZW5kLCBzaGUgd29yZSB0aGlzIGdyZWVuIGphY2tldC4g
200
+ V2hhdCBkb2VzIGhlciBuZWNrbGluZSByZXNlbWJsZT8gU29tZSBzYXkgXCJh
201
+ IGRpY2suXCIiLCJzaG9ydEhlYWRsaW5lIjoiSXMgVGhpcyBBdXN0cmFsaWFu
202
+ IFRWIEFuY2hvciBXZWFyaW5nIGEgRGljayBPciBXaGF0P8KgIiwic2hvcnRF
203
+ eGNlcnB0IjoiPHAgY2xhc3M9XCJmaXJzdC10ZXh0XCI+IE5hdGFyc2hhIEJl
204
+ bGxpbmcgaXMgYW4gYW5jaG9yIGZvciBBdXN0cmFsaWFuIHRlbGV2aXNpb24n
205
+ cyBOZXR3b3JrIFRlbi4gT24gYSBicm9hZGNhc3QgYXBwYXJlbnRseSBmcm9t
206
+ IHRoaXMgcGFzdCB3ZWVrZW5kLCBzaGUgd29yZSA8YSBocmVmPVwiaHR0cDov
207
+ L3d3dy5kYWlseW1haWwuY28udWsvbmV3cy9hcnRpY2xlLTI5OTYzMzkvTmV3
208
+ cy1mbGFzaC1UVi1ob3N0LU5hdGFyc2hhLUJlbGxpbmctcy1waGFsbGljLW5l
209
+ Y2tsaW5lLXNwYXJrcy1zb2NpYWwtbWVkaWEtc3Rvcm0uaHRtbFwiIHRhcmdl
210
+ dD1cIl9ibGFua1wiPnRoaXMgZ3JlZW4gamFja2V0PC9hPi4gV2hhdCBkb2Vz
211
+ IGhlciBuZWNrbGluZSByZXNlbWJsZT8gU29tZSBzYXkgJnF1b3Q7YSBkaWNr
212
+ LiZxdW90OzwvcD4iLCJleGNlcnB0V2l0aEFzc2V0cyI6IjxwIGNsYXNzPVwi
213
+ Zmlyc3QtdGV4dFwiPiBOYXRhcnNoYSBCZWxsaW5nIGlzIGFuIGFuY2hvciBm
214
+ b3IgQXVzdHJhbGlhbiB0ZWxldmlzaW9uJ3MgTmV0d29yayBUZW4uIE9uIGEg
215
+ YnJvYWRjYXN0IGFwcGFyZW50bHkgZnJvbSB0aGlzIHBhc3Qgd2Vla2VuZCwg
216
+ c2hlIHdvcmUgPGEgaHJlZj1cImh0dHA6Ly93d3cuZGFpbHltYWlsLmNvLnVr
217
+ L25ld3MvYXJ0aWNsZS0yOTk2MzM5L05ld3MtZmxhc2gtVFYtaG9zdC1OYXRh
218
+ cnNoYS1CZWxsaW5nLXMtcGhhbGxpYy1uZWNrbGluZS1zcGFya3Mtc29jaWFs
219
+ LW1lZGlhLXN0b3JtLmh0bWxcIiB0YXJnZXQ9XCJfYmxhbmtcIj50aGlzIGdy
220
+ ZWVuIGphY2tldDwvYT4uIFdoYXQgZG9lcyBoZXIgbmVja2xpbmUgcmVzZW1i
221
+ bGU/IFNvbWUgc2F5ICZxdW90O2EgZGljay4mcXVvdDs8L3A+IiwiYWJvdmVI
222
+ ZWFkbGluZSI6eyJzcmMiOiJodHRwOi8vaS5raW5qYS1pbWcuY29tL2dhd2tl
223
+ ci1tZWRpYS9pbWFnZS91cGxvYWQvcy0tYzJKVjB3aWwtLS9jX2ZpdCxmbF9w
224
+ cm9ncmVzc2l2ZSxxXzgwLHdfNjM2L3dla2Nodmxnam1xeWJwc3czcmJxLmpw
225
+ ZyIsImlzQW5pbWF0ZWQiOmZhbHNlLCJpZCI6Indla2Nodmxnam1xeWJwc3cz
226
+ cmJxIiwid2lkdGgiOjYzNiwiaGVpZ2h0Ijo0MjMsImZvcm1hdCI6ImpwZyIs
227
+ ImZyb3plbkZvcm1hdCI6ImpwZyIsInJlY29tbWVuZGVkIjp0cnVlLCJ0eXBl
228
+ IjoiaW1hZ2UifSwibGVmdE9mSGVhZGxpbmUiOnsic3JjIjoiaHR0cDovL2ku
229
+ a2luamEtaW1nLmNvbS9nYXdrZXItbWVkaWEvaW1hZ2UvdXBsb2FkL3MtLVlp
230
+ aTlES0NtLS0vY19maWxsLGZsX3Byb2dyZXNzaXZlLGdfbm9ydGgsaF8xODAs
231
+ cV84MCx3XzMyMC93ZWtjaHZsZ2ptcXlicHN3M3JicS5qcGciLCJpc0FuaW1h
232
+ dGVkIjpmYWxzZSwiaWQiOiJ3ZWtjaHZsZ2ptcXlicHN3M3JicSIsIndpZHRo
233
+ IjozMjAsImhlaWdodCI6MTgwLCJmb3JtYXQiOiJqcGciLCJmcm96ZW5Gb3Jt
234
+ YXQiOiJqcGciLCJyZWNvbW1lbmRlZCI6dHJ1ZSwidHlwZSI6ImltYWdlIn0s
235
+ ImZpcnN0QXNzZXQiOiIiLCJsZW5ndGgiOjI3OSwicG9zdElkIjoxNjkxNzI2
236
+ NTYxLCJpc0JsaXAiOmZhbHNlLCJzaGFyaW5nTWFpbkltYWdlIjp7InNyYyI6
237
+ Imh0dHA6Ly9pLmtpbmphLWltZy5jb20vZ2F3a2VyLW1lZGlhL2ltYWdlL3Vw
238
+ bG9hZC9zLS1oNlByYzdCRy0tL3dla2Nodmxnam1xeWJwc3czcmJxLmpwZyIs
239
+ ImlzQW5pbWF0ZWQiOmZhbHNlLCJpZCI6Indla2Nodmxnam1xeWJwc3czcmJx
240
+ Iiwid2lkdGgiOjYzNiwiaGVpZ2h0Ijo0MjMsImZvcm1hdCI6ImpwZyIsImZy
241
+ b3plbkZvcm1hdCI6ImpwZyIsInJlY29tbWVuZGVkIjp0cnVlLCJ0eXBlIjpu
242
+ dWxsfSwiZmFjZWJvb2tJbWFnZSI6eyJ1cmkiOiJodHRwOi8vaS5raW5qYS1p
243
+ bWcuY29tL2dhd2tlci1tZWRpYS9pbWFnZS91cGxvYWQvd2VrY2h2bGdqbXF5
244
+ YnBzdzNyYnEuanBnIiwiaWQiOiJ3ZWtjaHZsZ2ptcXlicHN3M3JicSIsIndp
245
+ ZHRoIjo2MzYsImhlaWdodCI6NDIzLCJmb3JtYXQiOiJqcGciLCJyZWNvbW1l
246
+ bmRlZCI6dHJ1ZX0sImRlY29yYXRpb25GbGFncyI6WyJEZWZhdWx0Il0sInB1
247
+ Ymxpc2hUaW1lIjp7InRpbWVzdGFtcCI6MTQyNjUzMTA4MDQ5MywidGltZXpv
248
+ bmUiOiJBbWVyaWNhL05ld19Zb3JrIiwiTWR5SG0iOiIwMy8xNi8yMDE1IDE0
249
+ OjM4IiwiTWR5YXRIbSI6IjAzLzE2LzIwMTUgYXQgMTQ6MzgiLCJyZmM4MjIi
250
+ OiJNb24sIDE2IE1hciAyMDE1IDE4OjM4OjAwIEdNVCIsInlNZEhtc1oiOiIy
251
+ MDE1LTAzLTE2VDE0OjM4OjAwLTA0OjAwIiwiaG1tYSI6IjI6MzhwbSIsImRh
252
+ eSI6Ik1vbmRheSIsIk1kZHl5aG1tYSI6IjMvMTYvMTUgMjozOHBtIiwiZnVs
253
+ bERhdGUiOiJNYXJjaCAxNiwgMjAxNSIsInJlbGF0aXZlIjp7ImFtb3VudCI6
254
+ NDMsInR5cGUiOiJtaW51dGVzIn19LCJhdXRob3JCbG9nTmFtZSI6ImFsZWtz
255
+ YW5kZXJjaGFuIn19
256
+ http_version:
257
+ recorded_at: Mon, 16 Mar 2015 19:22:00 GMT
258
+ recorded_with: VCR 2.9.3
@@ -35,7 +35,7 @@ describe Kinja do
35
35
 
36
36
  it "gets an API token" do
37
37
  VCR.use_cassette('api-token-test') do
38
- expect(kinja.api_token response).to eq '78c7e184-d9da-4555-b8c3-f488e6a7a343'
38
+ expect(kinja.get_api_token response).to eq '78c7e184-d9da-4555-b8c3-f488e6a7a343'
39
39
  end
40
40
  end
41
41
 
@@ -55,7 +55,7 @@ describe Kinja do
55
55
 
56
56
  it "posts stuff" do
57
57
  VCR.use_cassette('write-post') do
58
- post = kinja.post(
58
+ post = kinja.create_post(
59
59
  headline: '',
60
60
  body: '<p>[<a data-attr="http://gawker.com/no-playlist-1685415865" href="http://gawker.com/no-playlist-1685415865">Gawker</a>]</p>',
61
61
  status: 'PUBLISHED',
@@ -64,4 +64,32 @@ describe Kinja do
64
64
  expect(post.code).to be 200
65
65
  end
66
66
  end
67
+
68
+ it "retrieves posts" do
69
+ VCR.use_cassette('get_post') do
70
+ post = kinja.get_post("1691726561")
71
+ expect(post["data"]["headline"][0...-1]).to eq "Is This Australian TV Anchor Wearing a Dick Or What?"
72
+ end
73
+
74
+ VCR.use_cassette('get_post') do
75
+ post = kinja.get_post("http://gawker.com/is-this-australian-tv-anchor-wearing-a-dick-or-what-1691726561")
76
+ expect(post["data"]["headline"][0...-1]).to eq "Is This Australian TV Anchor Wearing a Dick Or What?"
77
+ end
78
+ end
79
+
80
+ it "gets an id from a link" do
81
+ VCR.use_cassette('new_link') do
82
+ new_link = "http://gizmodo.com/how-police-body-cameras-were-designed-to-get-cops-off-t-1691693677/+maxread"
83
+ expect(kinja.get_post_id new_link).to eq "1691693677"
84
+ end
85
+
86
+ VCR.use_cassette('old_link') do
87
+ old_link = "http://lifehacker.com/238306/lifehacker-code-texter-windows"
88
+ expect(kinja.get_post_id old_link).to eq "238306"
89
+ end
90
+ end
91
+
92
+ it "returns the id if it's passed an id instead of a link" do
93
+ expect(kinja.get_post_id "23432343").to eq "23432343"
94
+ end
67
95
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kinja
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam Pash
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-23 00:00:00.000000000 Z
11
+ date: 2015-03-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -143,6 +143,7 @@ executables: []
143
143
  extensions: []
144
144
  extra_rdoc_files: []
145
145
  files:
146
+ - ".env.sample"
146
147
  - ".gitignore"
147
148
  - Gemfile
148
149
  - Guardfile
@@ -154,6 +155,7 @@ files:
154
155
  - lib/kinja/version.rb
155
156
  - spec/fixtures/vcr_cassettes/api-token-test.yml
156
157
  - spec/fixtures/vcr_cassettes/author-path-er.yml
158
+ - spec/fixtures/vcr_cassettes/get_post.yml
157
159
  - spec/fixtures/vcr_cassettes/login.yml
158
160
  - spec/fixtures/vcr_cassettes/write-post.yml
159
161
  - spec/lib/kinja_spec.rb
@@ -184,6 +186,7 @@ summary: Simple gem for creating posts on Kinja
184
186
  test_files:
185
187
  - spec/fixtures/vcr_cassettes/api-token-test.yml
186
188
  - spec/fixtures/vcr_cassettes/author-path-er.yml
189
+ - spec/fixtures/vcr_cassettes/get_post.yml
187
190
  - spec/fixtures/vcr_cassettes/login.yml
188
191
  - spec/fixtures/vcr_cassettes/write-post.yml
189
192
  - spec/lib/kinja_spec.rb