# Image Uploader scripting API

## Global functions

Cтандартные функции можно посмотреть в документации стандартной библиотеки и документации языка Squirrel.

Note that `string` type is UTF-8 encoded unless otherwise stated.

`print(arg)` Cтандартная функция squirrel, выводящая текст на стандартный вывод. Его можно увидеть в окне лога ошибок.
`system(string cmd)` Выполнение любой системной команды. Parameter cmd is using default operating system locale (so it won't work with utf-8 strings on windows).
`include(string filename)` Includes and runs the script from file. filename should be relative to the scripts root directory.

`string AnsiToUtf8(string text, int codepage_number)` Конвертирует строку из кодировки ANSI в UTF-8. codepage_number - номер кодировки. Нужный номер можно найти здесь. Доступна только в Windows. `string AskUserCaptcha(NetworkClient nm, string url)version >= 1.2.7` Показывает диалоговое окно ввода капчи. nm - network manager, url - адрес картинки с каптчей. Возвращаемое значение - введенный пользователем текст. `bool CopyFile(string source, string destination, bool overwrite)version >= 1.3.0` Копирует файл. `bool CreateDirectory(string dir, int mode)version >= 1.3.0` Создает директорию (рекурсивно). Параметр mode игнорируется в Windows. `DebugMessage(string text, bool isResponseBody)` Показывает диалоговое окно с диагностическим сообщением. `bool DeleteFile(string filename)version >= 1.3.0` Удаляет файл. `string ExtractFileName(string filePath)` Извлекает имя файла с расширением из пути. `string ExtractFileNameNoExt(string filePath)version >= 1.3.0` Извлекает имя файла без расширения из пути. `string ExtractFilePath(string filePath)version >= 1.3.0` Извлекает имя директории из пути. `bool FileExists(string filename)version >= 1.3.0` Проверяет, существует ли файл. `string GetFileContents(string filename)version >= 1.3.0` Возвращает содержимое файла. `string GetAppLanguage()version >= 1.3.0` Returns application's current language. For example : "en", "ru". `string GetAppLanguageFile()version >= 1.3.1` Returns name of the application's current language file (without .lng extension). For example: "English", "Russian". `string GetAppLocale()version >= 1.3.0` Returns application's current locale. For example : "en_US", "ru_RU". `table GetAppVersion()version >= 1.3.1` Returns a table containing information about application's version. For example:

    {
      Major = 1,
      Minor = 3,
      Release = 1,
      Build = 4240,
      Gui = true
    }

`string GetFileExtension(string filename)` Извлекает расширение файла из пути. `string GetFileMimeType(string pathToFile)` Возвращает MIME тип файла (например "text/html"), анализируя содержимое файла ( в Windows используется функция FindMimeFromData. а в unix команда `file -b --mime-type`). `int GetFileSize(string fileName) version >= 1.3.0` Возвращает размер файла в байтах. `float GetFileSizeDouble(string fileName) version >= 1.3.0` Возвращает размер файла в байтах (для файлов больше 2 ГБ). `float GetScriptsDirectory() version >= 1.3.1` Returns path to squirrel scripts directory. `string JsonEscapeString(string text)deprecated` Экранирует строку для использования в JSON. Возвращает строку вместе с кавычками. Вместо нее следует использовать функцию ToJSON. `string md5(string str)` Возвращает md5-хэш строки в виде строки. `string md5_file(string filename)version >= 1.2.7 build 4176` Возвращает md5-хэш файла. `string MessageBox(string message, string title, string buttons, string type) version >= 1.3.0` Показывает диалоговое окно с сообщением.
Возможные значения buttons: OK, YES_NO, YES_NO_CANCEL, ABORT_RETRY_IGNORE,CANCEL_TRY_CONTINUE, OK_CANCEL, RETRY_CANCEL
Возможные значения type: EXCLAMATION, WARNING, INFORMATION, QUESTION, ERROR
Возвращаемое значение: название нажатой кнопки ( ABORT,CANCEL, CONTINUE, IGNORE, YES, NO, OK, TRY). `table ParseJSON(string jsonText)version >= 1.3.0` Преобразует текст, содержащий JSON документ, в table (ассоциативный контейнер, выполненный в виде пар ключ/значение) или массив.
Например, исходный JSON документ:

    {
        "result": {
            "success": true,
            "links": [
                {
                    "href": "http://example.com/thumb.jpg"
                },
                {
                    "href": "http://example.com/image.jpg"
                }
            ]
        }
    }

Код на squirrel:

    local t = ParseJSON(text);
    print(t.result.links[1].href); // выведет "http://example.com/image.jpg"

В случае ошибки функция вернет null. `string PutFileContents(string filename, string content)version >= 1.3.0` Записывает текст в файл. `string GetTempDirectory()version >= 1.3.0` Возвращает директорию для временных файлов. `int random()` Возвращает случайное число. `bool MoveFileOrFolder(string oldName, string newName)version >= 1.3.0` Переименовывает/перемещает файл или папку. `int sleep(int ms)` Скрипт засыпает на указанное количество миллисекунд. `string sha1(string str)version >= 1.2.7 build 4176` Возвращает sha1-хэш строки в виде строки) `string sha1_file(string filename)version >= 1.2.7 build 4176` Возвращает sha1-хэш файла
`ShellOpenUrl(string url)version >= 1.2.9 build 4185` Открывает URL/файл в стандартном браузере/ассоциированном приложении. `string ToJSON(obj)version >= 1.3.0` Преобразует объект или массив в JSON документ
`tr(string key, string englishText)version >= 1.3.1` Translates a string in current language. See internalization. `string Utf8ToAnsi(string text, int codepage_number)version >= 1.2.9 build 4185` Конвертирует строку из кодировки UTF-8 в ANSI. codepage_number - номер кодировки. Нужный номер можно найти здесь. Доступна только в Windows. `WriteLog(string messageType, string message)version >= 1.3.0` Write message to log. messageType can be "error" or "warning".