# Фильтры и формулы

В программе файлы можно фильтровать по статусам, типам файлов, по готовности, по предупреждениям, по наличию файла того или иного расширения, по кол-ву слов/символов в метаданных, по их значениям - в общем, для Вас теперь огромный простор для фантазии.

Каждое условие-выражение для фильтра пишется в фигурных скобках. Например, так {len(meta.keywords) > 30}.

Давайте рассмотрим фильтры, касающиеся метаданных:

  • len(xxx) означает количество xxx. Например, len(meta.keywords) - количество ключевых слов, len(meta.title) - это количество символов в названии, а len(meta.description) - это количество символов в описании.

  • words(xxx) означает количество слов xxx. Например, words(meta.title) - количество слов в названии.

  • latin(xxx) означает что в xxx разрешены только лат. символы. Например, {latin(meta.keywords)} - в ключевых словах разрешены только лат. символы.

  • Можно задавать конкретные граничные значения:

    • {30 < len(meta.title) < 50} - количество символов в названии должно быть в диапазоне от 31 до 49 включительно
    • {words(meta.description) >= 10} - количество слов в описании должно быть больше либо равно 10 Если перед этим выражение поставить знак минуса, то получится , что кол-во слов в описании должно быть строго меньше 10. Т.е. -{words(meta.description) >= 10} то же самое, что и {words(meta.description) < 10}
  • Также есть специальные условия, количество которых мы будем постепенно увеличивать:

    • {len(meta.keywords[{words($) > 1}]) = 0} - запрет на составные ключевые слова
    • {meta.title <> meta.description} - название не должно совпадать с описанием

Следующая группа фильтров касается предупреждений. Рассмотрим следующий пример: {files[*.jpg|*.jpeg|*.png].size < 25MB}. Данную запись можно расшифровать так, размер в файлов с расширениями `.jpg, *.jpeg, .png должен быть строго меньше 25MB. Здесь есть несколько особенностей, о которых не стоит забывать:

  • Меру измерения(MP, B, KB и т.д.) нужно указывать без пробелов после числа.

  • files[*.jpg] означает, что будут выбираться все файлы, названия которых заканчиваются на .jpg, это значит, что если написать files[*test.jpg] - фильтры будут применены только к тем файлам, которые заканчиваются на test.jpg. Аналогично, files[a*test.jpg] - файлы начинаются на a, заканчиваются на test.jpg. Короче говоря, символ звездочки(*) означает любое количество любых символов.

  • files[*.eps|*.svg].size - ограничения на размер вектора

  • files[*.mov|*.mp4|*.mpg|*.avi].resolution - ограничения на разрешение видео. Можно задавать в 2 форматах: 10MP или "1024x200".

  • files[*.mov|*.mp4|*.mpg|*.avi].framerate in [10, 20, 25.4] - ограничение на возможные значения частоты файлов. В квадратных скобках указываются допустимые значения