Rubbit 0.0.9 → 0.0.10

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- ZDE4NjRhMDAxNGRjMjJlNjNhMmM0ZmVmMzE5YWE3YTM1NzE1ZDdkOA==
4
+ ZjUyYjZhMTBkMjVkNzU3ZWZkYzk1N2Y5MDFjYzNlNmQxMjRmNTVjYw==
5
5
  data.tar.gz: !binary |-
6
- YWYxZjg4NGU2ZGIxNWJlMjJkZTgwNmMyNDVmY2RhYTUyZWNkZGYwMg==
6
+ YmQyYmZlMzM0ZTA2NmE5NDFmNzJmODNhYzUwMDIxMTRjZjFhYmUxZA==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- ZWE3YjNjYjA3MTQwZThmOGQ0ZTI4OTIwMjQ4ZWEyZjQ2MzY2ZjllMTYwOWY0
10
- NGNjM2MwNGZiMGNmOWVmMmM0YTZiMmUzN2Q3OTMwOGVjZDJmMDNjOWIyNGI2
11
- NjRmZDIzNTg0NWNjYzY2NWJjNTVmNGY1MGY3OWRjOTI2NDNhMGM=
9
+ MjEwNjFjYzRhYzE5ODRiNzY5ZWMzZTQwZTdlZmVjOWUwZjJmNTAyNDkyMWYz
10
+ MWIyYTJkYjQ3NzhmODUyMTVmNTg1ZWQxY2RkYWI1ZDM3ZjdjYTkwMDk4MGJi
11
+ YmI5YTYyYjkzNGQzYzA5YjU1MzM3YjU0ZDk3Yzc4N2NkNWVjNjU=
12
12
  data.tar.gz: !binary |-
13
- MTkxNWY1MWZiNGJlMjgxYTgxNDRmYzViNTIyNzEzODJjYTA0Yjc5YzhhZjBh
14
- MmRjMmQ0ZDQ1OTE4MzU2MGUzZGIyOWFkNjdkN2QyMWMzMDIwYWNlYjIxMDNh
15
- ODI2ODUzODFmMmVkMDFjNjZhMWQ4MjhkOGJiOGQ4MzRhZjYwYzA=
13
+ NzMwMjFkOTI0MzE1NDZkN2I2MThjNDBlOTI0YTMyNDkyYjkzZTAwOTlhYmVl
14
+ YTcyODk0MWRiNDY4MGQyMWViOTBhZjI1Yzg0YTVjNGU1MWFhNzcyYWQ2MzU1
15
+ MTg4YjAwYTViNTQ3MTM5NjRlMjQwOGUyNjYzN2I5MmQ0MTZkNjk=
@@ -20,6 +20,10 @@ class Rubbit
20
20
  return @object_builder.build_user(user)
21
21
  end
22
22
 
23
+ def set_request_period(period)
24
+ @object_builder.set_request_period(period)
25
+ end
26
+
23
27
  def login(user=nil,passwd=nil)
24
28
  if(user==nil)
25
29
  print('Enter username: ')
@@ -114,6 +118,10 @@ class Rubbit
114
118
  return @object_builder.build_submission(link)
115
119
  end
116
120
 
121
+ def get_comments(subreddit,limit)
122
+ return @object_builder.get_comments('http://www.reddit.com/r/'+subreddit+'/comments.json',limit)
123
+ end
124
+
117
125
  def get_inbox(limit=100)
118
126
  if(me!=nil)
119
127
  return ContentGenerator.new('http://www.reddit.com/message/inbox.json',limit)
@@ -128,6 +136,14 @@ class Rubbit
128
136
  return nil
129
137
  end
130
138
 
139
+ def friend(user)
140
+ return @rubbit_poster.friend('friend',user,@me.name)
141
+ end
142
+
143
+ def unfriend(user)
144
+ return @rubbut_poster.unfriend('friend',user,@me.name)
145
+ end
146
+
131
147
  def get_sent(limit=100)
132
148
  if(me!=nil)
133
149
  return ContentGenerator.new('http://www.reddit.com/message/sent.json',limit)
@@ -10,6 +10,8 @@ class Reddit_Net_Wrapper
10
10
  @first_request = nil
11
11
  @user_agent = nil
12
12
 
13
+ @reset_timer = nil
14
+
13
15
  @cookie = nil
14
16
 
15
17
  @@instance = nil
@@ -25,11 +27,22 @@ class Reddit_Net_Wrapper
25
27
  return @@instance
26
28
  end
27
29
 
30
+ def set_reset_period(period=60)
31
+ if(period%2!=0 or period>60 or period<2)
32
+ return false
33
+ else
34
+ @reset_timer = period
35
+ return true
36
+ end
37
+
38
+ end
39
+
28
40
  def initialize(user)
29
41
  @used = 0
30
42
  @remaining = 30
31
43
  @reset = 60
32
44
  @first_request = 0
45
+ @reset_timer = 60
33
46
  @user_agent = 'Rubbit/1.0 Ruby RAW by The1RGood USED BY: '
34
47
  @user_agent+=user
35
48
 
@@ -39,19 +52,18 @@ class Reddit_Net_Wrapper
39
52
  def make_request(request_type,url,params,redirect=false)
40
53
  uri = URI(url)
41
54
 
42
- if(@remaining==0)
43
- while((Time.now-@first_request).to_i < 60)
44
- end
45
- end
46
-
47
- if((Time.now - @first_request).to_i > 60)
55
+ if((Time.now - @first_request).to_i > @reset_timer)
48
56
  @used = 0
49
- @remaining = 30
50
- @reset = 60
57
+ @remaining = @reset_timer/2
58
+ @reset = @reset_timer
51
59
  @first_request = Time.now
52
60
  end
53
61
 
54
62
  if(redirect==false)
63
+ if(@remaining==0)
64
+ while((Time.now-@first_request).to_i < @reset_timer)
65
+ end
66
+ end
55
67
  @used += 1
56
68
  @remaining -= 1
57
69
  @reset = (Time.now - @first_request).to_i
@@ -22,6 +22,10 @@ class Rubbit_Object_Builder
22
22
  Reddit_Net_Wrapper.instance(net_name)
23
23
  end
24
24
 
25
+ def set_request_period(period)
26
+ return Reddit_Net_Wrapper.instance.set_reset_period(period)
27
+ end
28
+
25
29
  def build_subreddit(display_name)
26
30
  response = Reddit_Net_Wrapper.instance.make_request('get','http://www.reddit.com/r/'+display_name.to_s+"/about.json",{})
27
31
  puts response.code
@@ -67,16 +71,8 @@ class Rubbit_Object_Builder
67
71
  end
68
72
  end
69
73
 
70
- def get_comments(link)
71
- response = Reddit_Net_Wrapper.instance.make_request('get',link.to_s+".json",{})
72
- if(response.code=='200')
73
- json = JSON.parse(response.body,:max_nesting=>100)
74
- return Listing.new(json[1])
75
- elsif(response.code=='403')
76
- raise PrivateDataException
77
- else
78
- raise InvalidSubmissionException, "Could not get comment"
79
- end
74
+ def get_comments(link,limit)
75
+ return ContentGenerator.new(link,limit)
80
76
  end
81
77
 
82
78
  private_class_method :new
@@ -231,6 +227,54 @@ class Rubbit_Poster
231
227
  return response.body
232
228
  end
233
229
 
230
+ def friend(type,user,container,info=nil,duration=nil)
231
+ params = {}
232
+ params['api_type']='json'
233
+ params['type']=type
234
+ params['name']=user
235
+ params['modhash']=get_modhash
236
+ case type
237
+ when 'friend'
238
+ params['note']=info
239
+ params['container']=container
240
+ when 'moderator'
241
+ params['container']=container
242
+ params['permissions']=info
243
+ when 'moderator_invite'
244
+ params['container']=container
245
+ params['permissions']=info
246
+ when 'contributor'
247
+ params['container']=container
248
+ when 'banned'
249
+ params['container']=container
250
+ params['note']=info
251
+ params['duration']=duration
252
+ when 'wikibanned'
253
+ params['container']=container
254
+ params['note']=info
255
+ params['duration']=duration
256
+ when 'wikicontributor'
257
+ params['container']=container
258
+ end
259
+
260
+ response = Reddit_Net_Wrapper.instance.make_request('post','http://www.reddit.com/api/friend',params)
261
+
262
+ return response.body
263
+ end
264
+
265
+ def unfriend(type,user,container)
266
+ params = {}
267
+ params['api_type']='json'
268
+ params['type']=type
269
+ params['name']=user
270
+ params['modhash']=get_modhash
271
+ params['container']=container
272
+
273
+ response = Reddit_Net_Wrapper.instance.make_request('post','http://www.reddit.com/api/unfriend',params)
274
+
275
+ return response.body
276
+ end
277
+
234
278
  def get_modhash
235
279
  response = Reddit_Net_Wrapper.instance.make_request('get','http://www.reddit.com/user/'+@logged_in_user+'/about.json',{})
236
280
  data = JSON.parse(response.body)
@@ -55,6 +55,34 @@ class Subreddit
55
55
  def get_banned(limit=100)
56
56
  return ContentGenerator.new('http://www.reddit.com/r/'+@display_name.to_s+'/about/banned.json',limit)
57
57
  end
58
+
59
+ def get_moderators(limit=100)
60
+ return ContentGenerator.new('http://www.reddit.com/r/'+@display_name.to_s+'/about/moderators.json',limit)
61
+ end
62
+
63
+ def add_moderator(name,permissions)
64
+ return Rubbit_Poster.instance.friend('moderator_invite',name,@display_name,permissions)
65
+ end
66
+
67
+ def add_contributor(name)
68
+ return Rubbit_Poster.instance.friend('contributor',name,@display_name)
69
+ end
70
+
71
+ def ban(name,note,duration)
72
+ return Rubbit_Poster.instance.friend('banned',name,@display_name,note,duration)
73
+ end
74
+
75
+ def remove_moderator(name)
76
+ return Rubbit_Poster.instance.unfriend('moderator',name,@display_name)
77
+ end
78
+
79
+ def remove_contributor(name)
80
+ return Rubbit_Poster.instance.unfriend('contributor',name,@display_name)
81
+ end
82
+
83
+ def unban(name)
84
+ return Rubbit_Poster.instance.unfriend('ban',name,@display_name)
85
+ end
58
86
  end
59
87
 
60
88
  class Redditor
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: Rubbit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 0.0.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - /u/The1RGood