11require 'net/http'
22require 'json'
33
4- class CleantalkResponse {
4+ class CleantalkResponse
55
66 #
77 # Is stop words
@@ -93,7 +93,7 @@ def initialize(response = nil, obl = nil)
9393 @errno = obj . errno
9494 @errstr = obj . errstr
9595
96- @errstr = @errstr . gsub ( /.+(\* \* \* .+\* \* \* ).+/ , \1, @errstr )
96+ # @errstr = @errstr.gsub(/.+(\*\*\*.+\*\*\*).+/, \1, @errstr)
9797
9898 obj . stop_words . empty ? @stop_words = obj . stop_words : @stop_words = nil
9999 obj . comment . empty ? @comment = obj . comment : @comment = nil
@@ -107,16 +107,19 @@ def initialize(response = nil, obl = nil)
107107 obj . inactive . empty ? @inactive = obj . inactive : @inactive = 0
108108 obj . account_status . empty ? @account_status = obj . account_status : @account_status = -1
109109
110- if ( @errno !== 0 && @errstr !== nil && @comment = == nil )
110+ if ( @errno != 0 && @errstr != nil && @comment == nil )
111111 @comment = '*** ' + @errstr + ' Antispam service cleantalk.org #**'
112+ end
112113 end
113114 end
114115end
115116
117+
116118 #
117119 # Request class
118120 #
119- class CleantalkRequest {
121+ class CleantalkRequest
122+ attr_accessor :all_headers , :last_error_no , :last_error_time , :last_error_text , :message , :example , :auth_key , :agent , :stoplist_check , :response_lang , :sender_ip , :sender_email , :sender_nickname , :sender_info , :post_info , :allow_links , :submit_time , :js_on , :tz , :feedback , :phone
120123
121124 #
122125 # All http request headers
@@ -200,7 +203,7 @@ class CleantalkRequest {
200203
201204 #
202205 # Sender info JSON string
203- # @var string
206+ # @var hash
204207 #
205208 @sender_info = nil ;
206209
@@ -225,14 +228,14 @@ class CleantalkRequest {
225228
226229 #
227230 # Is enable Java Script,
228- # valid are 0|1|2
231+ # valid are 0|1
229232 # Status:
230233 # nil - JS html code not inserted into phpBB templates
231234 # 0 - JS disabled at the client browser
232235 # 1 - JS enabled at the client broswer
233236 # @var int
234237 #
235- @js_on = nil ;
238+ @js_on = 0 ;
236239
237240 #
238241 # user time zone
@@ -258,7 +261,7 @@ class CleantalkRequest {
258261 # @param type $params
259262 #
260263 def initialize ( params = nil )
261- if ( params . length >0 )
264+ if ( params != nil && params . length >0 )
262265 params . each_index { |elem |@elem = params . at ( elem ) }
263266 end
264267 end
@@ -267,7 +270,7 @@ def initialize(params = nil)
267270 #
268271 # Cleantalk class create request
269272 #
270- class Cleantalk {
273+ class Cleantalk
271274
272275 #
273276 # Debug level
@@ -285,25 +288,25 @@ class Cleantalk {
285288 # Cleantalk server url
286289 # @var string
287290 #
288- @server_url = null ;
291+ @server_url = nil ;
289292
290293 #
291294 # Last work url
292295 # @var string
293296 #
294- @work_url = null ;
297+ @work_url = nil ;
295298
296299 #
297300 # WOrk url ttl
298301 # @var int
299302 #
300- @server_ttl = null ;
303+ @server_ttl = nil ;
301304
302305 #
303306 # Time wotk_url changer
304307 # @var int
305308 #
306- @server_changed = null ;
309+ @server_changed = nil ;
307310
308311 #
309312 # Flag is change server url
@@ -315,7 +318,7 @@ class Cleantalk {
315318 # Codepage of the data
316319 # @var bool
317320 #
318- @data_codepage = null ;
321+ @data_codepage = nil ;
319322
320323 #
321324 # API version to use
@@ -354,14 +357,19 @@ def isAllowUser(request)
354357 end
355358
356359 def httpRequest ( method_name , request )
357- uri = URI 'https ://moderate.cleantalk.org/api2.0'
360+ uri = URI 'http ://moderate.cleantalk.org/api2.0'
358361 connection = Net ::HTTP . new uri . host , uri . port
359362 http_request = Net ::HTTP ::Post . new uri
360- form_data = Array . new
361- request . each_index { |elem |form_data . elem = params . at ( elem ) }
362- form_data { :method_name => method_name }
363- http_request . set_form form_data , 'multipart/form-data'
364- response = connection . request http_request
363+ form_data = { }
364+ attrs = request . instance_variables
365+ attrs . each { |elem |form_data [ elem . to_s . sub ( '@' , '' ) ] = request . instance_variable_get ( elem ) }
366+ form_data [ 'method_name' ] = method_name
367+
368+ req = Net ::HTTP ::Post . new ( uri , initheader = { 'Content-Type' => 'application/json' } )
369+ req . body = form_data . to_json
370+ response = Net ::HTTP . start ( uri . hostname , uri . port ) do |http |
371+ http . request ( req )
372+ end
365373 return JSON . parse ( response . entity )
366374 end
367- end
375+ end
0 commit comments