Информационный портал
pocket versionPOCKET  wikiWIKI  FAQFAQ  ПоискПоиск  ПользователиПользователи  ГруппыГруппы  РегистрацияРегистрация  ПрофильПрофиль  Войти и проверить личные сообщенияВойти и проверить личные сообщения  ВходВход

[soft/VBScipt] FB2 файлы в каталоги
На страницу 1, 2  След.
 
Найти сообщения без ответов
Начать новую тему   Ответить на тему    Список форумов www.fictionbook.org -> Сделано для FB
Предыдущая тема :: Следующая тема  
Автор Сообщение


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" Smile
в. "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 файла дающий максимально приятный результат. Мне кажется необходимым внедрение сносок в текст. Что еще нужно незнаю. Sad
Вернуться к началу
Посмотреть профиль Отправить личное сообщение


wolf2007
Новенький участник форума

Новенький участник форума

Зарегистрирован: 01.02.2007
Сообщения: 65
Откуда: Moscow

СообщениеДобавлено: Ср Фев 28, 2007 13:25    Заголовок сообщения: Re: [soft/VBScipt] FB2 файлы в каталоги Ответить с цитатой

Cd_spb писал(а):
Проблем собственно с кодировкой там нет. Нужен вариант .xsl файла дающий максимально приятный результат. Мне кажется необходимым внедрение сносок в текст. Что еще нужно незнаю. Sad
во-во, но для начала нужен минимальный 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 Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение


Cd_spb
Зрелый участник форума

Зрелый участник форума

Зарегистрирован: 28.06.2006
Сообщения: 189

СообщениеДобавлено: Ср Фев 28, 2007 18:32    Заголовок сообщения: Ответить с цитатой

Я не знаток использования RegExp`ов (я вообще ничего не знаю про них), но кажется будет очень не легко вытащить, например &amp;lt;first-name&amp;gt;, которых может встречать до 10-ти штук в разных разделах. Пример pratchett_terry_kot_bez_durakov__per__e_lanchikov_(collaborations-2).fb2 выражения &amp;lt;first-name&amp;gt; -&amp;gt; 6 вхождений,А нас интересуют только первые два. xsl это позволит сделать.

В общем идея есть. Осталось реализовать. Для Ваших нужд будет достаточно подмахнуть один параметр, при наличии нужного шаблона конечно.
Может быть сегодня доделаю.

Добавлено спустя 2 часа 14 минут 18 секунд:
Доделал.
ExpRename_0.0.1f
Что нового:
'HISTORY
'Версия 0.0.1f
'1.Реализовано обработка fb2 файлов в кодировке UTF-8. Используется msxsl.exe и самоправленый fb2Tags.xsl
'Появился баг -&gt; бегает фокус активного окна.
'2.Реализован экспорт в TXT -&gt; msxsl.exe book.fb2 FB2_2_txt_ru.xsl &gt;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

Автор формата 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 проделывал, вроде, как-раз тех, что тут нужны.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора


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 документы будут перекладываться в отдельный каталог. ВНИМАНИЕ, перезаписывает без спроса. Кто последний - тот и папа Smile

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\"""

Пути, естественно, поставите свои.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов www.fictionbook.org -> Сделано для FB Часовой пояс: GMT + 3
На страницу 1, 2  След.
Страница 1 из 2

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group