Создание плагинов
Для расширенной поддержки серверов в программе используются скрипты на языке Squirrel 2.
Документация языка Squirrel
Документация стандартной библиотеки языка Squirrel
Они должны быть сохранены в кодировке utf-8 в файлах с расширением .nut
.
Пример плагина (example.nut):
// Функция, загружающая файл function UploadFile(FileName, options) { nm.setUrl("http://example.com/upload.php"); nm.addQueryParamFile("file", FileName, ExtractFileName(FileName),""); nm.addQueryParam("submit", "Upload file!"); nm.doUploadMultipartData(); local response = nm.responseBody(); local directUrl = regex_simple(response, "\\[IMG\\](.+)\\[/IMG\\]",0); options.setDirectUrl(directUrl); return 1; //успех } // Вспомогательная функция, упрощающая работу с регулярными выражениями function regex_simple(data,regStr,start) { local ex = regexp(regStr); local res = ex.capture(data, start); local resultStr = ""; if(res != null){ resultStr = data.slice(res[1].begin, res[1].end); } return resultStr; } // Необязательные функции: // Получение списка альбомов(папок, галерей) на сервере function GetFolderList(list) { // Ваш код return 1; //успех } // Функция, создающая альбомы function CreateFolder(parentAlbum,album) { // Ваш код return 1; //успех } function ModifyFolder(album) { // Ваш код return 1; //успех } // Функция, возвращающая список видов ограничений доступа к альбому: // приватный, общедоступный, только для друзей и т.п. function GetFolderAccessTypeList() { return ["ТипДоступа1", "ТипДоступа2"]; }
В общем случае необходимо реализовать 1 функцию — UploadFile
.
Если нужна поддержка серверных альбомов, то необходимо реализовать еще 4 функции — GetFolderList
, CreateFolder
,
ModifyFolder
, GetFolderAccessTypeList
.