Название: MoveRenameFile - расширение HC для конвертирования кэша Отправлено: igorek от 21 октября 2009, 20:03:56 Часто возникают ситуации,когда с добавлением новых правил в списке Преобразование УРЛ,некоторые файлы остаются как бы вне кэша.Приходится либо отключить временно правило для них либо переименовать вручную файлы согласно новым правилам.
Предлагаю скрипт,который переименует,и, если надо,переместит файлы согласно новым правилам. Файлы,требующие для работы: 1. http://luaforge.net/frs/download.php/3677/lua5_1_4_Win32_bin.zip -скачать,внутри архива взять папку Microsoft.VC80.CRT и положить в папку ХэндиКэш 2. http://luaforge.net/frs/download.php/3933/luafilesystem-1.4.2-win32-lua51.zip -lfs.dll в папку ХК Название: MoveRenameFile - расширение HC для конвертирования кэша Отправлено: igorek от 23 октября 2009, 00:41:30 Переделал функцию CacheToURL таблице перекодировки символов версии 0.98b1
Название: MoveRenameFile - расширение HC для конвертирования кэша Отправлено: HKLM от 23 октября 2009, 01:51:37 Часто возникают ситуации,когда с добавлением новых правил в списке Преобразование УРЛ,некоторые файлы остаются как бы вне кэша.Приходится либо отключить временно правило для них либо переименовать вручную файлы согласно новым правилам. В моем кэше много потерянных файлов. За 4 года много раз менял Преобразование УРЛ.Цитировать Предлагаю скрипт,который переименует,и, если надо,переместит файлы согласно новым правилам. Это супер!! А как оно узнает какой файл куда положить, если правила менялись много раз? Боюсь ошибок наделает.А например если оно назначит имя файлу, а такой уже есть, файл будет заменен, только если старый более новым? А если наоборот взять и отключить какоето старое правило, тогда скрипт сможет правильно переименовать? Название: MoveRenameFile - расширение HC для конвертирования кэша Отправлено: igorek от 23 октября 2009, 16:54:13 Цитировать В моем кэше много потерянных файлов. За 4 года много раз менял Преобразование УРЛ. Для этого и сделал скрипт.У себя с помощью скрипта переместил более тысячи файлов. Цитировать А как оно узнает какой файл куда положить, если правила менялись много раз? Старался правильно преобразовать файлы в УРЛ согласно правилам преобразования символов в ХК. Затем ХК выдавал результат преобразования УРЛ в файл через список Преобразование УРЛ Цитировать А например если оно назначит имя файлу, а такой уже есть, файл будет заменен, только если старый более новым? Да, из двух файлов отберется более новый,а старый будет удален Цитировать А если наоборот взять и отключить какоето старое правило, тогда скрипт сможет правильно переименовать? Однозначно не получится туда и обратно положить. Можете для начала посмотреть результаты,что и куда переместятся.Формат вывода: УРЛ Старый путь Новый путь Если вас удовлетворит такое перемещение(переименование),то нажимаете кнопку Move igorek, с тэгами аккуратнее! В bbCode все тэги в квадратных скобках. -- Модератор Название: Re: MoveRenameFile - расширение HC для конвертирования кэша Отправлено: HKLM от 23 октября 2009, 17:36:59 Судя по логу он предлагает переместить все что я пробовал ему скормить.
лог: Код: Find: 121 file(s) Эти два файла закачаны только что, правила не менял. Пробовал папки разных сайтов, везде одно и тоже - предлагает переместить всё. Почему так? (Исправил опечатку) Название: Re: MoveRenameFile - расширение HC для конвертирования кэша Отправлено: DenZzz от 23 октября 2009, 18:12:46 А как оно узнает какой файл куда положить, если правила менялись много раз? Никак. Часто правила списка "Преобразования URL" необратимы, поэтому некоторые части исходного URL могут быть потеряны безвозвратно, т.е. достоверно восстановить исходный URL в ряде случаев не получится. Соответственно, и преобразовать этот путь к файлу новыми правилами корректно может не получиться. Добавлено: 23 Октября 2009, 18:57:36 Можно, конечно, попытаться проанализировать старые правила списка "Преобразование URL" с целью правильного восстановления исходных URL. Для простейших однозначных правил это получится сделать, но вот для правил посложнее - нет. Добавлено: 23 Октября 2009, 19:05:37 igorek Ты немного поспешил с функцией CacheToURL_New(str). ;) Это перспективный алгоритм, он пока не реализован в HC. Да и вряд ли вообще будет реализован в основном коде HC, т.к. все это можно сейчас сделать на уровне расширения. Название: Re: MoveRenameFile - расширение HC для конвертирования кэша Отправлено: igorek от 23 октября 2009, 20:22:25 Судя по логу он предлагает переместить все что я пробовал ему скормить. признаюсь,я не знаток регурярных выраженийлог: Код: Find: 121 file(s) Эти два файла закачаны только что, правила не менял. Пробовал папки разных сайтов, везде одно и тоже - предлагает переместить всё. Почему так? (Исправил опечатку) Найдите в скрипте local _,_,burl,aurl=string.find(url,'([^?]+)?\?(.*)') и замените вот на эту строку local _,_,burl,aurl=string.find(url,'([^?]+)?(.*)') Название: Re: MoveRenameFile - расширение HC для конвертирования кэша Отправлено: HKLM от 23 октября 2009, 22:41:13 igorek
Спасибо, заменил строку в двух местах. Теперь количество найденных как ожидалось. Давно хотел спросить какое правило из преобразования URL преобразует в короткие имена типа: H:\Cache\yandex.ru\yandsearch^\3FBC44D8 В папке яндекса таких и так много, а скрипт предлагает несколько замен: Код: http://yandex.ru/yandsearch?ras=1&date=&text=SPC3&spcctx=notfar&zone=all&linkto=&wordforms=all&lang=all&within=0&from_day=&from_month=&from_year=&to_day=&to_month=&to_year=&mime=all&Link=&rstr=&site=&numdoc=10&ds=&how=tm Название: Re: MoveRenameFile - расширение HC для конвертирования кэша Отправлено: igorek от 23 октября 2009, 23:36:28 Цитировать Давно хотел спросить какое правило из преобразования URL преобразует в короткие имена типа: подробности тут http://handycache.ru/component/option,com_smf/Itemid,10/topic,78.msg15389/#msg15389H:\Cache\yandex.ru\yandsearch^\3FBC44D8 Цитировать 2.4.12. На последнем этапе преобразования URL проверяется длина имени (относительно папки кеша). Выкладываю поправленный скриптЕсли она больше 200, то ищется последний символ [\] в пределах первых 192 символов. Строка до символа [\] остается, а оставшееся кодируется хешем CRC32: При длинне URL до 200 -> Папка кэша\URL При длинне URL свыше 200 -> Папка кэша\[URL до 192]\[CRC32 остатка] Название: Re: MoveRenameFile - расширение HC для конвертирования кэша Отправлено: HKLM от 24 октября 2009, 14:48:43 Ну все, нормально получилось. Перелопатил свой кэш, 5500 файлов были переименованы.
После чего, долго смотрел последствия и никаких недостатков в кэше найти не смог. Название: Re: MoveRenameFile - расширение HC для конвертирования кэша Отправлено: IVAn Dealer от 24 октября 2009, 17:04:12 2. http://luaforge.net/frs/download.php/3933/luafilesystem-1.4.2-win32-lua51.zip -lfs.dll в папку ХК
не могу скачть - выложите плиз или на hoclumur@yandex.ru Название: Re: MoveRenameFile - расширение HC для конвертирования кэша Отправлено: HKLM от 24 октября 2009, 17:12:53 Выложил только здесь
http://slil.ru/28117918 Название: Re: MoveRenameFile - расширение HC для конвертирования кэша Отправлено: IVAn Dealer от 24 октября 2009, 18:34:02 как у вас получается по 5 тыс. файлов перемещать? ведь в кэше очень много папок, получается имя каждой папки (урл) я должен вбивать в скрипт или я чего-то недопонял
хотелось бы чтобы всё было на автомате Название: Re: MoveRenameFile - расширение HC для конвертирования кэша Отправлено: HKLM от 24 октября 2009, 18:39:25 Readme читать надо
Цитировать В поле ввести имя папки относительно корня вашего кэша Можно . (точку),чтоб найти все файлы. Название: Re: MoveRenameFile - расширение HC для конвертирования кэша Отправлено: igorek от 24 октября 2009, 21:11:00 Новое в версии 0125:
[-] Исправлена ситуация,когда новое имя файла совпадает с существуюшим именем папки, или попытка создать папку с существующим именем файла Пример:Требуется переместить файлы типа корень кэша\сайт.ру\страница1\#_ в корень кэша\сайт.ру\страница1 Правило: #5#~#True#~#(.*/.*)(/$)#~#\1#~#False#~#True Название: Re: MoveRenameFile - расширение HC для конвертирования кэша Отправлено: IVAn Dealer от 24 октября 2009, 21:14:04 переместил с помощью плагина более 113000 файлов
спасибо создателю это как раз то, что мне было нужно!!!! Название: Re: MoveRenameFile - расширение HC для конвертирования кэша Отправлено: igorek от 24 октября 2009, 21:25:10 Цитировать Правило: #5#~#True#~#(.*/.*)(/$)#~#\1#~#False#~#True После этого правила скорее всего создадутся пути корень_кэша\сайт.ру\страница1#_Запустите очистку пустых папок в меню Настройки->Очистка,галочка Удалять пустые подкаталоги Затем заново запустите скрипт,и все имена приведутся без заверщающего #_ Название: Re: MoveRenameFile - расширение HC для конвертирования кэша Отправлено: DenZzz от 24 октября 2009, 23:49:37 igorek
В ряде случаев расширение MoveRenameFile может делать неправильные преобразования! Ну, например, есть у меня в кэше файлы с разными страницами этого форума: Код: http://handycache.ru/component/option,com_smf/Itemid,10/topic,1120.260 После запуска переименования все эти файлы будут утеряны. Останется в кэше только последнее из них и то с неправильным именем! А таких похожих файлов в папке handycache.ru у меня больше 1000. Фактически весь кэш с этим форумом будет утерян! Дело в том, что в списке "Преобразование URL" у меня (и думаю у многих) есть старое проверенное правило, которое уже больше двух лет работает исправно: #5#~#True#~#(handycache\.ru/component/option,com_smf/Itemid,\d+/topic,\d+)(\.\d+)?(;all)?[./].*#~#\1\2\3#~#False#~#True Оно создавалось для преобразования URL этого форума и работает корректно с исходными путями с сервера, но совсем не рассчитано на работу с восстановленным из кэша URL, поэтому при втором проходе в расширении это правило делает лишние преобразования, удаляя из путей нужные элементы. Я привел для примера всего одно правило, которое нельзя применять повторно в MoveRenameFile. Подозреваю, что таких правил у пользователей может быть больше и после переименования файлов они рискуют потерять часть своего кэша! Мне кажется, что использование списка "Преобразование URL" в MoveRenameFile надо сделать опциональным и предупреждать пользователей о вероятных нежелательных последствиях. Думаю, лучше сделать в MoveRenameFile свой отдельный список правил в формате RegExp для преобразования путей к файлам (а не URL), по которым будет работать расширение. Тогда можно будет вообще уйти от промежуточного восстановления URL функцией CacheToURL_098b1(str) и неправильного повторного применения правил списка "Преобразование URL". Думаю, никакой сложности тут для пользователей не возникнет. Просто при добавлении нового правила в список "Преобразование URL" надо будет добавить соответствующее правило в конвертор кэша и запустить процедуру. Название: Re: MoveRenameFile - расширение HC для конвертирования кэша Отправлено: HKLM от 25 октября 2009, 01:12:54 Цитировать После запуска переименования все эти файлы будут утеряны. Останется в кэше только последнее из них и то с неправильным именем! А таких похожих файлов в папке handycache.ru у меня больше 1000. Фактически весь кэш с этим форумом будет утерян! У меня включено точно такое правило, но раньше пробовал и другие.В handycache.ru до обработки фaйлoв - 834, кaтaлoгoв - 517 после обработки--------------фaйлoв - 736, кaтaлoгoв - 517 По данным лога 17 файлов улетело в общие папки скриптов и смайлов. И еще 106 обработано, видимо некоторые затерлись. А сначала я проверял счетчиками hcHistorian. До обработки: Записей в истории 57879, Файлов в кэше 78245 После обраб.: Записей в истории 57849, Файлов в кэше 79085 базу пересоздал. Незнаю насколько можно доверять историку, он же не может определить какие урл были неправильно восстановлены, но файлов стало больше на 800. Название: Re: MoveRenameFile - расширение HC для конвертирования кэша Отправлено: IVAn Dealer от 25 октября 2009, 07:22:48 все cs*.vkontakte.ru согласно правилам подчищает на ура!
Добавлено: 25 Октября 2009, 07:12:24 igorek Получается что всё что сделал MoveRenameFile относительно данного форума не пригодно для HC ? Или всё таки после преобразования HC сможет использовать такой кэш?В ряде случаев расширение MoveRenameFile может делать неправильные преобразования! ... Останется в кэше только последнее из них и то с неправильным именем! Название: Re: MoveRenameFile - расширение HC для конвертирования кэша Отправлено: DenZzz от 25 октября 2009, 09:22:03 Или всё таки после преобразования HC сможет использовать такой кэш? То, что осталось, сможет, но осталось немного. Попробуй в автономном режиме походить по темам форума - почти везде будет ответ "404 Not found (HC)". Добавлено: 25 Октября 2009, 10:20:37 Соответственно, и правило для необновления старых тем: #5#~#True#~#handycache\.ru/component/option,com_smf/Itemid,\d+/topic,\d+\.\d+/#~##~##~#-168:00 работать не сможет, т.к. все файлы старых тем в ходе работы MoveRenameFile будут удалены. Название: Re: MoveRenameFile - расширение HC для конвертирования кэша Отправлено: igorek от 25 октября 2009, 16:02:55 Всем привет!Да,предупреждаю всех,конвертация небезопасна для кэша,т.к. не всегда удается однозначно сделать преобразования кэша. Сначала просмотрите внимательно логи преобразований,и если все так,как хотели,только после этого нажимайте кнопку Move.
Цитировать Дело в том, что в списке "Преобразование URL" у меня (и думаю у многих) есть старое проверенное правило, которое уже больше двух лет работает исправно: Я для себя исправил на такое правило:#5#~#True#~#(handycache\.ru/component/option,com_smf/Itemid,\d+/topic,\d+)(\.\d+)?(;all)?[./].*#~#\1\2\3#~#False#~#True #5#~#True#~#(handycache\.ru/component/option,com_smf/Itemid,\d+/topic,\d+)(\.\d+)?(;all)?.*#~#\1\2\3#~#False#~#True Нормально сохраняются с инета,и при конвертации не портит кэш Добавлено: 25 Октября 2009, 15:11:06 Цитировать Думаю, лучше сделать в MoveRenameFile свой отдельный список правил в формате RegExp для преобразования путей к файлам (а не URL), по которым будет работать расширение. Пользователям придется самим изобретать правила преобразования для файлов,соответствующий добавлению нового правила преобразования УРЛ.Мне кажется, УРЛ -это основа,потому что запросы идут от браузера.Цитировать Тогда можно будет вообще уйти от промежуточного восстановления URL функцией CacheToURL_098b1(str) и неправильного повторного применения правил списка "Преобразование URL". Зато появится функция по загрузке файла и воздействию регулярных выражений на имя файла. Цитировать Думаю, никакой сложности тут для пользователей не возникнет. А мне хотелось еще так. Загрузил новый список правил правил и конвертнул кэш.Можно на всякий случай обезопасить,типа откат. Вот примерно код: везде вместо строки os.remove(XXX) заменить на os.rename(XXX,XXX..'#del') И если все ОК,то в ТоталКоммандир найти эти файлы и удалить. Думаю,лучше тщательно прорабатывать правила для Преобразования УРЛ,чтобы по второму кругу не портил кэш З.Ы: Но над твоим предложением подумаю. Название: Re: MoveRenameFile - расширение HC для конвертирования кэша Отправлено: igorek от 25 октября 2009, 23:33:09 v.013
Пока с одним правилом. Корень кэша и символ #_ в конце пути удаляются перед обработкой правила. Внимание:после конвертации,соотвествующее правило должно быть в списке Преобразование УРЛ, иначе HandyCache не найдет эти файлы
Название: Re: MoveRenameFile - расширение HC для конвертирования кэша Отправлено: HKLM от 26 октября 2009, 00:08:48 igorek
В поле замена отображаются квадратики: .. Так и должно быть? Название: Re: MoveRenameFile - расширение HC для конвертирования кэша Отправлено: igorek от 26 октября 2009, 01:03:58 Не протестировал с чистого листа. Там я для примера привел пример замены.
В исходном коде поправить Код: local function DefaultParams() Название: Re: MoveRenameFile - расширение HC для конвертирования кэша Отправлено: DenZzz от 26 октября 2009, 12:38:08 Возможность резервной копии файлов.В конец имени добавляется #del Если сохранять резервные копии, то атрибут "системный" не переходит к новым файлам. Название: Re: MoveRenameFile - расширение HC для конвертирования кэша Отправлено: igorek от 28 октября 2009, 18:25:53 v.0132
[-]Файловые аттрибуты теперь сохраняются корректно(если подключен модуль alien)
Таблица RulesForFile -правила для преобразования файла Чтобы использовать правила с файла,ввести в поле Rule or file строку file://имяфайла Название: Re: MoveRenameFile - расширение HC для конвертирования кэша Отправлено: igorek от 08 ноября 2009, 20:31:02 Цитировать v.014
и выбрано действие Action: BlackList URL Название: MoveRenameFile_v014 - очистка кэша с использованием правил Черного списка Отправлено: forteks от 23 марта 2010, 09:40:58 Можно ли после анализа кеша видеть в списке файлов какое правило сработало?
и избирательно выбрать файлы для бекапа? Название: MoveRenameFile v014 и Content Master 0.551 - не работает очистка по Black List Отправлено: forteks от 17 мая 2010, 10:25:14 MoveRenameFile v014 при выборе опции BlackList URL
просто схлопывается при запуске сканирования всего кеша у кого работает эта функция научите плиз... Название: Re: MoveRenameFile v014 и Content Master 0.551 - не работает очистка по Black List Отправлено: DenZzz от 17 мая 2010, 14:19:51 у кого работает эта функция научите плиз... Эта функция использует в своей работе данные, сформированные расширением Content Master, которое уже много раз было существенно модифицировано, а расширение MoveRenameFile v014 не обновлялось с ноября 2009 г.! Оно пытается использовать старый формат настроек СМ, который давно уже не используется! P.S. Вообще, привязываться в MoveRenameFile к настройкам СМ было не дальновидно, т.к. последний обновляется очень часто. Надежнее было бы самому анализировать Черный и Белый список HC... Название: Re: MoveRenameFile - расширение HC для конвертирования кэша Отправлено: igorek от 25 мая 2010, 21:51:17 Я извинияюсь, что не обновляю свою программу, т.к. погрузился в мир пчел. Может кто другой возьмется.
Название: Re: MoveRenameFile - расширение HC для конвертирования кэша Отправлено: igorek от 04 октября 2010, 18:58:53 Цитировать v.02
Название: Re: MoveRenameFile - расширение HC для конвертирования кэша Отправлено: HKLM от 04 октября 2010, 20:04:58 Content Master версии 0.66.5 с ним не работает по Черному списку?
Powered by SMF 1.1.3 SMF © 2006, Simple Machines LLC
Joomla Bridge by JoomlaHacks.com |