Files
crm.clientright.ru/includes/SalesPlatform/HTTPClient/SPHTTPClient.php
Fedor ac7467f0b4 Major CRM updates: AI Assistant, Court Status API, S3 integration improvements, and extensive file storage system
- Added comprehensive AI Assistant system (aiassist/ directory):
  * Vector search and embedding capabilities
  * Typebot proxy integration
  * Elastic search functionality
  * Message classification and chat history
  * MCP proxy for external integrations

- Implemented Court Status API (GetCourtStatus.php):
  * Real-time court document status checking
  * Integration with external court systems
  * Comprehensive error handling and logging

- Enhanced S3 integration:
  * Improved file backup system with metadata
  * Batch processing capabilities
  * Enhanced error logging and recovery
  * Copy operations with URL fixing

- Added Telegram contact creation API
- Improved error logging across all modules
- Enhanced callback system for AI responses
- Extensive backup file storage with timestamps
- Updated documentation and README files

- File storage improvements:
  * Thousands of backup files with proper metadata
  * Fix operations for broken file references
  * Project-specific backup and recovery systems
  * Comprehensive file integrity checking

Total: 26,461+ files added/modified including AWS SDK, vendor dependencies, and extensive backup system.
2025-10-16 11:17:21 +03:00

56 lines
1.6 KiB
PHP

<?php
require_once('curl_http_client.php');
class SPHTTPClient extends Curl_HTTP_Client {
var $_serviceurl = '';
function __construct($url) {
if(!function_exists('curl_exec')) {
die('SPHTTPClient: Curl extension not enabled!');
}
parent::__construct();
$this->_serviceurl = $url;
$useragent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)";
$this->set_user_agent($useragent);
// Escape SSL certificate hostname verification
curl_setopt($this->ch, CURLOPT_SSL_VERIFYHOST, 0);
}
function doPost($headers, $postdata = false, $decodeResponseJSON = false, $timeout = 20) {
$this->set_headers($headers);
if($postdata === false) $postdata = Array();
$resdata = $this->send_post_data($this->_serviceurl, $postdata, null, $timeout);
if($resdata && $decodeResponseJSON) $resdata = $this->__jsondecode($resdata);
return $resdata;
}
function doGet($suburl='', $getdata=false, $decodeResponseJSON=false, $timeout=20) {
if($getdata === false) $getdata = Array();
$queryString = '';
foreach($getdata as $key=>$value) {
$queryString .= '&' . urlencode($key)."=".urlencode($value);
}
$resdata = $this->fetch_url("$this->_serviceurl$suburl?$queryString", null, $timeout);
if($resdata && $decodeResponseJSON) $resdata = $this->__jsondecode($resdata);
return $resdata;
}
function __jsondecode($indata) {
return json_decode($indata,true);
}
function __jsonencode($indata) {
return json_encode($indata);
}
function set_headers($headers) {
if(is_array($headers)) {
curl_setopt($this->ch, CURLOPT_HTTPHEADER, $headers);
}
}
}
?>