Справочник разработчика

Структура файлов модуля

Структура файлов модуля

  • module/ - Название нового модуля
  • columns.txt - Имена и описание столбцов (разрешено использовать HTML код)
  • actions/ - Директория с файлами действий: action 1.txt ... action N.txt
  • values/ - Директория с файлами возможных значений столбцов: values 1.txt ... values N.txt

Для добавления нового модуля создайте новую директорию (с указанной выше структурой) в директории modules/. Файлы и директории, которые выделены на схеме красным цветом, являются обязательными. Остальные файлы и директории используются для расширения функционала модуля.



Программирование действий модуля

Писать код действий модулей можно используя языки программирования:

  • JavaScript (стандарт ECMAScript 5.1);
  • Java (Java SE 8).

Вы можете использовать для этого любой текстовый редактор, например: Notepad ++. Если у вашего редактора есть функция подсветки синтаксиса кода, то рекомендуется выбрать подсветку синтаксиса языка JavaScript. Сохранять файлы модулей нужно в кодировке UTF-8 без BOM.



Загрузка кода из файлов

Функция load() позволяет загружать и исполнять код из указанных файлов. Используйте эту функцию, чтобы не повторять один и тот же код при создании новых модулей.

Формат записи:

load(String filePath)

Параметр filePath - относительный путь к файлу.

Примеры:

// загрузить и выполнить код установки случайного значения заголовка User-Agent
load("modules/Common Files/Set random useragent.txt");


Встроенные методы программы

Кроме стандартных функций языков JavaScript и Java, вы можете использовать встроенные методы программы. Встроенные методы программы помогут вам быстро и просто описать такие процессы как:

  • Чтение / запись в файлы;
  • Выполнение GET / POST запросов;
  • Поиск данных при помощи регулярных выражений;
  • Распознавание графиеских капч;
  • Синхронизация одновременного доступа к объектам и многое лругое.

Для доступа к встроенным методам пограммы следует использовать префикс T.
Примеры:

T.log("Начало работы");
resp = T.makeRequest("GET", T.get("url"));
body = T.encode(resp.body, resp.charset);
T.log("Конец работы");


Список методов:

T.stop()

T.done()
T.undone()

T.lock()
T.unlock()

T.sleep(long milliseconds)

T.enable(String flagName)
T.disable(String flagName)

byte[] T.decode(String string)
byte[] T.decode(String string, String charset)
String T.encode(byte[] bytes)
String T.encode(byte[] bytes, String charset)

String T.getId()

int T.getRowIndex()

T.clearGlobalObject()
Object T.getGlobal(...)
Object T.getGlobalObject(String key)
T.setGlobal(...)
T.setGlobalObject(String key, Object object)

String T.get(...)
String T.getRowValue(String key)
T.set(...)
T.setRowValue(String key, String value)

T.err(...)
T.makeError(String error)

T.log(...)
T.addLog(Object log)

T.addRow()
T.addRow(String[] values)

String T.getProxy()
String T.getNextProxy()
T.setProxy(String proxyString)

T.clearCookies()
T.deleteCookiesByUrl(String url)
T.deleteCookieByUrlAndName(String url, String name)

String T.getCookie(...)
String T.getCookieValue(String url, String name)
T.setCookie(String url, String name, String value)

T.clearSession()
Object[] T.getSession()
T.setSession(Object[] session)

byte[] T.read(...)
byte[] T.readFromFile(String fileName)
T.write(...)
T.writeToFile(String fileName, byte[] fileBytes)
T.writeToFile(String fileName, byte[] fileBytes, String fileMode)

T.createDir(String fileName)
boolean T.deleteDir(String fileName)
boolean T.deleteFile(String fileName)

Object T.getRandom(...)
Object T.getRandomValue(Object[] values)

String T.getRegExp(...)
String T.getRegExpValue(String source, String re)
String T.getRegExpValue(String source, String re, String format)

String T.getCaptcha(...)
String T.getCaptchaValue(byte[] captcha)
String T.getCaptchaValue(byte[] captcha, String[] params)

String T.makeURL(String urlBase, String[][] params)

String T.getHeaderReferer()
T.setHeaderReferer(String header)

String T.getHeaderUseragent()
T.setHeaderUseragent(String header)

Map<String, Object> T.makeRequest(String method, String url)
Map<String, Object> T.makeRequest(String method, String url, String[][] headers)
Map<String, Object> T.makeRequest(String method, String url, String[][] headers, String[][] body)
Map<String, Object> T.makeRequest(String method, String url, String[][] headers, String[][] body, String cahrset)