53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
|
# File 'lib/Rubbit/Reddit_Net_Wrapper.rb', line 53
def make_request(request_type,url,params,redirect=false)
uri = URI(url)
if((Time.now - @first_request).to_i > @reset_timer)
@used = 0
@remaining = @reset_timer/2
@reset = @reset_timer
@first_request = Time.now
end
if(redirect==false)
if(@remaining==0)
while((Time.now-@first_request).to_i < @reset_timer)
end
end
@used += 1
@remaining -= 1
@reset = (Time.now - @first_request).to_i
end
case request_type.downcase
when 'post'
req = Net::HTTP::Post.new uri.request_uri
req['X-Ratelimit-Used'] = @used
req['X-Ratelimit-Remaining'] = @remaining
req['x-Ratelimit-Reset'] = @reset
req['Cookie']=@cookie
req.set_form_data(params)
res = Net::HTTP.start(uri.hostname, uri.port){|http|
http.request(req)
}
if(res.code=='302' or res.code=='301')
res = make_request(request_type,res['location'],params,true)
elsif(res['set-cookie']!=nil)
@cookie = res['set-cookie']
end
return res
when 'get'
req = Net::HTTP::Get.new uri.request_uri
req['X-Ratelimit-Used'] = @used
req['X-Ratelimit-Remaining'] = @remaining
req['x-Ratelimit-Reset'] = @reset
req['Cookie']=@cookie
res = Net::HTTP.start(uri.hostname, uri.port){|http|
http.request(req)
}
if(res.code=='302' or res.code=='301')
res = make_request(request_type,res['location'],params,true)
elsif(res['set-cookie']!=nil)
@cookie=res['set-cookie']
end
return res
when 'delete'
puts 'delete placeholder'
else
puts 'Bad Request Type'
end
end
|