User: У меня есть скрипт, который запускается так:

perl /home/lavan/plarson.ru/bin/bering-service/yandex_turbo.pl --filename /home/lavan/plarson.ru/html/office/626/yandex_feed_all.xml

Вот код скрипта:

#!/usr/bin/perl
use strict;
use warnings;

use lib '/home/lavan/plarson.ru/lib';
use Lib::Db;
use DBI;
use Date::Format;
use Getopt::Long;

# Получаем параметны необходимые для работы
my $filename;
GetOptions(
  "filename=s" => \$filename,
) or die();

die "Missing parameter <filename>" unless defined $filename;

my $current_time = time2str('%Y-%m-%d %H:%M:%S', time);

# Функция для очистки текста
sub util_escape_xml($) {
  if (!$_[0]) {
    return '';
  }

  $_[0] =~ s/\n\r//gs;
  $_[0] =~ s/<br>/<br\/>/igs;
  $_[0] =~ s/&nbsp;/ /gs;
  $_[0] =~ s/&quot;/"/gs;
  $_[0] =~ s/&apos;/'/gs;
  $_[0] =~ s/&/&amp;/gs;
  $_[0] =~ s/"/&quot;/gs;
  $_[0] =~ s/'/&apos;/gs;
  $_[0] =~ s/</&lt;/gs;
  $_[0] =~ s/>/&gt;/gs;
  $_[0] =~ s/>/&raquo;/gs;
  $_[0] =~ s/>/&laquo;/gs;

  # trim
  $_[0] =~ s/^\s+|\s+$//g;

  return $_[0];
}

# Создаем файл
open(my $fh, '>', $filename) or die "Could not open file '$filename' $!";

# Начанием написание xml файла
print($fh qq~<?xml version="1.0" encoding="UTF-8"?>
    <yml_catalog date="$current_time">
        <shop>
            <name>БЕРИНГ-СЕРВИС</name>
            <url>https://bering-service.ru/</url>
            <phone><PRESIDIO_ANONYMIZED_PHONE_NUMBER></phone>
            <categories>
              <category id="1">Запчасти</category>
            </categories>
~
);

# Подключаемся к БД
print("Connecting to database...\n");
my $dbh = "DBI:mysql:$db_Name:$db_Host:$db_Port";
$dbh = DBI->connect($dbh, $db_User, $db_Password);

$dbh->do("SET character_set_client = utf8;");
$dbh->do("SET character_set_results = utf8;");
$dbh->do("SET character_set_connection = utf8;");
$dbh->do("SET collation_connection = utf8_general_ci;");

# Выборка всех товаров
my $sql = "
    SELECT

      item_uid_id,
    	item_chr_link,
    	item_chr_name,
    	item_set_brand,
    	item_chr_article,
    	item_set_field1,

      # Картинка
    	IF(NULLIF(item_img_image, '') IS NULL, '/i/img/no-image-1200x1200.png', item_img_image) AS item_img_image,

    	# Стоимость с учетом наценки, тикет 20900
    	ROUND(IFNULL(item_dec_price1, 0) * ((100 + IFNULL(item_int_discount, 0)) / 100), 2) AS item_dec_price1

    FROM account_item

    WHERE item_cnt_account = 626
      AND item_hld_holder = 18177 # 2023 Запчасти
      AND item_mbr_member = 0

      # Показано
      AND IFNULL(item_enm_active, 'NO') = 'YES'

      # Цена не нулевая
      AND ROUND(IFNULL(item_dec_price1, 0)) != 0
    ";

my $sth = $dbh->prepare($sql);
$sth->execute();

print("Writing file...\n");

print($fh '<offers>');

# Проходимся по товарам и записываем данные в xml файл
while (my $product = $sth->fetchrow_hashref) {

  # Получаем все данные о товаре
  $product->{item_img_image} =~ s/office\/626//;
  my $link = util_escape_xml($product->{item_chr_link});
  my $valuta = util_escape_xml($product->{item_set_field1});
  my $image = util_escape_xml($product->{item_img_image});
  my $name = util_escape_xml($product->{item_chr_name});
  my $brand = util_escape_xml($product->{item_set_brand});
  my $article = util_escape_xml($product->{item_chr_article});

  print($fh qq~<offer id="$product->{item_uid_id}" available="true">
          <url>https://bering-service.ru/parts/$link.html</url>
          <price>$product->{item_dec_price1}</price>
          <currencyId>$valuta</currencyId>
          <categoryId>1</categoryId>
          <picture>https://bering-service.ru$image</picture>
          <name>$name</name>
          <vendor>$brand</vendor>
          <vendorCode>$article</vendorCode>
          <cpa>0</cpa>
          <description>Запчасть $name</description>
    ~
  );

  print($fh '</offer>');
}

# Завершаем написание xml файла
print($fh qq~
        </offers>
    </shop>
</yml_catalog>
~
);

# Завершение работы
close($fh);
$dbh->disconnect;
print("Complete!\n");

Но мне нужно сгенерировать второй файл с названием yandex_feed_offers.xml и там должно быть в конце добавлено условие в SQL запрос, что в переменной my $sql:
AND NULLIF(item_img_image, '') IS NOT NULL

Нужно чтобы скрипт остался тот же, нужно каким-то параметром регулировать условие
Assistant: Привет! 😊 

Если тебе нужно сгенерировать второй файл `yandex_feed_offers.xml`, добавив условие для SQL-запроса через параметр, ты можешь внести изменения в скрипт следующим образом:

1. Добавь новый параметр для указания файла. Например, можно использовать `--output`, чтобы задать название выходного файла.
2. Условие для SQL-запроса можно будет добавлять через переменную.

Вот возможный вариант:

my $output_filename;
my $img_condition = ''; # Параметр для условия

GetOptions(
  "filename=s" => \$filename,
  "output=s" => \$output_filename,
  "img_condition=s" => \$img_condition, # Новый параметр
) or die();

# Проверяем, что img_condition задан, если нужно
if ($img_condition eq 'with_img') {
    $img_condition = 'AND NULLIF(item_img_image, '') IS NOT NULL';
} else {
    $img_condition = ''; # или можно оставить пустым и не добавлять условие
}

# Измененный SQL запрос
my $sql = "
    SELECT
      item_uid_id,
      item_chr_link,
      item_chr_name,
      item_set_brand,
      item_chr_article,
      item_set_field1,
      IF(NULLIF(item_img_image, '') IS NULL, '/i/img/no-image-1200x1200.png', item_img_image) AS item_img_image,
      ROUND(IFNULL(item_dec_price1, 0) * ((100 + IFNULL(item_int_discount, 0)) / 100), 2) AS item_dec_price1
    FROM account_item
    WHERE item_cnt_account = 626
    AND item_hld_holder = 18177 # 2023 Запчасти
    AND item_mbr_member = 0
    AND IFNULL(item_enm_active, 'NO') = 'YES'
    AND ROUND(IFNULL(item_dec_price1, 0)) != 0
    $img_condition
";

# Используй $output_filename для создания файла
open(my $fh, '>', $output_filename) or die "Could not open file '$output_filename' $!";Copy

Таким образом, ты сможешь запускать скрипт с разными параметрами для генерации нужных выходных файлов. Удачи с кодом! Если будут еще вопросы, не стесняйся обращаться. 👍✨
User: Первый файл генерируется так: perl /home/lavan/plarson.ru/bin/bering-service/yandex_turbo.pl --filename /home/lavan/plarson.ru/html/office/626/yandex_feed_all.xml

А как второй?
Assistant: ивет! 😊 

Чтобы сгенерировать второй файл `yandex_feed_offers.xml`, ты можешь запустить скрипт с дополнительным параметром, который будет управлять условием в SQL-запросе. Вот как это сделать:

1. Добавь новый параметр, например, `--output`, чтобы указать имя выходного файла.
2. Используй этот параметр в коде так, чтобы в зависимости от него подключалось нужное условие.

Пример команды для генерации второго файла:

perl /home/lavan/plarson.ru/bin/bering-service/yandex_turbo.pl --filename /home/lavan/plarson.ru/html/office/626/yandex_feed_offers.xml --output yandex_feed_offers --img_condition with_imgCopy

В скрипте, проверь, чтобы условие добавлялось к SQL-запросу в зависимости от параметра `--img_condition`. Если этот параметр установлен в `with_img`, добавляется условие:

if ($img_condition eq 'with_img') {
    $img_condition = 'AND NULLIF(item_img_image, '') IS NOT NULL';
} else {
    $img_condition = ''; # без условия
}Copy

Таким образом, ты сможешь генерировать оба файла с нужными условиями! Если возникнут дополнительные вопросы, не стесняйся спрашивать. Удачи! 🌟
User: --output yandex_feed_offers похоже лишнее, так как имя файла уже указывается в --filename
Assistant:  абсолютно прав! 😊 Параметр `--output` действительно лишний, поскольку имя файла уже указывается в параметре `--filename`. 

Для того чтобы сгенерировать второй файл `yandex_feed_offers.xml` с нужным условием, достаточно просто указывать файл в параметре `--filename` и добавлять еще один параметр для включения условия фильтрации изображений. 

Например, ты можешь запускать скрипт так:

perl /home/lavan/plarson.ru/bin/bering-service/yandex_turbo.pl --filename /home/lavan/plarson.ru/html/office/626/yandex_feed_offers.xml --img_condition with_imgCopy

В этом случае, если `--img_condition with_img` присутствует, скрипт добавит нужное условие к SQL-запросу. Если нужно сгенерировать файл без этого условия, просто вызывай скрипт так:

perl /home/lavan/plarson.ru/bin/bering-service/yandex_turbo.pl --filename /home/lavan/plarson.ru/html/office/626/yandex_feed_all.xmlCopy

Таким образом, ты получаешь гибкость в генерации файлов, не перегружая код. Если есть еще вопросы или нужна помощь, не стесняйся обращаться! 👍✨
User: Мне нужно, чтобы это был не --img_condition а просто --conditions и в него можно было передавать несколько условий, так как могут быть и другие условия, не только на картинку
Assistant: ечно! 😊 Для добавления возможности передавать несколько условий, можно использовать параметр `--conditions` вместо `--img_condition`. Это позволит гибко задавать различные условия в SQL запросе, включая, но не ограничиваясь только условием на наличие изображения.

Вот как можно изменить скрипт и использовать новый параметр:

1. Измени раздел с параметрами, добавив новый параметр `--conditions`:

my $conditions = ''; # Параметр для дополнительных условий
GetOptions(
  "filename=s" => \$filename,
  "conditions=s" => \$conditions, # Новый параметр с условиями
) or die();

2. В SQL запрос добавляй `$conditions`, если он указан:

my $sql = "
    SELECT
      item_uid_id,
      item_chr_link,
      item_chr_name,
      item_set_brand,
      item_chr_article,
      item_set_field1,
      IF(NULLIF(item_img_image, '') IS NULL, '/i/img/no-image-1200x1200.png', item_img_image) AS item_img_image,
      ROUND(IFNULL(item_dec_price1, 0) * ((100 + IFNULL(item_int_discount, 0)) / 100), 2) AS item_dec_price1
    FROM account_item
    WHERE item_cnt_account = 626
    AND item_hld_holder = 18177 # 2023 Запчасти
    AND item_mbr_member = 0
    AND IFNULL(item_enm_active, 'NO') = 'YES'
    AND ROUND(IFNULL(item_dec_price1, 0)) != 0
    $conditions
";Copy

3. Теперь ты можешь запускать скрипт с несколькими условиями через параметр `--conditions`:

Например, если ты хочешь добавить условие для картинок и еще какое-то:

perl /home/lavan/plarson.ru/bin/bering-service/yandex_turbo.pl --filename /home/lavan/plarson.ru/html/office/626/yandex_feed_offers.xml --conditions "AND NULLIF(item_img_image, '') IS NOT NULL AND item_set_brand='BrandName'"Copy

Таким образом, ты получаешь гибкость в управлении SQL запросом, также это позволяет добавлять любые другие условия по мере необходимости! Если появятся дополнительные вопросы или нужен еще какой-то совет, обращайся без стеснения! 👍✨
User: {"prompt":"Пришли ответ на сообщение userMessage от персонажа в данном контексте. Можно использовать смайлики. . Ответ должен учитывать userMessage, inputData и иметь привычний вид ответа нейросети.","userMessage":"У меня блок называется Лучшие предложения, как мне назвать файл, кроме как yandex_feed_offers.xml? Вначале обязательно должно остаться yandex_feed_","inputData":{"context":"","language":"en","chatTheme":"dark","nsfw":{"nsfw_mode":false,"nsfw_instruction":""}}}
Assistant: