В случае, если такого файла на сервере нет либо дата его создания ранее даты внесения изенений в копируемом файле (например, файл уже после отправки на сервер снова редактировался на локальной машине), файл переписывается по новому адресу. Параллельно информация о скопированных файлах записывается в переменную copiedFiiesArr с тем, чтобы после окончания процесса выдать консолидированный отчет: сколько и каких файлов было скопировано: Поскольку операция ответственная, проверяем результат каждого копирования: если оно закончилось неудачей, устанавливаем признак проблемы copyOK=false.

Функция decodeURi () выполняет сразу две задачи: во-первых, она корректно обрабатывает специальные символы, знаки пробела и т. п., поскольку синтаксис путей к файлам имеет определенные ограничения. Во-вторых, она вычленяет из объекта File его путь (если использовать конструкцию

File. toString о, то потом бы пришлось производить замену обратных слэшей на двоеточия, принятые для обозначения пути на Macintosh (replace (// \/д,

^Листинг 11.22. Копирование ресурсов на сервер

function postToServer(){

MagazinelFolder = decodeURI(aD.filePath.name); serverFolder = MagazinelFolder + issueNumberFolder+'/1

iddAtHome = decodeURI( File(aD.fullName)) iddAtServer = serverFolder+decodeURI( aD.name)

if (!Folder(serverFolder).exists)

Folder(serverFolder).create();

for (myLinks = 0; myLinks < aD.links.length; myLinks++) ( myl = aD.links[myLinks]; if(myl.status != LinkStatus.linkMissing){ linkAtHome = decodeURI( File(myl.filePath))

linkAtServer = serverFolder + decodeURI( File(myl.filePath).name); ;

if (! File (linkAtServer) . exists ||

(File(linkAtServer).created.getTime() <

File(linkAtHome).modified.getTime() ) || (

File(linkAtServer).created.getTime() < 4?

File(linkAtHome).created.getTime() ) ){ f_src = File(linkAtHome); f_new = new File(linkAtServer); if (!File(f_src).copy(f_new)) copyOK = false; copiedFilesArr.push(decodeURI(File(f_new).name))

}

}

}

f_src = File(iddAtHome); f_new = new File(iddAtServer); if(!File(f_src).copy(f_new)) copyOK = false; В самом начале книги мы обсуждали выбор того или иного языка для скриптинга и остановились на JavaScript как идеальном кандидате на эту роль. Од нако традиционно издательские процессы строились на платформе Macintosh, в которой особую популярность имеет AppleScript- как полноценный язык программирования. Поэтому, хотя автор с данным языком не знаком, из уважения к достаточно многочисленному Мас-сообществу напишем несколько вставок, которые демонстрируют одно из многочисленных преимуществ (автор в этом твердо уверен!) альтернативной операционной.

Психологически человек устроен так, что все ответственные операции он склонен перепроверять. Все это в полной мере относится и к формированию конечного PDF для передачи в типографию. Если макетов рекламы много, человеку требуется дополнительный сигнал, что макет проверен и перепроверен и его можно включать в итоговый документ. Обычно для таких целей папки с содержимым рекламных макетов красят в зеленый цвет (color label, есть такая достаточно интересная возможность в Mac OS). Чтобы максимально автоматизировать процесс обработки рекламы, эту последнюю операцию также реализуем с помощью скрипта.


⇐ вернуться назад | | далее ⇒