вопрос по URL Substitutes

Author Message
Даниил 09/20/2013 10:04 am
[извините за возможный дубль и репост. сообщения, видимо, проходят модерацию перед размещением]

не могу разобраться. возможно ли, используя функцию 'Замены Адресов', переместить часть URL в конец создаваемого имени файла? к примеру, имею список адресов:

http://example.com/20130312/godaddy/ejohnson/1.html
http://example.com/20130906/google/arik/2.html
http://example.com/20130908/groupon/3.html
http://example.com/20130909/google/4.html
http://example.com/20130910/godaddy/kara/5.html
http://example.com/20130910/groupon/6.html
http://example.com/20130919/godaddy/walt/lauren/7.html
http://example.com/20130919/google/8.html
http://example.com/20130919/groupon/jason/bonnie/9.html

хочу, предположим, имя каталога с датой прилепить к имени загруженной страницы. причем не обязательно начального каталога, за который, как я понимаю, отвечает макрокоманда {:dir}. например адреса будут такого вида:

http://example.com/stuff/20130312/godaddy/ejohnson/1.html
http://example.com/stuff/20130906/google/arik/2.html
http://example.com/stuff/20130908/groupon/3.html
http://example.com/stuff/20130909/google/4.html
http://example.com/stuff/20130910/godaddy/kara/5.html
http://example.com/stuff/20130910/groupon/6.html
http://example.com/stuff/20130919/godaddy/walt/lauren/7.html
http://example.com/stuff/20130919/google/8.html
http://example.com/stuff/20130919/groupon/jason/bonnie/9.html

но это, думаю, масками подправить можно в той же 'Замене Адресов', правда? часть '/stuff/' всегда одинакова. итак, в конечной папке загруженного проекта хотелось бы пропуска одного уровня дерева (папки '20130312', '20130906', '20130908' и т.д.) и распределения файлов и подпапок уже по следующему уровню каталога ('godaddy', 'google', 'groupon' сразу в корневой 'example.com') с конечными именами страниц в них вида '1-[20130312].html', '2-[20130906].html', '3-[20130908].html'.... использую Enterprise Edition, в мануале по Pro версии указано, что "в текущий момент не поддерживается набор следующих одна за другой макрокоманд, подобно {:1..10}, {:server}, {:dir}, {:filename} или {:a,b,c,d}". без них никак не получится или возможно ли это в текущее время и как сформулировать непосредственно замену?

прилагаю примерную картину желаемого на https://www.dropbox.com/s/v6am1mngebm5qhh/example_folders.png и https://www.dropbox.com/s/fmlodtk54pew2kq/example_folders.doc

заранее благодарю,
Ян

P.S. только подумал, что НАЧАЛЬНЫЕ каталоги могут подразумевать оные стартового/-ых URL в поле "Адреса (URL) Проекта", а не порядок положения в текущем обрабатываемом адресе как таковом. или не так? как задать именно первую, вторую, третью, n-ную по глубине директорию макрокомандой? спасибо.
Oleg Chernavin 09/20/2013 01:13 pm
Это должно быть несложно. Попробуйте правило:

URL:
*
Replace:
http://example.com/***/**/*.html
With:
http://example.com/**/*-***.html
Apply to:
Filenames

Best regards,
Oleg Chernavin
MP Staff
Ян 09/20/2013 02:31 pm
виноват, не пояснил. вернее, не уточнил детали касаемо типа адресов. синтаксис ваших масок мне понятен, я бы справился с такими ровными адресами, как в предыдущем примере, но как раз таки расширения имен файлов и количество каталогов (если это важно в вашем примере замены) довольно варьируются. сгенерил html'шки на лету, акцент вопроса был именно на каталоговых участках URL. при парсинге могут встречаться и динамичные страницы, и подразумевающиеся OE как 'default.htm', если адрес заканчивается косой чертой после каталога. в принципе, адрес может и чертой не оканчиваться:


http://example.com/20130312/godaddy/ejohnson/1.html
http://example.com/20130906/google/arik/detail?name=pentadactyl-20130601&can=1&q=label
http://example.com/20130908/groupon/oklahoma-arkansas-midwest-20130601/
http://example.com/20130909/google/oklahoma-arkansas-midwest-20130601
http://example.com/20130910/godaddy/
http://example.com/20130910/groupon/view/vuln/detail?vulnId=CVE-2013-0601
http://example.com/20130919/godaddy/walt/lauren/D_print.aspx?date_req=19.09.2013
http://example.com/20130919/google/v_02_15/index.php?option=com_content&view=article&id=96
http://example.com/20130919/groupon/jason/bonnie/9.php


то есть постоянные атрибуты - 1) домен; 2) первый каталог меняется, но всегда состоит из восьми цифр года, месяца и числа; 3) второй каталог - вариативен и по длине и по альфанумерике, но всегда наличествует, а дальше - как Бог дал... возможно, сработала бы замена

в
*

с
http://example.com/***/**/*

на
http://example.com/**/*-***

но имя первого каталога -(дата)- (***) - должно быть, в некоторых случаях запишется уже в конец расширения конечного файла, а не его имени. я прав? и еще вопрос: охватывает ли '**' в вашем 'http://example.com/***/**/*.html' все каталоги со второго по предшествующий имени файла, если имеется несколько? или наоборот, ни одного? спасибо.
Oleg Chernavin 09/22/2013 11:42 am
Да, тут сложный случай. Маска http://example.com/***/**/* разделит адрес http://example.com/20130919/groupon/jason/bonnie/9.php на части:

*** - 201309019
** - groupon
* - jason/bonnie/9.php

К сожалению, предусмотрел только ***, ** и *. А так можно было бы сделать 2 правила:

URL:
*.*
Replace:
http://example.com/****/***/**.*
With:
http://example.com/***/**-****.*
Apply to:
Filenames

URL:
*?*
Replace:
http://example.com/****/***/**?*
With:
http://example.com/***/**-****?*
Apply to:
Filenames

Олег.
Oleg Chernavin 09/22/2013 11:55 am
Добавил поддержку такиз масок. Вот обновленный файл OE.exe:

http://www.metaproducts.com/download/betas/OEE4003.zip

Олег.
Ян 09/23/2013 07:10 am
благодарю. поколдуем-с.
Ян 09/23/2013 08:27 am
хотел еще уточнить, Олег. новый вариант с масками, который вы предлагаете и воплотили в новом релизе, за что отдельное спасибо, осуществить уже можно в большинстве нужных мне случаев, чем и займусь, но ввиду отсутствия расширения у файлов, полученных с адресов типа:

http://example.com/20130909/google/oklahoma-arkansas-midwest-20130601
http://example.com/20130910/godaddy

(адресов, заканчивающихся каталогом, но без косой черты - то бишь, "default.htm" при записи файла не работает и расширения конечные загруженные страницы не имеют)

невозможно идентифицировать точку между именем файла и расширения в предложенной вами маске замены УРЛ'ов. можно ли задать программе способ распознавания таких адресов каким-то образом и проставление той самой косой черты, дабы имя каталога с датой из моих предыдущих примеров добавлялась не к файлам 'oklahoma-arkansas-midwest-20130601'и 'godaddy' без расширения, а к сгенерированному "default.htm" уже внутри одноименных папок. OE видит эти части адреса как конечный файл, а не собственно каталог, сугубо из-за отсутствия слэша? и кстати, как они ведут себя при экспорте, добавляется ли расширение автоматически? текущий проект довольно объемный, не представляется возможности ни остановить и экпортировать имеющееся, ни дождаться конца загрузки, чтобы проверить. спасибо.
Oleg Chernavin 09/23/2013 10:21 am
Честно говоря, не могу сказать и даже проверить. Я в отпуске до 6 октября. Надеюсь, что будет генерироваться имена default.htm и к ним уже применяться правила.

Напишите мне, как получится загрузка. Спасибо!

Олег.