Русский > Разработчикам
Разработка скриптов
nostra:
9. Встроенные ф-ции для парсинга
function Pos(Substr : WideString; Str: WideString): Integer
Определяет позицию подстроки SubStr в тексте Str
function PosFrom(const SubStr, Str : WideString; FromIndex : Integer) : Integer
Определяет позицию подстроки SubStr в тексте Str начиная поиск с позиции FromIndex
function LastPos(const SubStr, Str : WideString) : Integer
Определяет позицию подстроки SubStr в тексте Str с конца текста.
function PrevPos(const SubStr, Str : WideString; APos : Integer) : Integer
Определяет позицию подстроки SubStr в тексте Str перед APos.
function RemoveTags(AText : WideString; doLineBreaks : Boolean) : WideString
Удаляет теги из текста AText. На пример: <a href="http://test.com">Test</a> будет преобразован в Test. Если doLineBreaks установлен в True, то тег <br> будет конвертироваться в перевод строки.
function ExplodeString(AText : WideString; var Items : TWideArray; Delimiters : WideString) : Integer
Разделяет сроку AText на подстроки используя разделители Delimiters. Результат пишется в динамический массив Items.
function Copy(S: WideString; Index, Count: Integer): WideString
Копирует Count символов из строки S начиная с Index
procedure Delete(var S: WideString; Index, Count: Integer)
Удаляет Count символов из строки S начиная с Index
procedure Insert(Source: WideString; var Dest: WideString; Index: Integer)
Вставляет строку Source в строку Dest на позиции Index
function Length(S: WideString): Integer
Определяет длину строки S
function Trim(S: WideString): WideString
Убирает невидимые символы (пробел, перевод строки, абзац) из строки S
function CompareText(S1, S2: WideString): Integer
Сравнивает 2 строки (S1 и S2) без учёта регистра. Возвращает 0 если строки равны, значение > 0 если S1 > S2 и значение < 0 если S1 < S2.
function CompareStr(S1, S2: WideString): Integer
Сравнивает 2 строки (S1 и S2) с учётом регистра. Возвращает 0 если строки равны, значение > 0 если S1 > S2 и значение < 0 если S1 < S2.
function UpperCase(S: WideString): WideString
Переводит все символы в строке S в верхний регистр (большие буквы).
function LowerCase(S: WideString): WideString
Переводит все символы в строке S в нижний регистр (маленькие буквы).
function StringReplace(S, OldPattern, NewPattern: WideString; ReplaceAll : Boolean; IgnoreCase : Boolean; WholeWord: Boolean): WideString
Заменяет OldPatter на NewPattern в строке S. Если ReplaceAll установлен в True, то заменяются все повторения OldPattern. Если IgnoreCase установлен в True, то сравнение подстрок ведётся без учёта регистра.
function StrToInt(const S: WideString): Integer
Преобразовывает строку в целое число
function IntToStr(const Value: Integer): WideString
Преобразовывает целое число в строку
function StrToFloat(const S: WideString): Extended
Преобразовывает строку в действительное число
function FloatToStr(const Value: Extended): WideString
Преобразовывает действительное число в строку
function HTMLValues(const HTML : WideString; ABegin, AEnd, ItemBegin, ItemEnd : WideString; ValDelim : WideString; var Pos : Integer) : WideString
Собирает значения из HTML в строку разделяя их разделителем ValDelim. Ф-ция ищет сначала подстроку ABegin начиная с позиции Pos, начиная с неё выбирает значения между подстроками ItemBegin и ItemEnd пока не встретится AEnd. Конечная позиция в тексте возвращается в переменную Pos.
function HTMLValues2(const HTML : WideString; ABegin, AEnd, ItemBegin, ItemEnd : WideString; ValDelim : WideString; var Pos : Integer) : WideString
Аналогично HTMLValues, но после ItemBegin ищется конец тега > и значение читается после него.
function TextBetween(const HTML : WideString; ABegin, AEnd : WideString; doLineBreaks : Boolean; var Pos : Integer) : WideString
Возвращает текст без HTML тегов из строки HTML, начиная с ABegin и заканчивая AEnd. ABegin ищется начиная с позиции Pos.
function HTMLToText(const HTML : WideString) : WideString
Преобразует все значения символов используемые в HTML для таких символов как <, >, $, " и т.д. в текст
nostra:
10. Ф-ции заполнения полей (наконец-то :) )
10.1. Ф-ции для заполнения стандартных (для плагинов загрузки информации) полей
procedure AddSearchResult(Title1, Title2, Year, URL, PreviewURL : WideString)
Добавляет результат поиска. Все переменные заполнять не обязательно, главное заполнить хотя бы Title1 или Title2 и URL.
procedure AddFieldValue(AField: Integer; AValue : WideString)
Добавляет значение поля (AValue). AField может принимать следующие значения:
Для фильмов:
0URL1Название2Ориг. название3Другие названия4Год5Жанр6Категория7Страна8Студии9MPAA10Доп. рейниг11Теги12Слоган13Описание14Длительность15Бонусы
Для персон:
0URL1Имя2Переведённое имя3Другие имена4Дата рождения5Место рождения6Жанр7Биография8Дата смерти
procedure AddMoviePerson(Name, TransName, Role, URL : WideString; AType : Byte)
Добавляет участника фильма. AType может принимать следующие значения:
0Актёр1Режиссёр2Сценарист3Композитор4Продюсер
procedure AddPersonMovie(Title, OrigTitle, Role, Year, URL : WideString; AType : Byte)
Добавляет фильм в фильмографию. AType может принимать следующие значения:
0Актёр1Режиссёр2Сценарист3Композитор4Продюсер
procedure AddAward(Event, Award, Category, Recipient, Year: WideString; const Won : Boolean)
procedure AddAwardEx(Event, Award, Category, RecipientVal1, RecipientVal2, Year: String; const Won : Boolean)
Добавляет награду.
procedure AddConnection(Title, OrigTitle, Category, URL, Year: WideString)
Добавляет связь с другим фильмом.
procedure AddEpisode(Title, OrigTitle, Description, URL, Year, Season, Episode : WideString)
Добавляет эпизод.
10.2. Ф-ции для остальных полей
procedure AddFieldValueXML(AField: WideString; AValue : WideString)
Эту ф-цию можно использовать для полей которые нельзя заполнить ф-циями указаными выше (за исключением пользовательских полей). Стандартные поля тоже можно заполнять с её помощью.
В переменной AValue передаётся значение поля, а AField - это строка(название) соответствующая определённому полю:
Для фильмов:
numtitleorigtitleakayeargenrecountrystudioreleasempaalocationcategorytaglinedescriptioncounttyperatingimdbratingoratingornameriplengthlangstranslationresolutionvideocodecvideobitrateaudiocodecaudiobitratesizeurlpathcommentdateaddedcodelabelloansubsframeratelabelfeaturesviewedbookmarkwishloandateviewdatetags
Для персон:
nametransnamealtnamesbirthdaybirthplacebiodeath
procedure AddCustomFieldValueByNumber(CustomNumber: Integer; AValue : WideString)
Заполняет пользовательское поле по порядковому номеру поля.
CustomNumber - номер пользовательского поля по счёту
AValue - значение (используйте '-1' для True(галочка установлена) и '0' для False)
procedure AddCustomFieldValueByName(CustomName: WideString; AValue : WideString)
Заполняет пользовательское поле названию поля.
CustomName - название пользовательского поля
AValue - значение
nostra:
11. Другие ф-ции
procedure ShowMessage(const Msg, Head : WideString)
Выводит текстовое сообщение с кнопкой OK.
Head - Название окна
Msg - Текст сообщения
12. Проверка работы скрипта
После того как Вы написали скрипт нужно проверить его работоспособность. Для этого запустите PVD с параметром -debug, вот так: viddb.exe -debug
Запустив программу с этим параметром в меню "Помощь" появится меню Log, которое открывает окно с логом программы.
В этом окне можно получить следующую информацию:
* какие плагины загружает программа
* какие скрипты компилируются
* какие ошибки происходят при компилировании скриптов
* какие веб страницы загружает программа при работе плагина/скрипта
Если скрипт не может быть скомпилирован из-за ошибок, то в программу он не подгружается и соответственно не появляется в меню "Импорт" или в списке плагинов в настройках.
При компиляции скрипта компилятор выводит сообщение при обнаружении ошибки с информацией в каком месте скрита была найдена ошибка и описанием ошибки.
На пример: [Error] (366:2): Semicolon (';') expected
Это означает, что в строке 366 на позиции 2 отсутствует ; (на самом деле она вероятнее всего отсутствует в конце строки 365)
Так же компилятором выводятся подсказки по оптимизации кода.
На пример: [Hint] (368:2): Variable 'TEST' never used
Это означает, что переменная Test объявленная в строке 368 на позиции 2 не была использована.
Если скрипт компилируется, но работает не корректно можно воспользоваться ф-цией ShowMessage для вывода значений переменных в части кода, который не правильно работает, а так же проверить правильность URL-ов загружаемых программой в логе.
В режиме -debug программа так же пишет текст загружаемых страниц в файл page.html в папку программы. (там всегда находится последняя страница загруженная программой).
Навигация
Перейти к полной версии