Джако Крузо
04.04.2017Дорген

Встроенный в JakoDorgen cкриптовый язык

Особенности скрипта:
- Переменные, начинающиеся со знака $ - глобальные, т.е. видны в любом месте скрипта, а без знака $ - локальные. Есть ещё суперглобальные $$, которые видны во всех скриптах. Регистр значения не имеет.
- Строки складываются знаком +
- В строках отсчёт символов идёт с 1, а не с 0.
- Нету сокращений +=, ++ и т.д.
- Массивы только одномерные.
- return не прерывает выполнение функции (только в доргене, а в JakoScript и MassArticleParser исправлено).
- В условиях и вызове функций обязательны скобки:

print("Привет!");

if($a>0){$b=$b+$a;}

Функции:

substr - часть строки
strlen - длина строки
echo или print - вывод
rand - случайное число
sleep и usleep - пауза
doevents - делает прерывание
timer - возвращает время, истекшее с момента загрузки системы (в миллисекундах)
hex - преобразует строку в шестнадцатеричное число
oct - возвращает строку, представляющую восьмеричное представление числа
chr - символ
asc - код символа
val - перевод строки в число
isnumeric - возвращает 1 если строка является числом и 0 если нет.
str_replace - земена в строке
str_ireplace - земена в строке без учёта регистра
strpos - поиск строки (если строка не найдена возвращает 0). Еще есть chrpos - ищет символ по asc коду.
trim - удаление пробела в начале и конце строки (есть ещё ltrim и rtrim)
strtolower - преобразует строку в нижний регистр
strtoupper - преобразует строку в верхний регистр
abs - модуль
floor - округление до целого в меньшую сторону
ceil - округление до целого в большую сторону
sin - синус
cos - косинус
readfile - чтение файла. Например: $a=readfile('D:\test.txt');
writefile - запись в файл. Например: writefile('D:\test.txt','Тест');
В readfile и writefile можно указывать кодировку: $a=readfile('D:\test.txt','windows-1251');
По умолчанию кодировка utf-8.

alert("Текст сообщения") - выводит сообщение

httpclient_open(url,http-заголовок,прокси,кодировка) - загружает страницу из интернета.
Пример:
$h="GET / HTTP/1.0\r\nHost: www.google.ru\r\n\r\n";
$r=httpclient_open('http://www.google.ru/',$h,'','utf-8');
print($r);

По умолчанию таймаут 10 секунд. Можно свой сделать: httpclient_open(url,http-заголовок,прокси,кодировка, таймаут миллисекунд) .

escape() - возвращает 16-ричное кодированное представление строки (ещё строка к нижнему регистру приводится).
escapeuri() - преобразует строку URI в ее escape-представление.

copyfile(откуда копировать, куда копировать); - копирует файл.
deletefile(файл); - удаляет файл.
createfolder(имя папки) - создаёт папку
deletefolder(имя папки) - удаляет папку
getfiles(folder) - возвращает список файлов в указанной папке.
getdirectories(folder) - возвращает список папок в указанной папке.

getadt(номер статьи, кол-во символов) и getiadt(номер статьи, кол-во символов) - возвращают анонсы статей. getadt как [ARTICLE_SHORT_TEXT-200], а getiadt как [ARTICLE_SHORT_TEXT-200S].

reloadprojects() - перезагружает проекты из proj.txt.
updateprojects() - обновляет отображение информации о загруженных проектах.

reloadevents() - перезагружает events.txt.

inputbox(text,title,defaulttext) - выводит окошко с полем для ввода данных.
MsgBox (text, buttons, title) - отображает сообщение в диалоговом окне, ожидает нажатия кнопки и возвращает целое число, определяющее нажатую кнопку.
close_program() - закрыть программу.
start_generating() - начать генерирование.
stop_generating() - остановить генерирование.


getprojectinfo(num,'site') - имя сайта, где num - номер проекта.
getprojectinfo(num,'title') - тайтл
getprojectinfo(num,'headcaption') - надпись в шапае
getprojectinfo(num,'keywords_file') - файл ключевиков
getprojectinfo(num,'texts_file') - файл текстовки
getprojectinfo(num,'articles_folder') - папка со статьями
getprojectinfo(num,'profile') - профиль
getprojectinfo(num,'template') - шаблон
getprojectinfo(num,'status') - статус (0 - none, 1 - ok, 2 - error)
getprojectinfo(num,'save_folder') - папка, в которую сохраняется сайт
getprojectinfo(num,'ftp_host') - фтп хост
getprojectinfo(num,'ftp_user') - фтп-логин
getprojectinfo(num,'ftp_password') - фтп-пароль
getprojectinfo(num,'ftp_folder') - фтп-папка

$template_file - содержит используемый при текущем генерировании шаблон (полный путь). Она нужна в тех случаях, когда шаблон не задан точно, а выбирается рандомно. В таких случаях getprojectinfo(num,'template') не будет работать.

httpclient_getcontent(url) - функция для получения страницы из интернета.
statusbox_show(text) - функция выводит маленькое окошко с текстом. Для закрытия - statusbox_close();

ftp_connect(host,login,pass) - соединение с фтп-сервером.
ftp_upload(soursefile,targetfile) - закачать файл на сервер.
ftp_createfolder(folder) - создать папку на сервере.
ftp_deletefile(file) - удалить файл на сервере.
ftp_close() - закрыть фтп-соединение.

app('path') - путь к программе, app('version') - версия программы, app('sites_folder') - папка для сохранения сайтов.

StartProcess(path,arg,windowstyle,waitforexit); - запускает программу. path - путь к запускаемой программе; arg - аргументы, которые передаются ей; windowstyle - стиль окна, 0 -обычное; 1- невидимое; 2-свёрнутое; 3-развёрнутое; waitforexit - 1 или 0, ждать окончания работы программы или нет.

date("формат") - возвращает текущую дату в заданом формате. Примеры:
date("DD.MM.Y") // 05.03.2012
date("D.M.Y") // 5.3.2012
date("D.M.YY") // 5.3.12

idate() - возвращает текущую дату (значение даты OLE-автоматизации - количество дней, прошедших после полуночи 30 декабря 1899 г.).

datetostr(дата) - возвращает из даты в виде количества дней, прошедших после полуночи 30 декабря 1899 г. дату в привычном виде: 05.02.2014.

count(массив) - возвращает кол-во элементов в массиве.
explode( delimiter , string, var ) - возвращает массив строк, полученных разбиением строки string с использованием delimiter в качестве разделителя. Пример:
$a='test1|test2|test3';
explode('|',$a,$b);
$c=count($b)-1;
for($i=0;$i<=$c;$i=$i+1){
echo($b[$i]+"\r\n");
}



preg_match(pattern, subject, var) - функция для регулярных выражений (стандарт .NET). Пример использования:
preg_match('<(.*?)>',"<p>Это <a href='http://site.ru'>пример</a> <b>поиска</b></p>",$b);
$c=count($b)-1;
for($i=0;$i<=$c;$i=$i+1){
echo($b[$i]+"\r\n");
}


webbrowser(url) - загружает страницу из интерета. В отличие от httpclient_open и httpclient_getcontent загрузка происходит через IE и с его настройками: t=webbrowser('http://www.yandex.ru/'); .

strip_tags('текст') - удаляет теги из текста.

Внутри скриптов можно вставлять html-код в блоке [HTML][/HTML]:
[SCRIPT]
$a=1;
if($a==1){
[HTML]
<font color="#009900"><b>OK</b></font>
[/HTML]

}
[/SCRIPT]


Вывести переменную внутри [HTML][/HTML] можно макросом [VAR-имя переменной]:
[SCRIPT]
$a='Привет!';
[HTML]
<font color="#009900"><b>[VAR-$a]</b></font>
[/HTML]

[/SCRIPT]


Кроме [HTML][/HTML] ещё можно заключать html-код в [ESTRING][/ESTRING]. Как и [HTML][/HTML] этот блок преобразовывается с экранированием кавычек и слэшей, но без print, т.е. просто в строку в кавычках. Например:
[ESTRING]
<font color="#009900"><b>OK</b></font>
[/ESTRING]

будет преобразован в: "<font color=\"#009900\"><b>OK</b></font>".
С помощью этого блока можно записывать в переменные значения, выводимые макросами, для дальнейшей обработки. Например:
[SCRIPT_P]
$a=[ESTRING][ARTICLE_TEXT][/ESTRING];
[/SCRIPT_P]

В этом примере в переменную $a будет записан текст статьи, выводимый макросом [ARTICLE_TEXT].

Знаки:

* умножение
/ деление
\ целочисленное деление
% остаток от деления
+ сложение
- вычитание
== равно
!= не равно
>= больше, либо равно
<= меньше, либо равно
> больше
< меньше
&& и (AND)
|| или (OR)


%^Imports:script_functions.txt^% - команда для добавлений в скрипт функций из файла.


Константы:

$page_keyword - ключевик
$page_title - заголовок страницы
$page_metakeywords - meta keywords страницы
$page_metadescription - meta description страницы
$page_type - тип страницы (1 - главная, 2 - категоря, 3 - статья, 4 - карта сайта, 5 - пользовательская страница)
$page_file - файл страницы
$page_url - URL страницы
$categories_count - кол-во категорий.
$category_url[] - массив url-ов категорий.
$category_name[] - массив названий категорий.
$articlespage_count - кол-во страниц со статьями.
$articlespage_url[] - массив url-ов страниц со статьями.
$articlespage_keyword[] - массив ключевиков страниц со статьями.
$articlespage_ctg[] - массив номеров категорий страниц со статьями.
$articlespage_idate[] - массив дат статей в формате количества дней, прошедших после полуночи 30 декабря 1899 г..
$articlespage_date[] - массив дат статей в обычном формате, т.е. "25.06.2012".
$keywords_count - кол-во ключевиков.
$keyword[] - массив ключевиков.
$current_article - номер текущей статьи.
$current_project - номер текущего проекта.
$article_category_num - номер категории текущей статьи.
projectscount() - кол-во проектов.

Порядок создания страниц:
Сначала создаются страницы статей, потом категорий, а потом все остальные.