Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Cd_spb Зрелый участник форума
Зарегистрирован: 28.06.2006 Сообщения: 189
|
Добавлено: Вт Фев 27, 2007 18:09 Заголовок сообщения: [soft/VBScipt] FB2 файлы в каталоги |
|
|
VBScript: ExpRename.vbs
Текущая версия:
0.57RC
Цель:
1. Раскладывать fb2 файлы по подкаталогам. Структура \<last-name>_<first-name>\[sequence name-number_]<book-title>.fb2.zip или txt.zip
2. Конечные файлы упаковывать в zip.
3. Все имена конечных файлов должны содержать только латинские символы.
Что может делать:
1. Обрабатывать одиночный fb2 файл
2. Обрабатывать одиночный fb2 файл, упакованный в zip или rar.
3. Обрабатывать каталог, с подкаталогами, содержащими fb2 и/или zip/rar файлы.
4.Упаковывать конечный файл в zip.
5.Вызываться из FB2Librarien (Библиотекаря) для отдельного файла.
6.Корректно обрабатывает CP1251 и UTF-8.
7.Документ кладет ВСЕМ авторам указанным в дескрипшине.
8.Раскладывать по Авторам, жанрам.
9.Удалять исходный файл.
Сейчас скрипт настроен на работу с 7za.exe. Этот архиватор должен лежать в том же каталоге, что и скрипт. Можно поправить путь к нему в начале содержательной части скрипта.
Код скрипта еще не "причесан". В нем еще может содержаться отладочная информация.
Использование совместно с Fb2Librarien (Библиотекарем):
1. Распаковать содержимое архива в папку \plugins\ программы FB2Library. Получить путь к файлу скрипта, примерно такой e:\Prog\FB2Library\plugins\ExpRename\ExpRename.vbs
2. в "Опции" -> "Общее" -> "User menu" -> Кнопка"+"
а. "Unpack" - все равно.
б. "Item" - "ExpRename from Cd_spb"
в. "Application" - Полный путь к скрипту. Например "e:\Prog\FB2Library\plugins\ExpRename\ExpRename.vbs"
г. "Parametrs" - ""%i" [путь куда экспортировать]", например ""%i" "E:\Lib\_Palm\"". Каждый параметр в кавычках "", что бы избежать коллизий с путями содержащими пробелы.
3. Кнопка "Ок" -> кнопка с "дискетой"
4. При нажатии правой кнопки мыши на книге, последним пунктом выпадающего меню, будет вызов скрипта. Подпись "ExpRename from Cd_spb"
Версия 0.0.1e
http://www.freefile.ru/files/2077
Версия 0.0.1f
http://www.freefile.ru/files/2084
Версия 0.0.1g
http://www.freefile.ru/files/2085
Версия 0.5RC
http://www.freefile.ru/files/2190
Версия 0.52RC
http://www.freefile.ru/files/2478
Версия 0.54RC
http://www.freefile.ru/files/2806
Версия 0.56RC
http://www.freefile.ru/files/3831
Версия 0.57RC
http://www.freefile.ru/files/3968
Так же лежит на www.palmz.in
Последний раз редактировалось: Cd_spb (Пт Мар 14, 2008 13:56), всего редактировалось 10 раз(а) |
|
Вернуться к началу |
|
|
wolf2007 Новенький участник форума
Зарегистрирован: 01.02.2007 Сообщения: 65 Откуда: Moscow
|
Добавлено: Ср Фев 28, 2007 12:40 Заголовок сообщения: Re: [soft/VBScipt] FB2 файлы в каталоги |
|
|
замечательно, вопрос перетусовки опять как-то решен.
Цитата: |
Что не может делать:
1. Обрабатывать fb2 файлы в UTF-8 кодировке.
2. Конвертировать конечные файлы в txt или другое.
Что планируется сделать:
1. Конвертация в txt. Скорей всего через msxsl.exe и FB2_2_txt_ru.xsl
|
Может кто-то из гуру напишет и выложит FB2_2_win1251.xsl - для корректной пакетной перекодировки FB2-UTF8 в FB2-win1251
(корректная - это без потерь левых буковок в тексте и без порчи параметров у тегов)
Вроде это не должно быть сложным, но моего понимания .xsl - не хватает... |
|
Вернуться к началу |
|
|
Cd_spb Зрелый участник форума
Зарегистрирован: 28.06.2006 Сообщения: 189
|
Добавлено: Ср Фев 28, 2007 13:03 Заголовок сообщения: Re: [soft/VBScipt] FB2 файлы в каталоги |
|
|
wolf2007 писал(а): |
Может кто-то из гуру напишет и выложит FB2_2_win1251.xsl - для корректной пакетной перекодировки FB2-UTF8 в FB2-win1251
(корректная - это без потерь левых буковок в тексте и без порчи параметров у тегов)
|
Проблем собственно с кодировкой там нет. Нужен вариант .xsl файла дающий максимально приятный результат. Мне кажется необходимым внедрение сносок в текст. Что еще нужно незнаю. |
|
Вернуться к началу |
|
|
wolf2007 Новенький участник форума
Зарегистрирован: 01.02.2007 Сообщения: 65 Откуда: Moscow
|
Добавлено: Ср Фев 28, 2007 13:25 Заголовок сообщения: Re: [soft/VBScipt] FB2 файлы в каталоги |
|
|
Cd_spb писал(а): | Проблем собственно с кодировкой там нет. Нужен вариант .xsl файла дающий максимально приятный результат. Мне кажется необходимым внедрение сносок в текст. Что еще нужно незнаю. | во-во, но для начала нужен минимальный fb2_2_fb2.xsl который бы ничего не терял... |
|
Вернуться к началу |
|
|
Cd_spb Зрелый участник форума
Зарегистрирован: 28.06.2006 Сообщения: 189
|
Добавлено: Ср Фев 28, 2007 13:36 Заголовок сообщения: |
|
|
wolf2007А зачем? fb2_2_fb2 Только для смены кодировки? ИМХО, Бессмысленно. Все читалки и так его возьмут. при конвертации в txt и другие -> это сделает конечный xsl.
Мне сейчас нужен xsl, который на выходе генерит txt с содержимым только fb:description, без body. Я планирую уже этот txt парсить на предмет тегов. |
|
Вернуться к началу |
|
|
wolf2007 Новенький участник форума
Зарегистрирован: 01.02.2007 Сообщения: 65 Откуда: Moscow
|
Добавлено: Ср Фев 28, 2007 17:47 Заголовок сообщения: |
|
|
Cd_spb писал(а): | wolf2007А зачем? fb2_2_fb2 Только для смены кодировки? ИМХО, Бессмысленно. Все читалки и так его возьмут. | да мне читалки неактуальны, мне править fb2 в привычном редакторе хочется.
Да и занимает win1251 меньше места, и глобальный поиск в нем находит слова...
короче - хоцца просто консольный перекодировщик fb2 из utf8 в win1251, а нету...
Cd_spb писал(а): | Я планирую уже этот txt парсить на предмет тегов. | чиста конкретные теги дескрипшена я вообще думал извлекать с помощью sed.exe и for /f |
|
Вернуться к началу |
|
|
Cd_spb Зрелый участник форума
Зарегистрирован: 28.06.2006 Сообщения: 189
|
Добавлено: Ср Фев 28, 2007 18:32 Заголовок сообщения: |
|
|
Я не знаток использования RegExp`ов (я вообще ничего не знаю про них), но кажется будет очень не легко вытащить, например &lt;first-name&gt;, которых может встречать до 10-ти штук в разных разделах. Пример pratchett_terry_kot_bez_durakov__per__e_lanchikov_(collaborations-2).fb2 выражения &lt;first-name&gt; -&gt; 6 вхождений,А нас интересуют только первые два. xsl это позволит сделать.
В общем идея есть. Осталось реализовать. Для Ваших нужд будет достаточно подмахнуть один параметр, при наличии нужного шаблона конечно.
Может быть сегодня доделаю.
Добавлено спустя 2 часа 14 минут 18 секунд:
Доделал.
ExpRename_0.0.1f
Что нового:
'HISTORY
'Версия 0.0.1f
'1.Реализовано обработка fb2 файлов в кодировке UTF-8. Используется msxsl.exe и самоправленый fb2Tags.xsl
'Появился баг -> бегает фокус активного окна.
'2.Реализован экспорт в TXT -> msxsl.exe book.fb2 FB2_2_txt_ru.xsl >book.txt
'Используя другие xsl файлы можете преобразовывать в нужные Вам форматы.
ExpRename_0.0.1f
Качать здесь
http://www.freefile.ru/files/2084
По прежднему не оптимизирован код.
Содержит pkzip25 и msxml.
Добавлено спустя 52 минуты 49 секунд:
Версия 0.0.1g
BagFix
http://www.freefile.ru/files/2085 |
|
Вернуться к началу |
|
|
GribUser Автор формата FB2 - Автор библиотеки FB
Зарегистрирован: 30.09.2004 Сообщения: 2475 Откуда: Москва
|
Добавлено: Чт Мар 01, 2007 16:03 Заголовок сообщения: |
|
|
Странными вы все путями делаете. Посмотрите
http://msdn.microsoft.com/xml/ вообще и
http://support.microsoft.com/kb/288913 в частности, там надо загрузить xml в DOM и из DOM читать уже поля нужные, будет в миллион раз надежнее, быстрее и проще.
Посмотрите vbs-ки, которые идут с fb2any, я там несколько операций с MSXML проделывал, вроде, как-раз тех, что тут нужны. |
|
Вернуться к началу |
|
|
Cd_spb Зрелый участник форума
Зарегистрирован: 28.06.2006 Сообщения: 189
|
Добавлено: Чт Мар 01, 2007 16:26 Заголовок сообщения: |
|
|
Огромное спасибо, посмотрю. |
|
Вернуться к началу |
|
|
Cd_spb Зрелый участник форума
Зарегистрирован: 28.06.2006 Сообщения: 189
|
Добавлено: Вт Мар 13, 2007 19:36 Заголовок сообщения: |
|
|
GribUser писал(а): | Странными вы все путями делаете.
...
Посмотрите vbs-ки, которые идут с fb2any, я там несколько операций с MSXML проделывал, вроде, как-раз тех, что тут нужны. |
Огромное спасибо.
Благодаря Вам появился на свет релиз кандидат.
Ссылка в начальном сообщении. |
|
Вернуться к началу |
|
|
Cd_spb Зрелый участник форума
Зарегистрирован: 28.06.2006 Сообщения: 189
|
Добавлено: Пт Апр 20, 2007 14:17 Заголовок сообщения: |
|
|
После ловли блох - очередная версия.
1. Архиватор полностью работает в фоне.
2. Для транслитерации - введена запретительная политика. Что не разрешено - то заменяется на подчерк.
0.52RC
http://www.freefile.ru/files/2478 |
|
Вернуться к началу |
|
|
Cd_spb Зрелый участник форума
Зарегистрирован: 28.06.2006 Сообщения: 189
|
Добавлено: Пн Фев 18, 2008 13:53 Заголовок сообщения: |
|
|
Версия 0.56RC
'1.Возможность работы с rar`ом. Соот-но нужен unrar.exe
'2.Возможность удаления исходных файлов. Не fb2 документы будут перекладываться в отдельный каталог. ВНИМАНИЕ, перезаписывает без спроса. Кто последний - тот и папа
0.56RC
http://www.freefile.ru/files/3831 |
|
Вернуться к началу |
|
|
DZ Новенький участник форума
Зарегистрирован: 26.11.2007 Сообщения: 21
|
Добавлено: Чт Фев 21, 2008 8:39 Заголовок сообщения: |
|
|
Потестил.
1. Напрягает отсутствие индикатора работы - при достаточно больших объемах неизвестно - повисла прога, или работает. (простого текстового счетчика было бы достаточно)
2. Кое-какие документы попадают в BAD. Это хорошо, но не помешало бы иметь bad.log с описанием ошибки.
3. Перевод utf8 -> win1251 - это был просто разговор на отвлеченную тему?
4. Не совсем корректно обрабатываются файлы, где нет отчества у авторов - прибавляется "_"
Код: | If mAutor(Aut)<>"" then
destName=destName & "\" & lAutor(Aut)& "_" & fAutor(Aut)& "_" & mAutor(Aut) '"-o="\Фамилия_Имя_Отчество
else
destName=destName & "\" & lAutor(Aut)& "_" & fAutor(Aut) 'если нет отчества
End If
| Я втупую дописал, так красивше.
P.S. Мне лично актуальна перекодировка utf8 -> win1251. Как с ней? |
|
Вернуться к началу |
|
|
Cd_spb Зрелый участник форума
Зарегистрирован: 28.06.2006 Сообщения: 189
|
Добавлено: Чт Фев 21, 2008 13:44 Заголовок сообщения: |
|
|
Спасибо за интерес.
Ответы:
1. Я не вижу простого способа это сделать. Но если у меня при его работе возникают вопросы - смотрю на загрузку проца и/или дисков. (Рекомендую программу anvir task manager)
2. В плохие попадают два типа файлов - не fb2 либо те которые невалидны с точки зрения xml. Я пока не вижу как можно найти в чем там не правильность. Если возьметесь - будет очень хорошо..
3. Если честно - то я просто забыл, там ничего сложного. Нужно сделать добавку по аналогии вот с этим
Код: | Select Case UCase(extOutFile)
Case ".TXT"'Преобразование в TXT
h=Fso.GetFolder(tmpPath) & "\" & NewNameE
... |
4. Спасибо за предложение. Поправил. |
|
Вернуться к началу |
|
|
msblast Новенький участник форума
Зарегистрирован: 11.03.2008 Сообщения: 4
|
Добавлено: Вт Мар 11, 2008 2:25 Заголовок сообщения: |
|
|
Я тут батник наклепал, позволяющий прицепить сабж к контекстному меню, вызываемого правой кнопкой мыши на файле. Вот это для распакованного fb2:
Код: | REG ADD HKCR\FictionBook.2\shell\save\command /f /ve /d "WScript.exe c:\prog\script\exprename\ExpRename.vbs -z=1 -i=""""%%1"""" -o=""""c:\fiction\fb2\"""
|
а это для упакованного в zip:
Код: | REG ADD HKCR\CompressedFolder\shell\save\command /f /ve /d "WScript.exe c:\prog\script\exprename\ExpRename.vbs -i=""""%%1"""" -o=""""c:\fiction\fb2\""" |
Пути, естественно, поставите свои. |
|
Вернуться к началу |
|
|
|