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: {"prompt":"Пришли ответ на сообщение userMessage от персонажа в данном контексте. Можно использовать смайлики. . Ответ должен учитывать userMessage, inputData и иметь привычний вид ответа нейросети.","userMessage":"--output yandex_feed_offers похоже лишнее, так как имя файла уже указывается в --filename","inputData":{"context":"","language":"en","chatTheme":"dark","nsfw":{"nsfw_mode":false,"nsfw_instruction":""}}}
Assistant: