//Anonses.js
//An InDesign CS JavaScript
//Скрипт применяет стили параграфов вида <стиль> к выделенным текстовым фреймам
//Затем скрипт выполняет необходимую чистку текста и некоторые специфические для анонсов замены,
//включая замену жанров значками
var myFoundItems;
//myShanrs = ["Мелодрама", "Детектив", "Триллер", "Детский", "Комедия", "Боевик", "Музыкальный", "Эротика", "Ужасы", "Исторический", "Приключения", "Драма", "Фантастика", "Вестерн"];
//myPathToFiles = "d:/All/Tn_prg_new/Links/"
if (app.selection.length !=0){
//Цикл по выделенным объектам
for (var myCounter = 0; myCounter < app.selection.length; myCounter++){
var mySelectedObject = app.selection[myCounter];
var myConstructorName = mySelectedObject.constructor.name;
if (myConstructorName == "TextFrame") {
var myStory = mySelectedObject.parentStory;
//Ищем <АНОНС> и присваиваем стиль АНОНС
app.changeGrepPreferences = NothingEnum.nothing;
app.findGrepPreferences = NothingEnum.nothing;
app.findGrepPreferences.findWhat = "^<Анонс>";
app.changeGrepPreferences.appliedParagraphStyle = "Анонс";
app.changeGrepPreferences.changeTo = "";
myStory.changeGrep();
app.changeGrepPreferences = NothingEnum.nothing;
app.findGrepPreferences = NothingEnum.nothing;
app.findGrepPreferences.findWhat = "^<Анонс>";
app.changeGrepPreferences.changeTo = "";
myStory.changeGrep();
// То же со стилем ВРЕМЯ-1, РЕЖИССЕР и ТЕЛО АНОНСА
app.changeGrepPreferences = NothingEnum.nothing;
app.findGrepPreferences = NothingEnum.nothing;
app.findGrepPreferences.findWhat = "^<время-1>";
app.changeGrepPreferences.appliedParagraphStyle = "время-1";
app.changeGrepPreferences.changeTo = "";
myStory.changeGrep();
app.changeGrepPreferences = NothingEnum.nothing;
app.findGrepPreferences = NothingEnum.nothing;
app.findGrepPreferences.findWhat = "^<время-1>";
app.changeGrepPreferences.changeTo = "";
myStory.changeGrep();
app.changeGrepPreferences = NothingEnum.nothing;
app.findGrepPreferences = NothingEnum.nothing;
app.findGrepPreferences.findWhat = "^<Режиссер>";
app.changeGrepPreferences.appliedParagraphStyle = "Режиссер";
app.changeGrepPreferences.changeTo = "";
myStory.changeGrep();
app.changeGrepPreferences = NothingEnum.nothing;
app.findGrepPreferences = NothingEnum.nothing;
app.findGrepPreferences.findWhat = "^<Режиссер>";
app.changeGrepPreferences.changeTo = "";
myStory.changeGrep();
app.changeGrepPreferences = NothingEnum.nothing;
app.findGrepPreferences = NothingEnum.nothing;
app.findGrepPreferences.findWhat = "^<Тело анонса>";
app.changeGrepPreferences.appliedParagraphStyle = "Тело анонса";
app.changeGrepPreferences.changeTo = "";
myStory.changeGrep();
app.changeGrepPreferences = NothingEnum.nothing;
app.findGrepPreferences = NothingEnum.nothing;
app.findGrepPreferences.findWhat = "^<Тело анонса>";
app.changeGrepPreferences.changeTo = "";
myStory.changeGrep();
//В стиле ТЕЛО АНОНСА заменяем троеточие на точку
app.changeGrepPreferences = NothingEnum.nothing;
app.findGrepPreferences = NothingEnum.nothing;
app.findGrepPreferences.findWhat = "\\.\\.\\.$";
app.findGrepPreferences.appliedParagraphStyle = "Тело анонса";
app.changeGrepPreferences.changeTo = ".";
myStory.changeGrep();
//Перед коротким временем ставим Figure Space
app.changeGrepPreferences = NothingEnum.nothing;
app.findGrepPreferences = NothingEnum.nothing;
app.findGrepPreferences.appliedParagraphStyle = "Анонс";
app.findGrepPreferences.findWhat = "^(\\d\\.\\d\\d)";
app.changeGrepPreferences.changeTo = "~/$1";
myStory.changeGrep();
//Заменяем двойные дефисы на тире
app.changeTextPreferences = NothingEnum.nothing;
app.findTextPreferences = NothingEnum.nothing;
app.findTextPreferences.findWhat = "--";
app.changeTextPreferences.changeTo = "^_";
myStory.changeText();
//Заменяем пробел-дефис-пробел на тире
app.changeTextPreferences = NothingEnum.nothing;
app.findTextPreferences = NothingEnum.nothing;
app.findTextPreferences.findWhat = " - ";
app.changeTextPreferences.changeTo = "^_";
myStory.changeText();
//Заменяем короткое тире на тире
app.changeTextPreferences = NothingEnum.nothing;
app.findTextPreferences = NothingEnum.nothing;
app.findTextPreferences.findWhat = "^=";
app.changeTextPreferences.changeTo = "^_";
myStory.changeText();
//Вставка атрибута NoBreak перед тире
app.changeGrepPreferences = NothingEnum.nothing;
app.findGrepPreferences = NothingEnum.nothing;
app.findGrepPreferences.findWhat = "\\s(?=—)";
app.changeGrepPreferences.noBreak = true;
myStory.changeGrep();
//Вставка атрибута NoBreak после предлогов
app.changeGrepPreferences = NothingEnum.nothing;
app.findGrepPreferences = NothingEnum.nothing;
app.findGrepPreferences.findWhat = "(?i)(?<=\\s)(не|по|за|со|к|в|с)\\s";
app.changeGrepPreferences.noBreak = true;
myStory.changeGrep();
//Вставка атрибута NoBreak после "пробел-БУКВА.-пробел"
app.changeGrepPreferences = NothingEnum.nothing;
app.findGrepPreferences = NothingEnum.nothing;
app.findGrepPreferences.appliedParagraphStyle = "Режиссер";
app.findGrepPreferences.findWhat = "(?i)(?<=\\s\\u\\.)\\s";
app.changeGrepPreferences.changeTo = "~S";
myStory.changeGrep();
// заменяем звездочки в стиле время-1
app.changeGrepPreferences = NothingEnum.nothing;
app.findGrepPreferences = NothingEnum.nothing;
//app.findGrepPreferences.appliedParagraphStyle = "время-1";
app.findGrepPreferences.findWhat = " \\*\\*\\*\\*\\*$";
app.changeGrepPreferences.changeTo = "";
myStory.changeGrep();
//app.changeGrepPreferences.appliedCharacterStyle = "Рейтинг";
//app.changeGrepPreferences.changeTo = "";
//myStory.changeGrep();
app.findGrepPreferences.findWhat = " \\*\\*\\*\\*$";
app.changeGrepPreferences.changeTo = "";
myStory.changeGrep();
app.findGrepPreferences.findWhat = " \\*\\*\\*$";
app.changeGrepPreferences.changeTo = "";
myStory.changeGrep();
app.findGrepPreferences.findWhat = " \\*\\*$";
app.changeGrepPreferences.changeTo = "";
myStory.changeGrep();
app.findGrepPreferences.findWhat = " \\*$";
app.changeGrepPreferences.changeTo = "";
myStory.changeGrep();
// Заменяем вспомогательные символы «|» на звездочки со стилем «Рейтинг1»
//app.findGrepPreferences.findWhat = "\\|";
//app.changeGrepPreferences.changeTo = "";
//app.changeGrepPreferences.appliedCharacterStyle = "Рейтинг1";
//myStory.changeGrep();
//Заменяем жанры на значки
//for (var i=0; i<myShanrs.length; i++){
// var myShanrName = myShanrs[i];
// var myStringToFind = "(" + myShanrName + ")";
// var myPathToFilesString = myPathToFiles + "_" + myShanrName.toLowerCase() + ".eps";
// app.changeTextPreferences = NothingEnum.nothing;
// app.findTextPreferences = NothingEnum.nothing;
// app.findTextPreferences.appliedParagraphStyle = "Тело анонса";
// app.findTextPreferences.findWhat = myStringToFind;
// myFoundItems = myStory.findText(1);
// if (myFoundItems.length > 0){
//Для каждого элемента в массиве
// for(var j = 0; j<myFoundItems.length; j++){
//Пытаемся на место элемента вставить файл
// try {
// myFoundItems[j].place(File(myPathToFilesString));
// myFoundItems[j].dropCapLines = 2;
// myFoundItems[j].dropCapCharacters++;
// } catch (error) {
// myErrorCount++;
// }
// }
// }
//}
app.changeTextPreferences = NothingEnum.nothing;
app.findTextPreferences = NothingEnum.nothing;
app.changeGrepPreferences = NothingEnum.nothing;
app.findGrepPreferences = NothingEnum.nothing;
}
}
}
else{
alert("Выделите текстовый блок(и) или текст и попробуйте снова.");
}