Дополнительная информация

Параметры командной строки

Формат запуска программы из командной строки выглядит следующим образом:

"Image Uploader.exe" [параметры] файл1 файл2 ... папка1 папка2 ..

Поддерживаются следующие параметры:

Добавление и редактирование серверов

На текущий момент в программе отсутствуют встроенные возможности по модифицированию списка серверов. Информация о серверах, доступных в программе, содержится в файлe servers.xml, находящемся в подкаталоге Data каталога, в который установлена программа, либо в системной папке %appdata%\Image Uploader, относящейся к текущему пользователю. Программа использует этот файл в режиме "только для чтения". Этот файл не предназначен для редактирования. Все изменения будут потеряны после следующего обновления программы. Свои сервера следует добавлять в папку Data\Servers\ (если вы используете портативную версию) или %appdata%\Image Uploader\Servers\ (если вы использовали инсталлятор) в xml файлы с такой же структурой, как у файла servers.xml.

Файл составлен в соответствии со стандартом XML и должен быть сохранен в кодировке utf-8.

servers.xml должен иметь следующую структуру:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Servers>
  <Server>
      ...
  </Server>
  <Server>
      ...
  </Server>
  ...
</Servers>

Последовательность, в которой указаны сервера в этом файле, не имеет значения. Программа сортирует их в алфавитном порядке.

Каждый вложенный узел <Server> имеет следующий вид:

<Server Name="название_сервера" [атрибуты] >
  <SupportedFormats>
    ...
  </SupportedFormats>	
  <Actions>
    <Action [атрибуты] />
    <Action [атрибуты] />
    ...
  </Actions>
  <Result ImageUrlTemplate="..." ThumbUrlTemplate="..." DownloadUrlTemplate="..."/>
</Server>

Узел <Server> может иметь следующие необязательные атрибуты:

Узел SupportedFormats

Необязательный узел. Поддерживается начиная с версии 1.4.1. Узел должен содержать вложенные узлы FormatGroup.

Необязательные атрибуты узла FormatGroup:

Узел FormatGroup содержит вложенные узлы Format:

<Format MimeType="image/jpeg">*.jpg,*.jpeg</Format>
В атрибуте MimeType перечисляются (через запятую) разрешенные MIME-типы файлов, которые могут содержать подстановочные символы - wildcards, а в тексте узла перечисляются расширения файлов (через запятую), которые также могут содержать подстановочные символы. Если в одном узле Format указан только MIME-тип(-ы), или только расширение(-ия), то проверка файлов будет производиться только по одному признаку.

Узел Actions

Узел <Actions> (без атрибутов) содержит вложенные узлы Action, каждый из которых обозначает одно действие (как правило, это запрос к серверу). Запросы выполняются в том порядке, в котором они указаны в файле, т.е. сверху вниз.

<Action Type="get" Url="http://example.com/" RegExp="id(\d+)" AssignVars="ИмяПеременной:0" 
    [дополнительные атрибуты]/>

Каждый узел <Action> может иметь следующие атрибуты:

Узел Result

Типичный вид xml-узла Result:

<Result ImageUrlTemplate="$(Image)" ThumbUrlTemplate="$(Thumb)" DownloadUrlTemplate="$(View)"/>

Атрибуты узла Result:

Каждый из этих атрибутов может содержать переменные.

Один из атрибутов — ImageUrlTemplate или DownloadUrlTemplate — должен быть обязательно задан. Программа использует тот или иной атрибут в зависимости от настроек, и в зависимости от того, какой из атрибутов задан, а какой нет. По-умолчанию предпочтение отдается прямой ссылке. В случае использования скрипта (плагина - атрибут Plugin узла Server), все атрибуты всё равно должны иметь непустые значения.

Переменные в строках и атрибутах

Все переменные, доступные для использования в атрибутах узлов Action и Result, задаются в параметре AssignVars, или же встроены в саму программу.

Название переменной может содержать алфавитно-цифровые символы (A-z, 0-9) и символ подчеркивания. Имена переменных чувствительны к регистру. Если название переменной начинается с символа подчеркивания, это означает, что данная переменная не будет удалена после загрузки файла, и она останется в памяти на всю сессию загрузки. Однако это не означает, что её значение не может быть перезаписано.

Список встроенных переменных:

Для подстановки значений переменных в строковые параметры используются конструкции вида $(ИмяПеременной). Количество подставляемых переменных не ограничивается. Если переменная не существует, вместо неё будет подставлена пустая строка.

Пример:

<Server Name="slil.ru" FileHost="1">
        <Actions>
             <Action Type="upload" Url="http://zalil.ru/upload/" PostParams="file=%filename%;submit=Send" 
		RegExp='http://slil.ru/(\d*)' AssignVars="File:0"/>
        </Actions>
        <Result DownloadUrlTemplate="http://slil.ru/$(File)"/>
</Server>

В строке AssignVars="File:0" задается переменная с именем File и ей присваивается некоторое числовое значение, полученное из первой подмаски регулярного выражения (например, File=12345). Затем созданная переменная используется в параметре DownloadUrlTemplate="http://slil.ru/$(File)", который в результате подстановки принимает значение http://slil.ru/12345. Полученную ссылку пользователь видит в окне программы.

Преобразование переменных с помощью фильтров (version >= 1.2.9)

Переменные можно преобразовывать при выводе. Пример: $(Переменная|НазваниеФильтра)

Список фильтров:

urlencode - процентное кодирование. Пример Url="http://example.com?filename=$(_FILENAME|urlencode)"
htmldecode - (version >= 1.3.2) decode HTML entities

Создание скриптов (плагинов)

Для расширенной поддержки серверов в программе используются скрипты на языке Squirrel 3 (до версии 1.3.2 использовался Squirrel 2).

Они должны быть сохранены в кодировке utf-8 в файлах с расширением .nut.

Scripting API reference

Документация языка Squirrel
Документация стандартной библиотеки языка Squirrel (PDF)