wreddit 1.0.2 → 1.1.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 +4 -4
- data/dump.rdb +1 -0
- data/lib/test.rb +1 -1
- data/lib/wreddit.rb +60 -10
- data/lib/wreddit/version.rb +1 -1
- data/wreddit.gemspec +1 -0
- metadata +17 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 760fddb85005b35720778c70127079a95d7c4ebe
|
4
|
+
data.tar.gz: 4fc6dce87175ecba6c3475c9bc187bcc226e06fe
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e9de36c68b463825c2ada5caba6b3db5f496e09b8f123590833a788f836b7f2eba2fd340c2b525c457f7d4e24c23ddbcd518f87ed4d09e614e711998819eebed
|
7
|
+
data.tar.gz: 8d1f25e8f669e41dc691154a7e0222626a566a5ff8aa04d669ff79ec5c18dbee004408dffc1aab741d1da955fa66a1d5049bea1d68b068c8939cee46e9cbea0a
|
data/dump.rdb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
REDIS0006�ܳC�Z��V
|
data/lib/test.rb
CHANGED
data/lib/wreddit.rb
CHANGED
@@ -1,11 +1,13 @@
|
|
1
1
|
require 'json'
|
2
2
|
require 'nokogiri'
|
3
3
|
require 'httparty'
|
4
|
-
|
4
|
+
require 'redis'
|
5
5
|
|
6
6
|
class Wreddit
|
7
7
|
include HTTParty
|
8
|
+
|
8
9
|
def initialize
|
10
|
+
@client = Redis.new
|
9
11
|
@uri = "https://www.reddit.com"
|
10
12
|
end
|
11
13
|
# standard requests
|
@@ -42,8 +44,8 @@ class Wreddit
|
|
42
44
|
# unique parsing (currently only works in JSON)
|
43
45
|
def links
|
44
46
|
links = []
|
45
|
-
response = self.json
|
46
|
-
|
47
|
+
response = JSON.parse(self.json)
|
48
|
+
unless response['data']['children'].nil?
|
47
49
|
response['data']['children'].each do |child|
|
48
50
|
links.push(child['data']['url'])
|
49
51
|
end
|
@@ -55,8 +57,8 @@ class Wreddit
|
|
55
57
|
|
56
58
|
def titles
|
57
59
|
titles = []
|
58
|
-
response = self.json
|
59
|
-
|
60
|
+
response = JSON.parse(self.json)
|
61
|
+
unless response['data']['children'].nil?
|
60
62
|
response['data']['children'].each do |child|
|
61
63
|
titles.push(child['data']['title'])
|
62
64
|
end
|
@@ -68,8 +70,8 @@ class Wreddit
|
|
68
70
|
|
69
71
|
def descriptions
|
70
72
|
descriptions = []
|
71
|
-
response = self.json
|
72
|
-
|
73
|
+
response = JSON.parse(self.json)
|
74
|
+
unless response['data']['children'].nil?
|
73
75
|
response['data']['children'].each do |child|
|
74
76
|
descriptions.push(child['data']['selftext'])
|
75
77
|
end
|
@@ -81,15 +83,63 @@ class Wreddit
|
|
81
83
|
|
82
84
|
# parse helpers
|
83
85
|
def json
|
84
|
-
|
86
|
+
response = ''
|
87
|
+
@uri+='.json'
|
88
|
+
res = @client.get(@uri)
|
89
|
+
if res
|
90
|
+
# if res exists
|
91
|
+
return res
|
92
|
+
else
|
93
|
+
# if res doesn't exist get it from HTTParty
|
94
|
+
res = HTTParty.get(URI(@uri))
|
95
|
+
if res.code == 200
|
96
|
+
# if res is an OK (we are getting data)
|
97
|
+
@client.set(@uri, res, ex: 1)
|
98
|
+
else
|
99
|
+
# return 401, 429, or 500 error codes
|
100
|
+
return res
|
101
|
+
end
|
102
|
+
return res
|
103
|
+
end
|
85
104
|
end
|
86
105
|
|
87
106
|
def xml
|
88
|
-
|
107
|
+
@uri+='.xml'
|
108
|
+
res = @client.get(@uri)
|
109
|
+
if res
|
110
|
+
# if res exists
|
111
|
+
return res
|
112
|
+
else
|
113
|
+
# if res doesn't exist get it from HTTParty
|
114
|
+
res = HTTParty.get(URI(@uri))
|
115
|
+
if res.code == 200
|
116
|
+
# if res is an OK (we are getting data)
|
117
|
+
@client.set(@uri, res)
|
118
|
+
else
|
119
|
+
# return 401, 429, or 500 error codes
|
120
|
+
return res
|
121
|
+
end
|
122
|
+
return res
|
123
|
+
end
|
89
124
|
end
|
90
125
|
|
91
126
|
def html
|
92
|
-
|
127
|
+
res = @client.get(@uri)
|
128
|
+
if res
|
129
|
+
# if res exists
|
130
|
+
return res
|
131
|
+
else
|
132
|
+
# if res doesn't exist get it from HTTParty
|
133
|
+
res = HTTParty.get(URI(@uri))
|
134
|
+
if res.code == 200
|
135
|
+
# if res is an OK (we are getting data)
|
136
|
+
@client.set(@uri, res)
|
137
|
+
else
|
138
|
+
# return 401, 429, or 500 error codes
|
139
|
+
return res
|
140
|
+
end
|
141
|
+
return res
|
142
|
+
end
|
93
143
|
end
|
94
144
|
|
95
145
|
# general parsing
|
data/lib/wreddit/version.rb
CHANGED
data/wreddit.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wreddit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sean Hulse
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-08-
|
11
|
+
date: 2017-08-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: redis
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: httparty
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -98,6 +112,7 @@ files:
|
|
98
112
|
- Rakefile
|
99
113
|
- bin/console
|
100
114
|
- bin/setup
|
115
|
+
- dump.rdb
|
101
116
|
- lib/test.rb
|
102
117
|
- lib/wreddit.rb
|
103
118
|
- lib/wreddit/version.rb
|