Rubbit 0.0.2 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/lib/Rubbit.rb +7 -0
- data/lib/Rubbit/Reddit_Net_Wrapper.rb +1 -1
- data/lib/Rubbit/Rubbit_Construction_Layer.rb +29 -6
- data/lib/Rubbit/Rubbit_Objects.rb +46 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
MWM2ZjJkMzM2YjNjMmRmMGVmZTFkNTBmZTQ5ZDk1OTEyNWM0NzkwYw==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
MTQ1ZTQ0MTI4NTI2NTc2ZTlhZGRhOGI1Y2YxMzRhNTA5YTk3NzRiMg==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
NWZmZDUwOThjYTg3N2MxZDI5MTc1MzJhOGZjZGJjNjkyY2U4MDVmZTQ2NjRl
|
10
|
+
Y2ExMjhiZjUxYmJjOWI1YmE3OGQxYTU4Mjc5NjY5NDFkNjUzNGVhNWI3NWRj
|
11
|
+
NjQyNmY4MWY2Zjk0NjFlYjExN2Y1N2M3ZGVhOTYzY2ViOWJhZWM=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
MWZkMmE1NzgwNGUxZmYwMThiMDA2Mzk0YjIwOWM1ODU5OTE5YzAxZjBkMDM0
|
14
|
+
Y2YwY2Q3N2FkNDg5MDZjMjBjMWY4ODdmZWJlYWU2MmY0MDViOWYzYTg2MzZl
|
15
|
+
ODc1NzBkZWZlZDU4ZDI3NGY4ZTM5NjJiZmQwNzI3Y2JmNmE0OWI=
|
data/lib/Rubbit.rb
CHANGED
@@ -94,7 +94,7 @@ class Reddit_Net_Wrapper
|
|
94
94
|
}
|
95
95
|
|
96
96
|
if(res.code=='302' or res.code=='301')
|
97
|
-
res = make_request(request_type,res['location'],true)
|
97
|
+
res = make_request(request_type,res['location'],params,true)
|
98
98
|
elsif(res['set-cookie']!=nil)
|
99
99
|
@cookie=res['set-cookie']
|
100
100
|
end
|
@@ -46,7 +46,7 @@ class Rubbit_Object_Builder
|
|
46
46
|
def build_submission(link)
|
47
47
|
response = Reddit_Net_Wrapper.instance.make_request('get',link.to_s+".json",{})
|
48
48
|
if(response.code=='200')
|
49
|
-
json = JSON.parse(response.body)
|
49
|
+
json = JSON.parse(response.body,:max_nesting=>100)
|
50
50
|
if(json['kind']=='t1')
|
51
51
|
return Comment.new(json)
|
52
52
|
elsif(json['kind']=='t3')
|
@@ -59,6 +59,15 @@ class Rubbit_Object_Builder
|
|
59
59
|
end
|
60
60
|
end
|
61
61
|
|
62
|
+
def get_comments(link)
|
63
|
+
response = Reddit_Net_Wrapper.instance.make_request('get',link.to_s+".json",{})
|
64
|
+
if(response.code=='200')
|
65
|
+
json = JSON.parse(response.body,:max_nesting=>100)
|
66
|
+
return Listing.new(json[1])
|
67
|
+
end
|
68
|
+
return
|
69
|
+
end
|
70
|
+
|
62
71
|
private_class_method :new
|
63
72
|
end
|
64
73
|
|
@@ -151,9 +160,7 @@ class Rubbit_Poster
|
|
151
160
|
params['extension']=nil
|
152
161
|
params['kind']=kind
|
153
162
|
params['resubmit']=resubmit
|
154
|
-
|
155
|
-
params['save']=true
|
156
|
-
end
|
163
|
+
params['save']=save
|
157
164
|
params['sendreplies']=sendreplies
|
158
165
|
params['id']='#newlink'
|
159
166
|
params['sr']=sr
|
@@ -163,11 +170,27 @@ class Rubbit_Poster
|
|
163
170
|
params['uh']=get_modhash
|
164
171
|
params['url']=url
|
165
172
|
|
166
|
-
puts params
|
167
|
-
|
168
173
|
response = Reddit_Net_Wrapper.instance.make_request('post','http://www.reddit.com/api/submit/',params)
|
169
174
|
return JSON.parse(response.body)
|
175
|
+
end
|
176
|
+
|
177
|
+
def comment(text,parent)
|
178
|
+
params = {}
|
179
|
+
params['text']=text
|
180
|
+
params['thing_id']=parent
|
181
|
+
params['uh']=get_modhash
|
182
|
+
params['renderstylel']='html'
|
183
|
+
|
184
|
+
puts params
|
185
|
+
|
186
|
+
response = Reddit_Net_Wrapper.instance.make_request('post','http://www.reddit.com/api/comment',params)
|
170
187
|
|
188
|
+
puts response.code
|
189
|
+
|
190
|
+
if(response.code=='200')
|
191
|
+
return true
|
192
|
+
end
|
193
|
+
return false
|
171
194
|
end
|
172
195
|
|
173
196
|
def get_modhash
|
@@ -38,6 +38,14 @@ class Subreddit
|
|
38
38
|
def submit(title,url=nil,text=nil,kind='self',resubmit=false,save=false,sendreplies=true)
|
39
39
|
return Rubbit_Poster.instance.submit(@display_name,title,url,text,kind,resubmit,save,sendreplies)
|
40
40
|
end
|
41
|
+
|
42
|
+
def submit_text(title,text=nil,save=false,sendreplies=true)
|
43
|
+
return submit(title,nil,text,'self',false,save,sendreplies)
|
44
|
+
end
|
45
|
+
|
46
|
+
def submit_link(title,url,save=false,sendreplies=true)
|
47
|
+
return submit(title,url,nil,'link',false,save,sendreplies)
|
48
|
+
end
|
41
49
|
end
|
42
50
|
|
43
51
|
class Redditor
|
@@ -71,12 +79,14 @@ class ContentGenerator
|
|
71
79
|
@source = nil
|
72
80
|
@data = nil
|
73
81
|
@after = nil
|
82
|
+
@modhash = nil
|
74
83
|
def initialize(source,limit=100,after='')
|
75
84
|
@source = source
|
76
85
|
@limit = limit
|
77
86
|
@count = 0
|
78
87
|
@data = []
|
79
88
|
@after = after
|
89
|
+
@modhash = nil
|
80
90
|
end
|
81
91
|
|
82
92
|
def each
|
@@ -159,6 +169,23 @@ class ContentGenerator
|
|
159
169
|
def length
|
160
170
|
return @data.length
|
161
171
|
end
|
172
|
+
|
173
|
+
def next
|
174
|
+
listing = Rubbit_Object_Builder.instance.build_listing(@source+'?limit='+1.to_s+"&after="+@after+"&count="+@count.to_s)
|
175
|
+
if(listing.children[listing.children.length-1]!=nil)
|
176
|
+
@after = listing.children[listing.children.length-1].name
|
177
|
+
else
|
178
|
+
@after = nil
|
179
|
+
end
|
180
|
+
if(@after == nil)
|
181
|
+
@data+=[]
|
182
|
+
return nil
|
183
|
+
else
|
184
|
+
@data += listing.children
|
185
|
+
@count+= listing.children.length
|
186
|
+
return listing.children[0]
|
187
|
+
end
|
188
|
+
end
|
162
189
|
end
|
163
190
|
|
164
191
|
class Comment
|
@@ -171,10 +198,16 @@ class Comment
|
|
171
198
|
end
|
172
199
|
end
|
173
200
|
end
|
201
|
+
|
202
|
+
def reply(text)
|
203
|
+
Rubbit_Poster.instance.comment(text,@name)
|
204
|
+
end
|
174
205
|
end
|
175
206
|
|
176
207
|
class Post
|
208
|
+
@comments = nil
|
177
209
|
def initialize(json)
|
210
|
+
@comments = nil
|
178
211
|
if(json['kind']=='t3')
|
179
212
|
data = json['data']
|
180
213
|
data.each_key do |k|
|
@@ -183,6 +216,16 @@ class Post
|
|
183
216
|
end
|
184
217
|
end
|
185
218
|
end
|
219
|
+
def reply(text)
|
220
|
+
return Rubbit_Poster.instance.comment(text,@name)
|
221
|
+
end
|
222
|
+
|
223
|
+
def comments
|
224
|
+
if(@comments==nil)
|
225
|
+
@comments = Rubbit_Object_Builder.instance.get_comments('http://www.reddit.com'+@permalink).children
|
226
|
+
end
|
227
|
+
return @comments
|
228
|
+
end
|
186
229
|
end
|
187
230
|
|
188
231
|
class Message
|
@@ -195,6 +238,9 @@ class Message
|
|
195
238
|
end
|
196
239
|
end
|
197
240
|
end
|
241
|
+
def reply(text)
|
242
|
+
Rubbit_Poster.instance.comment(text,@name)
|
243
|
+
end
|
198
244
|
end
|
199
245
|
|
200
246
|
class Listing
|