Skip to content

Commit 333ac6c

Browse files
author
CleanTalk
committed
Merge pull request #3 from VladCleantalk/master
added check_newuser & check_message
2 parents 49dcc05 + 15fe326 commit 333ac6c

1 file changed

Lines changed: 264 additions & 6 deletions

File tree

cleantalk.class.rb

Lines changed: 264 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
1+
require 'net/http'
2+
require 'json'
23

34
class CleantalkResponse {
45

@@ -62,12 +63,12 @@ class CleantalkResponse {
6263
#
6364
@js_disabled = nil
6465

65-
#
66+
#
6667
#Stop queue message, 1|0
6768
#@var int
6869
#
6970
@stop_queue = nil
70-
71+
7172
#
7273
#Account shuld by deactivated after registration, 1|0
7374
#@var int
@@ -87,12 +88,12 @@ class CleantalkResponse {
8788
#
8889
def initialize(response = nil, obl = nil)
8990
if (response.length > 0)
90-
response.each_index{|elem|@elem = response.at(elem)}
91+
response.each_index{|elem|@elem = response.at(elem)}
9192
else
9293
@errno = obj.errno
9394
@errstr = obj.errstr
9495

95-
@errstr = @errstr.gsub(/.+(\*\*\*.+\*\*\*).+/, \1, @errstr)
96+
@errstr = @errstr.gsub(/.+(\*\*\*.+\*\*\*).+/, \1, @errstr)
9697

9798
obj.stop_words.empty ? @stop_words = obj.stop_words : @stop_words = nil
9899
obj.comment.empty ? @comment = obj.comment : @comment = nil
@@ -107,7 +108,264 @@ def initialize(response = nil, obl = nil)
107108
obj.account_status.empty ? @account_status = obj.account_status : @account_status = -1
108109

109110
if (@errno !== 0 && @errstr !== nil && @comment === nil)
110-
@comment = '*** ' + @errstr + ' Antispam service cleantalk.org ***'
111+
@comment = '*** ' + @errstr + ' Antispam service cleantalk.org #**'
111112
end
112113
end
114+
end
115+
116+
#
117+
# Request class
118+
#
119+
class CleantalkRequest {
120+
121+
#
122+
# All http request headers
123+
# @var string
124+
#
125+
@all_headers = nil;
126+
127+
#
128+
# Last error number
129+
# @var integer
130+
#
131+
@last_error_no = nil;
132+
133+
#
134+
# Last error time
135+
# @var integer
136+
#
137+
@last_error_time = nil;
138+
139+
#
140+
# Last error text
141+
# @var string
142+
#
143+
@last_error_text = nil;
144+
145+
#
146+
# User message
147+
# @var string
148+
#
149+
@message = nil;
150+
151+
#
152+
# Post example with last comments
153+
# @var string
154+
#
155+
@example = nil;
156+
157+
#
158+
# Auth key
159+
# @var string
160+
#
161+
@auth_key = nil;
162+
163+
#
164+
# Engine
165+
# @var string
166+
#
167+
@agent = nil;
168+
169+
#
170+
# Is check for stoplist,
171+
# valid are 0|1
172+
# @var int
173+
#
174+
@stoplist_check = nil;
175+
176+
#
177+
# Language server response,
178+
# valid are 'en' or 'ru'
179+
# @var string
180+
#
181+
@response_lang = nil;
182+
183+
#
184+
# User IP
185+
# @var strings
186+
#
187+
@sender_ip = nil;
188+
189+
#
190+
# User email
191+
# @var strings
192+
#
193+
@sender_email = nil;
194+
195+
#
196+
# User nickname
197+
# @var string
198+
#
199+
@sender_nickname = nil;
200+
201+
#
202+
# Sender info JSON string
203+
# @var string
204+
#
205+
@sender_info = nil;
206+
207+
#
208+
# Post info JSON string
209+
# @var string
210+
#
211+
@post_info = nil;
212+
213+
#
214+
# Is allow links, email and icq,
215+
# valid are 1|0
216+
# @var int
217+
#
218+
@allow_links = nil;
219+
220+
#
221+
# Time form filling
222+
# @var int
223+
#
224+
@submit_time = nil;
225+
226+
#
227+
# Is enable Java Script,
228+
# valid are 0|1|2
229+
# Status:
230+
# nil - JS html code not inserted into phpBB templates
231+
# 0 - JS disabled at the client browser
232+
# 1 - JS enabled at the client broswer
233+
# @var int
234+
#
235+
@js_on = nil;
236+
237+
#
238+
# user time zone
239+
# @var string
240+
#
241+
@tz = nil;
242+
243+
#
244+
# Feedback string,
245+
# valid are 'requset_id:(1|0)'
246+
# @var string
247+
#
248+
@feedback = nil;
249+
250+
#
251+
# Phone number
252+
# @var type
253+
#
254+
@phone = nil;
255+
256+
#
257+
# Fill params with constructor
258+
# @param type $params
259+
#
260+
def initialize(params = nil)
261+
if (params.length>0)
262+
params.each_index{|elem|@elem = params.at(elem)}
263+
end
264+
end
265+
end
266+
267+
#
268+
# Cleantalk class create request
269+
#
270+
class Cleantalk {
271+
272+
#
273+
# Debug level
274+
# @var int
275+
#
276+
@debug = 0;
277+
278+
#
279+
# Server connection timeout in seconds
280+
# @var int
281+
#
282+
@server_timeout = 3;
283+
284+
#
285+
# Cleantalk server url
286+
# @var string
287+
#
288+
@server_url = null;
289+
290+
#
291+
# Last work url
292+
# @var string
293+
#
294+
@work_url = null;
295+
296+
#
297+
# WOrk url ttl
298+
# @var int
299+
#
300+
@server_ttl = null;
301+
302+
#
303+
# Time wotk_url changer
304+
# @var int
305+
#
306+
@server_changed = null;
307+
308+
#
309+
# Flag is change server url
310+
# @var bool
311+
#
312+
@server_change = false;
313+
314+
#
315+
# Codepage of the data
316+
# @var bool
317+
#
318+
@data_codepage = null;
319+
320+
#
321+
# API version to use
322+
# @var string
323+
#
324+
@api_version = '/api2.0';
325+
326+
#
327+
# Use https connection to servers
328+
# @var bool
329+
#
330+
@ssl_on = false;
331+
332+
#
333+
# Minimal server response in miliseconds to catch the server
334+
#
335+
#
336+
@min_server_timeout = 50;
337+
338+
#
339+
# Function checks whether it is possible to publish the message
340+
# @param CleantalkRequest $request
341+
# @return type
342+
#
343+
def isAllowMessage(request)
344+
uri = URI 'https://moderate.cleantalk.org/api2.0'
345+
connection = Net::HTTP.new uri.host, uri.port
346+
http_request = Net::HTTP::Post.new uri
347+
form_data = Array.new
348+
request.each_index{|elem|form_data.elem = params.at(elem)}
349+
form_data{:method_name => 'check_message'}
350+
http_request.set_form form_data, 'multipart/form-data'
351+
response = connection.request http_request
352+
return JSON.parse(response.entity)
353+
end
354+
355+
#
356+
# Function checks whether it is possible to publish the message
357+
# @param CleantalkRequest $request
358+
# @return type
359+
#
360+
def isAllowUser(request)
361+
uri = URI 'https://moderate.cleantalk.org/api2.0'
362+
connection = Net::HTTP.new uri.host, uri.port
363+
http_request = Net::HTTP::Post.new uri
364+
form_data = Array.new
365+
request.each_index{|elem|form_data.elem = params.at(elem)}
366+
form_data{:method_name => 'check_newuser'}
367+
http_request.set_form form_data, 'multipart/form-data'
368+
response = connection.request http_request
369+
return JSON.parse(response.entity)
370+
end
113371
end

0 commit comments

Comments
 (0)