Спам звонки от платформы uchi.ru

Вот не писал бы, если бы не припекло. Бесконечно звонят, предлагают всякие услуги купить. Причем звонят не роботы, а люди. Каждый раз прошу и вежливо и руганью удалить меня из своих БД и больше не звонить НИКОГДА. Не понимают..

Да, зарегистрирован на сайте. Но не сам, а принудительно в школе. И нигде своего согласия не давал на спам звонки. И возможности отозвать у них «согласие» на сайте нет. И учётку удалить тоже нет возможности.

спам звонки

CS-Cart: массовое удаление товара

Как ни странно, в CS-Cart нет явного функционала удаления всего товара. Разработчики предполагали, что администратор должен листать список в разделе «товары» и удалять по 50-100 товаров за раз (т.е. страницу максимум). Это долго и не наш путь..

Есть другой способ: в разделе «Категории», переместить все категории в «Корзину». Хотя в админке и есть кнопка «очистить корзину», по факту она оказалась не в состоянии удалить 15000+ товаров, а просто подвешивала весь сервер. Поэтому далее открываем консоль SSH, и из консоли выполняем:

/usr/bin/php  /var/www/www-root/data/www/каука.ru/g2.php -p --dispatch=categories.delete --category_id=код_категории

После чего ждем… По результату отработки скрипта весь товар с сайта будет удалён.

Если требуется удалить весь товар, НО! оставить все категории на месте, то можно пойти таким путём:

1) Выгрузить в файл id всех товаров:

      mysql -e  "use db; select product_id from cscart_products" | grep awk 'print {$1}' > list.log

      2) Скриптом удалить каждый товар:

      <?php
      $ls=file_get_contents("list.log");
      $products_a= explode("\n", $ls);
      foreach ($products_a as $id) {
          $rz=/usr/bin/php  /var/www/www-root/data/www/цувцув.ru/g2.php -p --dispatch=products.delete --product_id=$id;    
          var_dump($rz);
          echo "$id\n";
      }

      Chromedriver устаревших версий

      До версии 114 включительно, драйвера для тестирования можно было скачать по ссылке http://chromedriver.storage.googleapis.com/index.html Но с версии 115 и выше, гугл стал в открытом виде выкладывать chromedriver только для последних актуальных версий своего браузера. Тем не менее скачать вебдрайвер для «Устаревших» версий браузера остаётся возможным, но несколько надуманным способом.

      1. Открыть ссылку вида https://googlechromelabs.github.io/chrome-for-testing/127.0.6533.88.json, указав в URL необходимую версию
      2. В ответном json найти ссылку и скачать

      Astra Linux и Apache

      При стандартной установке веб сервера на astra linux, после запуска сервиса apache, в браузере по адресу localhos всегда будем получать ошибку в логах «authentication not configured». Решением является добавление в /etc/apache2/apache2.conf тега:

      AstraMode off

      Зачем это и почему мне не ведомо..

      Распознавание картинки в текст при помощи yandex.cloud

      Довелось давече попробовать по распознавать текст при помощи сервиса Vision OCR от Яндекс облако. Результатом родился класс на PHP:

      <?php
      class TCloud {
          public $token="";
          public $cloud_id="";
          public $folder_id="";
          public $zone="";
          public $iam_token="";
          public $debig=false;
          /**
           * Инициализация класса
           * @param type $token - токен
           * @param type $cloud_id - идентификатор облака
           * @param type $folder_id - идентификатор папки
           * @param type $zone - идентификатор зоны     
           */
          public function __construct($token,$cloud_id,$folder_id,$zone,$debug=false) {
              $this->token=$token;
              $this->cloud_id=$cloud_id;
              $this->folder_id=$folder_id;
              $this->zone=$zone;
              $this->debug=$debug;
          }  
          
          /**
           * Получение IAM токена
           * Подробнее: https://yandex.cloud/ru/docs/iam/operations/iam-token/create#api_1
           * @return bool
           */
          public function GetIAMToken(){
              $ch = curl_init("https://iam.api.cloud.yandex.net/iam/v1/tokens");        
              curl_setopt($ch, CURLOPT_VERBOSE, $this->debug);
              curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
              curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
              curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);        
              curl_setopt($ch, CURLOPT_POST, 1);   
              $data["yandexPassportOauthToken"]=$this->token;
              curl_setopt( $ch, CURLOPT_POSTFIELDS, json_encode($data));
              
              $res=curl_exec($ch);        
                if (curl_errno($ch)) {
                  $error_msg = curl_error($ch);
                    var_dump($res);
                    var_dump($error_msg);
                    return false;
                }                
               $res= json_decode($res);
               if ($res==null){return false;};         
               $this->iam_token=$res->iamToken;         
              return true;
          }
          
          /**
           * Распознать картинку
           * @param type $mimetype - тип входящего файла (JPEG, PNG, PDF)
           * @param type $model - режим распозанвания (page)
           * @param type $content - контент в формате BASE64
           * @param type $languageCodes - языки для распознавания (*), массив
           * Подробнее: https://yandex.cloud/ru/docs/vision/quickstart
           */
          public function OCR($mimetype="JPEG",$model="page",$content,$languageCodes=["*"]){        
              $ch = curl_init("https://ocr.api.cloud.yandex.net/ocr/v1/recognizeText");        
              curl_setopt($ch, CURLOPT_VERBOSE, $this->debug);
              curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
              curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
              curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
              curl_setopt($ch, CURLOPT_HTTPHEADER, [
                  "Content-Type: application/json",
                  "Authorization: Bearer ".$this->iam_token,
                  "x-folder-id: ".$this->folder_id,
                  "x-data-logging-enabled: true"
              ]);        
              $data["mimeType"]=$mimetype;
              $data["languageCodes"]=$languageCodes;
              $data["model"]=$model;
              $data["content"]=$content;
              curl_setopt( $ch, CURLOPT_POSTFIELDS, json_encode($data));
              
              $res=curl_exec($ch);        
                if (curl_errno($ch)) {
                  $error_msg = curl_error($ch);
                    var_dump($res);
                    var_dump($error_msg);
                    die();  
                }        
                return $res;
          }
          
      }
      
      

      Результатом возвращается json с блоками распознанного текста/таблиц.

      1 18 19 20 21 22 311