Advertisement
zotov-vs

Untitled

Apr 3rd, 2020
226
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.37 KB | None | 0 0
  1. <?php
  2.  
  3.     if($_SERVER["REQUEST_METHOD"]=="POST"){
  4.    
  5.         $data = file_get_contents('php://input');
  6.  
  7.             if (!empty($data)){
  8.        
  9.             $comment = "";         
  10.  
  11.                     send_message($data);
  12.             }    
  13.             else {
  14.                     $comment =  "Нет данных для отправки!";
  15.             }
  16.    
  17.     }
  18.     else {
  19.          $comment = "Метод передачи данных не является POST-запросом!";
  20.     }
  21.     if (!empty($comment)){
  22.         add_to_log($comment);
  23.     }
  24.  
  25.     add_to_log('-------------------------------------------------------------------');
  26.        
  27.  
  28.  
  29. function send_message($m){
  30.  
  31.     add_to_log($m);
  32.  
  33.     $cfg = get_config($_SERVER['DOCUMENT_ROOT']."/config.cfg");
  34.  
  35.     $token = $cfg->token;
  36.     $chats = $cfg->chats;
  37.        
  38.     $uri = 'https://api.telegram.org/bot'.$token.'/sendMessage';
  39.        
  40.  
  41.     $pattern = '/([A-Z!]{2,})\s*[:]+\s*([A-Z0-1!]{1,})/';
  42.  
  43.     preg_match($pattern, $m, $matches);
  44.        
  45.  
  46.        
  47.     if(!empty($matches)){
  48.  
  49.         $exchange   = $matches[1];
  50.         $ticker     = $matches[2];
  51.         $ticker_name    = ''.$exchange.':'.$ticker;
  52.         $ticker_url = 'https://ru.tradingview.com/chart?symbol='.$ticker_name;
  53.        
  54.        
  55.         $message =
  56.             '#'.$ticker.':
  57.             '.preg_replace($pattern,'',$m) .'
  58.             '.'[Открыть график]('.$ticker_url.')';
  59.  
  60.     }
  61.     else{
  62.         $pattern = '/^([A-Z0-1!]{2,})/';
  63.         preg_match($pattern, $m, $matches);
  64.    
  65.         if(!empty($matches)){
  66.             $exchange   = '';
  67.             $ticker     = $matches[1];
  68.             $ticker_name    = ''.$ticker;
  69.             $ticker_url = 'https://ru.tradingview.com/chart?symbol='.$ticker_name;
  70.            
  71.            
  72.             $message =
  73.                 '#'.$ticker.':
  74.                 '.preg_replace($pattern,'',$m) .'
  75.                 '.'[Открыть график]('.$ticker_url.')';
  76.    
  77.         } else{
  78.             $message = $m; 
  79.         }
  80.        
  81.     }
  82.    
  83.     add_to_log($message);
  84.    
  85.  
  86.     foreach ($chats as $chat_id) {
  87.         $data = array(
  88.             'chat_id' => $chat_id,
  89.             'text' => $message,
  90.             'disable_web_page_preview' => True,
  91.             'parse_mode' => 'Markdown'         
  92.         );
  93.         $ch = curl_init($uri); // URL
  94.         curl_setopt($ch, CURLOPT_POST, true);
  95.         curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Не возвращать ответ
  96.         curl_setopt($ch, CURLOPT_PROXY, "proxy.mamsycorp.ru:80");
  97.         curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
  98.         curl_setopt($ch, CURLOPT_PROXYUSERPWD, "mamsy:socks-2019");
  99.    
  100.    
  101.         curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
  102.        
  103.         add_to_log("Отправляем данные: \n".$message." \nВ чат: ".$chat_id."\n");
  104.        
  105.         if(curl_exec($ch) === false)
  106.         {
  107.             $error_string = 'Ошибка curl: ' . curl_error($ch);
  108.            
  109.         }
  110.         else
  111.         {
  112.            $error_string = 'Операция завершена без каких-либо ошибок';
  113.         }
  114.         add_to_log($error_string);
  115.  
  116.        
  117.         curl_close($ch);
  118.     }
  119.  
  120. }
  121.  
  122. function add_to_log($string){
  123.    
  124.     $date = date("Y-m-d");
  125.     $now = date("Y-m-d H:i:s");
  126.        
  127.  
  128.     $log_file_name = $_SERVER['DOCUMENT_ROOT']."/".$date.".log";
  129.  
  130.     $message = $now." ".$string."\r\n";
  131.  
  132.    
  133.     file_put_contents($log_file_name, $message, FILE_APPEND);
  134.    
  135.     echo $message;
  136. }
  137.  
  138. function get_config($file) {
  139.  
  140.     $data = file_get_contents($file);
  141.     $result = json_decode($data);
  142.  
  143.     switch (json_last_error()) {
  144.             case JSON_ERROR_NONE:
  145.                 add_to_log('Чтение настроек - Ошибок нет');
  146.             break;
  147.             case JSON_ERROR_DEPTH:
  148.                 add_to_log('Чтение настроек - Достигнута максимальная глубина стека');
  149.             break;
  150.             case JSON_ERROR_STATE_MISMATCH:
  151.                 add_to_log('Чтение настроек - Некорректные разряды или несоответствие режимов');
  152.             break;
  153.             case JSON_ERROR_CTRL_CHAR:
  154.                 add_to_log('Чтение настроек - Некорректный управляющий символ');
  155.             break;
  156.             case JSON_ERROR_SYNTAX:
  157.                 add_to_log('Чтение настроек - Синтаксическая ошибка, некорректный JSON');
  158.             break;
  159.             case JSON_ERROR_UTF8:
  160.                 add_to_log('Чтение настроек - Некорректные символы UTF-8, возможно неверно закодирован');
  161.             break;
  162.             default:
  163.                 add_to_log('Чтение настроек - Неизвестная ошибка');
  164.             break;
  165.         }
  166.    
  167.     return $result;
  168. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement