Дополнительная информация
Параметры командной строки
Формат запуска программы из командной строки выглядит следующим образом:
"Image Uploader.exe" [параметры] файл1 файл2 ... папка1 папка2 ..
Поддерживаются следующие параметры:
/func=addimages
— Add Images dialog/func=addfiles
— Add Files dialog/func=fullscreenshot
— capture the entire screen./func=windowscreenshot
— capture the active window./func=windowhandlescreenshot
— select and capture any window (top or child)/func=topwindowscreenshot
(ver >= 1.4.0) — select and capture a top window/func=freeformscreenshot
— freeform screen capture/func=screenshotdlg
— screenshot dialog/func=downloadimages
— Image Downloader dialog/func=addfolder
— Add folder dialog/func=paste
— paste from clipboard/func=fromclipboard
— paste from clipboard/func=settings
— settings dialog/func=reuploadimages
— re-upload images dialog/func=shortenurl
— URL shortening dialog/func=mediainfo
— MediaInfo dialog/quickshot
— снимок прямоугольной области/quick
и/noquick
— включение и выключение режима быстрого начала загрузки (пропуск страниц мастера)/mediainfo
— показ технической информации для первого видео файла в командной строке/imageeditor
— open file in the image editor (version >= 1.3.1.4276)/upload
(>= v.1.3.2) — нужно включить эту опцию, чтобы "аплодить" первый видеофайл, а не извлекать кадры из него./fromcontextmenu
— при использовании этой опции будет использоваться "Сервер для загрузки из контекстного меню проводника"/serverprofile=<ServerProfileId>
— использование профиля настроек при загрузке, имеющего соответствующий идентификатор. Нужный идентификатор можно найти в файле settings.xml, в узле "ServerProfiles", имя атрибута "ServerProfileId". В профиль настроек входят: название сервера, имя пользователя, удаленный каталог (папка, альбом), профиль обработки изображений, параметры создания миниатюр и др. Данная опция командной строки предназначена для работы функции "Пользовательские элементы контекстного меню"./tray
— запуск программы в свернутом режиме (если включена опция "Показывать значок в трее")/uninstall
— удаление всех записей программы в системном реестре/debuglog
(ver >= 1.3.2) — показать лог ошибок при запуске/serverschecker
— (ver >= 1.4.0) запуск инструмента проверки работоспособности серверов
Добавление и редактирование серверов
На текущий момент в программе отсутствуют встроенные возможности по модифицированию списка серверов.
Информация о серверах, доступных в программе, содержится в файл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>
может иметь следующие необязательные атрибуты:
Authorize
— указывает, поддерживает ли сервер учетные записи.
Значения: 0 (по умолчанию) — без авторизации, 1 — сервер поддерживает авторизацию, 2 — авторизация обязательна.FileHost
— указывает на то, что сервер является хостингом для любых типов файлов (не только изображений).
Значения: 0 (по умолчанию) — хостинг картинок (эквивалентенType="image"
), 1 — файловый хостинг (эквивалентенType="file"
) .Type
— (ver >= 1.2.8 ) тип сервера. Если задан, то атрибутFileHost
игнорируется.
Значения: image (по умолчанию) — хостинг картинок, file — файловый хостинг (при этомFileHost="1"
тоже обязательно нужно указывать), urlshortening — сервис сокращения ссылок (для них вместо xml-узла<Server>
следует использовать<Server2>
).
searchbyimage — серис обратного поиска по изображениюTypes
- (ver >= 1.3.2 )
Список типов через пробел, напримерfile image urlshortening
NeedPassword
— (ver >= 1.2.9 build 4186) нужен ли пароль для авторизации. Необходимо для серверов с авторизацией через OAuth 2.0.
Значения: 1 (по умолчанию) — нужен, 0 - не нужен (поле ввода пароля будет не активно)Debug
— параметр, предназначенный для тестирования и отладки загрузки на данный сервер. При значении 1 любая загрузка на данный сервер в программе будет сопровождаться отображением информации об отправляемых запросах и принимаемых данных.MaxFileSize
— максимальный размер загружаемого файла, поддерживаемого сервером. Значение указывается в байтах. Значение по умолчанию — 0, что означает, что файл может быть какого угодно размера.MinVersion
— (ver >= 1.3.1 ) Минимальная версия программы, поддерживаемая данным сервером. Следует использовать, если вы используете возможности, отсутствующие в старых версиях программы. Атрибут должен иметь форматx.x.x
илиx.x.x.xxxx
. При этом вместо узла<Server>
следует использовать<Server3>
.Plugin
— содержит название файла плагина (без расширения .nut), отвечающего за загрузку на этот сервер. Скрипт должен быть расположен в каталоге Data\Scripts, и иметь расширение.nut
. Если данный атрибут не пустой, весь узел <Actions> игнорируется, и всё взаимодействие с серверами перекладывается на скрипт. Однако, узел Actions всё равно может быть задан, для обратной совместимости с версиями программы < 1.2.5.
Подробнее о создании плагинов...Engine
— (ver >= 1.3.2 build 4551) название встроенного движка загрузки. Чтобы использовался стандартный движок, нужно оставить поле пустым. Другие возможные значения: "MegaNz".SupportsFolders
— поддержка альбомов скриптом загрузки. Используется вместе с атрибутом Plugin.WebsiteUrl
— (ver >= 1.4.1 ) адрес веб-сайта.RegistrationUrl
— адрес, по которому можно зарегистрироваться на данном сервере.LoginLabel
— (ver >= 1.3.2.4616 ) — надпись перед полем ввода логина (это может быть "E-mail", "Login" и т.п.). Если текст будет слишком длинным, он не будет полностью отображен.PasswordLabel
— (ver >= 1.3.2.4616 ) — надпись перед полем ввода пароля (это может быть "Password", "API Key" и т.п.). Если текст будет слишком длинным, он не будет полностью отображен.UserAgent
— (ver >= 1.3.2.4432 ) — custom http header "User-Agent"MaxThreads
— (ver >= 1.3.2 ) — ограничение количества одновременных соединений (потоков) к этому серверу. Этот ограничивающий параметр введен по двум причинам: Во-первых, некоторые серверы ограничивают и блокируют параллельные запросы к ним. Во-вторых, чтобы сохранить порядок изображений в альбоме (при MaxThreads=1). По-умолчанию, количество потоков не ограничено.DefaultForTypes
- (ver >= 1.3.3 )
Список типов серверов через пробел, напримерfile image
, для которых этот сервер является сервером по-умолчанию. Если в файле servers.xml встречается несколько серверов с атрибутом DefaultForTypes и типы пересекаются, в качестве сервера по-умолчанию будет использоваться тот, что встречается в файле позже.UploadToTempServer
(ver >= 1.4.1 ) — указывает, нужно ли загружать изображение на промежуточный сервер (актуально только для сервисов поиска по изображению). Эта опция может использоваться, если сервис поиска не поддерживает поиск по загруженному файлу.
Узел SupportedFormats
Необязательный узел. Поддерживается начиная с версии 1.4.1.
Узел должен содержать вложенные узлы FormatGroup
.
Необязательные атрибуты узла FormatGroup
:
- MaxFileSize — максимальный размер файла в этой группе (в байтах).
- Authorized — если равен 1, то эта группа форматов относится только к авторизованному пользователю.
Узел 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>
может иметь следующие атрибуты:
Url
— обязательный атрибут. Должен содержать HTTP, HTTPS или FTP адрес. Может содержать переменные.Type
— тип запроса к серверу (или другого действия).
Может принимать следующие значения:- get — метод GET протокола HTTP
- post — метод POST протокола HTTP
- login — то же, что и post, но предназначено только для авторизации.
- upload — POST-запрос в формате multipart/form-data. Именно этот тип запроса используется в большинстве случаев для загрузки файлов.
- put — загрузка файла с помощью HTTP PUT запроса или загрузка на FTP. Поддерживается лишь некоторыми серверами.
- openurl (version >= 1.4.1) — открытие URL в приложении по-умолчанию
PostParams
— список параметров, передаваемых серверу по протоколу POST (Type=post или Type=upload), разделенных точкой с запятой.
Список имеет следующий вид:НазваниеПараметра1=Значение1;НазваниеПараметра2=Значение2;...
Значения могут содержать названия переменных, которые будут автоматически подставлены (раскрыты) перед выполнением запроса. Также есть особое значение — %filename%, вместо которого в запрос подставляется содержимое загружаемого файла (не надо путать с _FILENAME ). Чтобы в значениях использовать сам символ;
, необходимо его экранировать:\;
.RegExp
— регулярное выражение в формате PCRE. Служит для извлечения необходимой информации (ссылок, идентификаторов) из текста ответа, полученного от сервера (чаще всего HTML страницы). Если сопоставление регулярному выражению не удалось, программа генерирует предупреждение в лог ошибок и повторяет запрос.AssignVars
— в данном атрибуте перечисляются имена новых переменных, и сопоставленные им номера подмасок (subpatterns) регулярного выражения. Параметр AssignVars имеет форматНазваниеПеременной:НомерПодмаски;...
. Подмаска в регулярном выражении это то, что заключено в круглые скобки. Нумерация подмасок начинается с нуля. Имя переменной может содержать символы A-z, 0-9 и символ подчеркивания. Подробнее о переменных в servers.xmlOnlyOnce
— значение 1 означает, что данный запрос будет выполняться лишь 1 раз за всю сессию загрузки. Чаще всего таким запросом является авторизация на сервере. Значение 0 - данный запрос выполняется при загрузке КАЖДОГО файла.Referer
— (опциональный параметр) адрес страницы источника запроса. Используется, если сервер ограничивает запросы с чужих сайтов. По умолчанию программа устанавливает Referer такой же, как и адрес запрашиваемой страницы.Description
— опциональный параметр, содержащий описание текущего действия. Отображается в окне программы.CustomHeaders
— (ver >= 1.3.2.4432) список дополнительных полей заголовка, разделенных точкой с запятой. Список должен иметь следующий вид:НазваниеПараметра1:Значение1;НазваниеПараметра2:Значение2;...
To remove default field, pass an empty value.- Вложенные узлы (version >= 1.3.2)
RegExp
<Action Type="upload" Url="http://imgur.com/api/upload.xml" PostParams="image=%filename%;key=2dd16e2e19119996855ae9312b7a1305;" RegExp='<original_image>(.*?)<\/original_image>([\s\S]*?)<small_thumbnail>(.*?)<\/small_thumbnail>' AssignVars="Image:0;Thumb:2"> <RegExp Pattern="<delete_page>(.*?)<\/delete_page>" AssignVars="DeleteUrl:0;"/> </Action>
Pattern
- то же самое, что атрибут RegExp у узла Action.AssignVars
- то же самое, что атрибут AssignVars у узла Action.Required
- генерировать ошибку, если сопоставление регулярному выражению не удалось. (по умолчанию 0)Data
- в каком тексте производить поиск. Может содержать переменные. (по умолчанию - текст ответа от сервера)
Call
- вызов функции (version >= 1.4.0)<Call Function="json" Arg1="files[0].url" AssignVars="DownloadUrl:0;"/>
Function
- название функции. Пока доступны только функции json и regexp. Примеры синтаксиса json path можно увидеть здесь.Arg[n]
(Arg0, Arg1, Arg2) - аргументы. Arg0 по-умолчанию содержит тело ответа. Могут содержать переменные.AssignVars
- то же самое, что атрибут AssignVars у узла Action.Required
- генерировать ошибку, если функция завершилась с ошибкой (по умолчанию 0)
Узел Result
Типичный вид xml-узла Result:
<Result ImageUrlTemplate="$(Image)" ThumbUrlTemplate="$(Thumb)" DownloadUrlTemplate="$(View)"/>
Атрибуты узла Result:
ImageUrlTemplate
— строка-шаблон для генерации ПРЯМОЙ ссылки на картинку или файл.ThumbUrlTemplate
— строка-шаблон для генерации ПРЯМОЙ ссылки на файл миниатюры. Если не задан, программа будет сама генерировать миниатюры, даже если включена опция "Использовать серверные миниатюры". Генерирование миниатюры будет невозможно, если параметр ImageUrlTemplate не задан или принимает пустое значение.DownloadUrlTemplate
— строка-шаблон для генерации ссылки на страницу просмотра, скачивания и т.п.DeleteUrl
— (ver >= 1.3.2) ссылка для удаления файлаEditUrl
— (ver >= 1.3.2) ссылка для редактирования файла
Каждый из этих атрибутов может содержать переменные.
Один из атрибутов — ImageUrlTemplate или DownloadUrlTemplate — должен быть обязательно задан. Программа использует тот или иной атрибут в зависимости от настроек, и в зависимости от того, какой из атрибутов задан, а какой нет. По-умолчанию предпочтение отдается прямой ссылке. В случае использования скрипта (плагина - атрибут Plugin узла Server), все атрибуты всё равно должны иметь непустые значения.
Переменные в строках и атрибутах
Все переменные, доступные для использования в атрибутах узлов Action и Result, задаются в параметре AssignVars, или же встроены в саму программу.
Название переменной может содержать алфавитно-цифровые символы (A-z, 0-9) и символ подчеркивания. Имена переменных чувствительны к регистру. Если название переменной начинается с символа подчеркивания, это означает, что данная переменная не будет удалена после загрузки файла, и она останется в памяти на всю сессию загрузки. Однако это не означает, что её значение не может быть перезаписано.
Список встроенных переменных:
_FILENAME
— имя загружаемого файла (без пути к файлу)._FILENAMEWITHOUTEXT
— имя загружаемого файла без расширения._FILEEXT
— расширение файла._THUMBWIDTH
— ширина миниатюры._RAND16BITS
— случайное число от 0 до 65535. Генерируется только один раз при загрузке каждого файла._THREADID
— (ver > 1.3.2) идентификатор текущего потока (нити)_LOGIN
— имя пользователя (задана, если пользователь включил авторизацию в настройках)_PASSWORD
— пароль пользователя._ORIGINALURL
— ссылка, которую надо сократить (только для серверов сокращения ссылок)._IMAGEURL
(ver > 1.4.1) — прямая ссылка на изображение для поиска по нему (которое может находиться на промежуточном хостинге хранения изображений). Это актуально только для узла Server cType="searchbyimage"
.
Для подстановки значений переменных в строковые параметры используются конструкции вида $(ИмяПеременной)
. Количество подставляемых переменных не ограничивается.
Если переменная не существует, вместо неё будет подставлена пустая строка.
Пример:
<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
.
Полученную ссылку пользователь видит в окне программы.
Переменные можно преобразовывать при выводе. Пример: $(Переменная|НазваниеФильтра)
Список фильтров:
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
.
Документация языка Squirrel
Документация стандартной библиотеки языка Squirrel (PDF)