Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Написание скрипта для каталогизации e-book'ов в Варезнике

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10

Открыть новую тему     Написать ответ в эту тему

LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
За первый общепригодный результат благодарим vladgangan
 

IsbnExtractor v1.2 Executable:
http://dl.downloadhosting.com/download/vladgangan/IsbnExtractor_v1.2.exe
 
IsbnExtractor v1.2 Source:
http://dl.downloadhosting.com/download/vladgangan/IsbnExtractor_Source_v1.2.exe

 
Утилита написана под .NET
 
Вытаскивает номера ISBN из локальной коллекции ебуков, располагает их в XML-дескрипторах папок (для удобства перемещения папок с книгами между носителями).
 
 
Процесс рождения утилиты описан на 1-6 страницах темы, там же - более подробная документация.  
 
Теперь, наконец, можно начинать Web-программирование
 
 
А пока срочно ищется человек, который откомпилит под винды один из серверных скриптов для проверки варез-релизов. Или иным образом перенесет их логику на винды, с целью не только выявления битых релизов, но и вытаскивания всего, что вытаскивается, во временный каталог.
 
Вторая полезная утилита:

Цитата:
Написал скрипт AutoIT3 для извлечения ISBN из коллекции DJVU книг. Необходим FR и  Djvudecode. В скрипте также выполняется проверка ISBN по 10-ой контрольной цифре.  
http://www.mytempdir.com/2026301  
(c)U235
 
Alfa Ebooks Manager-0.4.5.0 2008-01-17
Готовая утилита для работы с PDF с множеством встроенных функций, таких как распаковка архивов, поиск информации в Интернете и экспорт в локальную базу данных Microsoft Access (JET Engine .mdb)
 
 
 
Первоначальная шапка темы





Исправил название. — Svarga.

Всего записей: 18151 | Зарегистр. 14-10-2001 | Отправлено: 23:46 28-06-2004 | Исправлено: 174bpm, 14:38 24-02-2008
vladgangan



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
Hm, sorry, ya ne sobiralsya rasprostranyaty crack.
 
Добавлено:
Nu, raz XPDF besplatnyy i umeet  to, chto nam nujno (commandnaya stroka + izvlechenie opredelennogo kolichestva stranits), to chitayte moy predposledniy post s zamenoy slova "PDF2TXT" na "XPDF" ...

Всего записей: 761 | Зарегистр. 12-09-2002 | Отправлено: 11:00 14-01-2005
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Хорошо бы потестить разные утили на предмет обработки битых и запароленных PDF. У меня есть в коллекции несколько таких файлов, на которых спотыкается даже Акробат 6. Храню в надежде на появление чудодейственного лекарства (может, кто-то порекомендует офтопик?)
 
Не хотелось бы связаться с утилитой, которая не поймет файлов на порядок больше. Еще хуже, если она это сделает молча. Так что, vladgangan, придумывай универсальный интерфейс распаковщика с эвентами.
 
 
Добавлено:
 
И вообще, распаковщик может работать в отдельном потоке и иметь асинхронную очередь заданий. Это если планировать с дальным прицелом: вдруг пригодится на сервере...

Всего записей: 18151 | Зарегистр. 14-10-2001 | Отправлено: 11:53 14-01-2005 | Исправлено: LevT, 11:53 14-01-2005
vladgangan



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT
Nu, tak shli ih mne na vladgangan (sobak) pochtamt.ru, chtoby bylo chto testirovaty ... Asinhronnosty i tak, i tak sobiralsya implementirovaty .

Всего записей: 761 | Зарегистр. 12-09-2002 | Отправлено: 12:07 14-01-2005
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Собсно, распаковщик надо делать отдельным модулем. Пускай сопоставляет каждому PDF из очереди вытащенный текст, формирует список ошибок и засыпает.
 
Получив сообщение об ошибках, можно будет что-то вручную поправить и тут же скормить ему новую очередь.
 
 
Добавлено:
 
vladgangan
 
Насчет посылки - а стоит ли? Сейчас вот наскоро произвел ревизию: битые у меня в основном CHM. Pdf пока нашел два, оба по 6-7 метров: один запаролен, другой encrypted. Наверное, можно и дома такие изготовить для тестирования.  
 
С другой стороны, наверняка существуют стандартные методики, как с такими файлами поступать: хорошо бы этими методиками сопроводить твой модуль. А вот автоматическая обработка этих исключений IMHO не нужна.
 
По-нормальному протестировать распаковщик мы сможем, запустив его на своих коллекциях и получив списки ошибок. Не заморачивайся пока с этим.  

Всего записей: 18151 | Зарегистр. 14-10-2001 | Отправлено: 12:12 14-01-2005
yojik



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ISBN это хорошо но я считаю что задачу нужно решать поэтапною Не во всех книгах ISBN присутствует или присутствует в слабоиндентифицируемом виде (программа не справится) т.е. пользователю придется лезть на амазон и по автору и названию искать ISBN. В то же время для каждой книги есть уникальный индентификатор это пара Автор-Название в любой библиотеке отличной от свалки можно вычленить эту пару и поиск по ней более естественнен чем поиск по ISBN вы ведь не будете искать книгу по ISBN но будете искать к примеру Лукьяненко-Ночной дозор, для уникальной индентификации файлов книг можно использовать их ed2k или md5. Вообще по поводу уникального индентификатора  
1) пусть пользователь ищет Ночной дозор по ISBN он найдет 1 книгу и кучу источников Вася Пупкин dozor.rar(в архиве dozor.txt) размер 12Kb,  
Иван Иванов dozor.rar(в архиве dozor.txt) размер 15Kb(другой человек из другой книги сканил),  
Вася Петров lukjanenko_nochnoj_dozor.zip(в архиве book.chm) размер 22Kb  
...
2) Поиск по имени-автору даст список  
Лукьяненко Ночной дозор : Вася Пупкин dozor.rar(в архиве dozor.txt) размер 12Kb
Лукьяненко Ночной дозор книга 1 : Иван Иванов dozor.rar(в архиве dozor.txt) размер 15Kb(другой человек из другой книги сканил),  
Лукьяненко серия Ночной дозор книга 1 Ночной дозор Вася Петров lukjanenko_nochnoj_dozor.zip(в архиве book.chm) размер 22Kb  
...
 
т.е. в любом случае пользователю придется выбирать а что собственно и откуда скачивать но первый вариант конечно красивее зато полностью зависим от лени пользователя второй гораздо быстрее в смысле скорости пополнения базы книг
 
Добавлено:
Да вот еще. В борьбе с ленью может помочь если пользователь получит в итоге упорядоченную и отсортированную базу своих книг с поиском и чтением книги сразу из базу (нашел в табличке поиском книгу щелкнул на ней и она сразу открылась) ну и естественно поиск по глобальной базе и скачивание. Иначе пользоваться люди будут а вот новые книги добавльть поленяться. Поэтому последний раз про bookseer упорядоченная база книг это он и попробуйте лучше найдите. Не хочу заниматься его рекламой но тут периодически всплывают программы этого типа (Book Collection)  и без одной из них боюсь врядли обойдемся но его функциональность им не уступает а главное freeware + автор достаточно оперативно реагирует на просьбы о добавлении новой функциональности.

Всего записей: 29 | Зарегистр. 13-05-2003 | Отправлено: 13:00 14-01-2005
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

yojik
 
 

Цитата:
В то же время для каждой книги есть уникальный индентификатор это пара Автор-Название в любой библиотеке отличной от свалки  

 
Спорное утверждение. Это если пользователь УЖЕ занимался локальной каталогизацией своих книг, не будучи при этом в курсе существования ISBN и Амазона (иначе уж ISBN-то он не забыл бы). Я, например, когда-то вычистил ISBN из названия сотни или двух ебуков. Сейчас вспоминаю об этом деянии как об идиотизме.
 
Хэш не полный выход даже для PDF. Помнится, я как-то несколько скачанных из инета PDF-ок ужал Pdf-Enhancer-ом, оставив прежнее название. А потом бросил это занятие.  Почему кто-то, кроме меня самого, должен огрести по этой причине геморрой? А по твоей технологии его огребут все, с кем я поделюсь своим каталогом, не привязанным к ISBN.
 
Даже если ясно, что книга одна и та же - понадобится вникать в эту ясность мозгами, запоминать факт наличия различных версий одного Pdf, вместо того, чтобы просто положиться на машинную идентичность. Лично я знаю только одну ебуку, которую я хотел бы получить в виде 6Мб PDF (когда-то у меня погибла свежескачанная вместе с файловой системой), но нигде теперь ее нет, кроме как в 2Мб варианте - с испорченными иллюстрациями. Но ради этой своей нужды я не готов перелопачивать сотни чужих каталогов с тысячами дублей. Так что мне лично больше пригодится размер файла, чем его хэш - но пригодится только в конечном варианте системы, вместе с маршурутом запроса к владельцу конкретного каталога. И только тогда, когда каталог достигнет некоторой, весьма нехилой, полноты.
 
Далее. Кроме пары автор-название есть еще и номер издания. В профессиональной лит-ре, в отличие от беллетристики, он иногда имеет существенную важность. Например, Craig Larman "Основы UML и паттернов" говорят, уже третье издание выпустил - и все содержательно разные.  
 
 
 
Что касается BookSeer: а слабо тебе пригласить автора сюда? Принципиальное отличие BookCollection от BookSeer - разные типы каталога, которые получаются в результате. Определения этих типов смотри в предыдущем моем ответе тебе.

Всего записей: 18151 | Зарегистр. 14-10-2001 | Отправлено: 13:40 14-01-2005
yojik



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я пытаюсь объяснить что машинной идентичности быть не может. Все равно пользователю придется решать какой файл качать. Как ты сам заметил разные версии файла имея одинаковые автора название издание и isbn могут отличаться форматом, (ты любиш pdf я предпочитаю html или txt) наличием иллюстраций качеством сканирования... Нужно вводить какую-то классификацию или систему рейтингов. Я предполагал что такой будет количество источников одного и того же файла (с одинаковым хешем), т.е. человек скачивает файл с 5-10 источников просматривает и понравившийся вариант оставляет. Тогда лучший вариант автоматически через некоторое время станет и самым распространенным. И вообще ISBN хороший индентификатор для книги а для файла учитывая вышесказанное лучше хеш. Book Collection сейчас скачиваю хотя ее размер и триальность уже говорят не в его пользу а по поводу разных форматов все равно ведь уже предложили универсальный формат и перекодировщик в него.
Кстати как образец интерфейса можно посмотреть lib.align.ru offline-клиент задача у него конечно другая но интерфейс я думаю можно взять за образец и переделать для нашего случая.
По поводу пригласить автора bookser я поклонник его программы а не его знакомый. Ув. LevT как координатор разработки может обратиться сам hттp://www.guestbook.ru/?user=Mark или marksoft#mail.ru

Всего записей: 29 | Зарегистр. 13-05-2003 | Отправлено: 16:35 14-01-2005
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Я пытаюсь объяснить что машинной идентичности быть не может.  

 
Для очень широкого класса ебуков (расширить который впервые предлагаешь ты сейчас) именно что возможна машинная идентичность по признакам: ISBN + формат (CHM, PDF, возможно djvu) + (условное именование) "ранг непохожести" (как chm, так и pdf-ы размером 2 и 6 метров с нехилой вероятностью различаются сильно, а отличающиеся на сотню килобайт скорее всего вовсе неразличимы для человека-читателя).
 
Так вот: мы здесь создаем инструментарий для того, чтобы человек, занимающийся локальной каталогизацией своих книг и решивший заняться обменом, потрудился бы в первую очередь идентифицировать свои ебуки по ISBN (это, безусловно, по факту стандартизации, самый подходящий ключ каталогов, предназначенных для обмена именно книгами). И чтобы напрягаться для этого ему пришлось минимально.
 
Если бы в этом направлении не была проделана уже большая и результативная работа - я уже писал, что, пожалуй, согласился бы с тем, что ты предлагаешь. И сейчас стопроцентно соглашаюсь вот с этим:
 

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

Цитата:
ну и естественно поиск по глобальной базе и скачивание.  

 
Непременным условием "распределенного" обмена является идентификация по ISBN: иначе получится распределенный каталог типа "свалка", заведомо неполный и не обладающий для меня, например, вообще никакой ценностью (да-да, это такой закон природы: при объединении упорядоченных каталогов разного происхождения неизбежно образуется свалка)
 
Ситуация изменится, если кто-то предоставит для проекта сервер и рабочее время админа (далеко не фуллтайм, но все же довольно серьезное время). Для того, чтобы обойтись без ISBN, необходима кропотливая ручная работа, причем весьма квалифицированная, как в IT, так и в каждой предметной области. (Из этой причины вытекает на первых порах естественное ограничение книгами компьютерной тематики). Я на своем опыте знаю, что такое заниматься ручным объединением баз, не имеющих единого ключа.  Лично мне НЕ НУЖНЫ результаты самопальной деятельности в этом направлении васей пупкиных, то есть они, опять же, для меня не представят никакой ценности. Результаты примитивных утилит сопоставления не сильно лучше результатов трудолюбивых ламеров. А не-примитивная программа этой функциональности называется Искусственный Интеллект
 
Отменить требование ISBN (если я правильно понимаю, для тебя важно обмениваться текстами, существующими "на правах рукописи") можно будет потом, когда появится  каталог изданий, обладающий самоценностью для масс: сначала околокомпьютерных, потом профессионалов в широком спектре, и только потом васейпупкиных.  Тогда - и не ранее - свалка от васейпупкиных не помешает профессиональной взаимопомощи.
 
 

Цитата:
И вообще ISBN хороший индентификатор для книги а для файла учитывая вышесказанное лучше хеш.  

 
Чем в таком случае тебя не устраивают существующие p2p сети, идентифицирующие файлы как раз хэшем?
 
Чем они меня не устраивают - я знаю, потому и затеял тему. Если бы они устраивали массу пользователей ебуков - оттуда всегда можно было бы скачать почти любую релизнутую книгу. Но это далеко не так.
 
 

Цитата:
Book Collection сейчас скачиваю хотя ее размер и триальность уже говорят не в его пользу

 
Размер компенсируется навороченной функциональностью. А без наворотов имеется в наличии суперлайтверсия, в виде файла shelf.hta, разрабатываемого Raven377.  Триальность компенсируется регулярными варез-релизами, имеющими место быть.
 
 
По поводу обращения к автору "буксира" - решающее слово за Raven377. Посмотри, пожалуйста, прогу, и напиши, имеет ли смысл попытаться привлечь к нашему делу ее разработчика (учитывая все риски, в т. ч. риск "не сработаться").
 

Всего записей: 18151 | Зарегистр. 14-10-2001 | Отправлено: 18:44 14-01-2005 | Исправлено: LevT, 18:45 14-01-2005
yojik



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Так как программист из меня фиговый а тема мне интересна то пытаюсь помочь чем могу.
Я уже говорил о пользе соцопроса т.к. чтобы программа не умерла только родившись (пользователь загрузил поискал ничего не нашел и стер) то нужно в первую очередь привлечь владельцев больших коллекций или в качестве альтернативы договориться с владельцем сетевой библиотеки тогда можно расчитывать на изначально большую базу и ее пополнение (скачал пару книг тогда решил и своими поделиться). Есть два слабо обсуждавшихся но важных момента  
1) Если принципиально наличие ISBN то автоматическое его присвоение хотя-бы части книг для которых полностью совпадет автор-название с амазоном (что делать с выпуском это вопрос)
2) Не обговаривался универсальный формат базы какие поля она должна включать т.к. могут быть совершенно нечитабельные версии файла и должен быть механизм не исключения их т.к. это потребует наличия админа (далеко не фуллтайм, но все же довольно серьезное время) а присвения им низкого рейтинга. Значит нужно поле "рейтинг" да и вообще учитывая что формат универсальный лучше сейчас вставить поля которые не будут использоваться чем потом столкнуться с их нехваткой.

Всего записей: 29 | Зарегистр. 13-05-2003 | Отправлено: 20:36 14-01-2005
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Еще раз повторяю (видимо, надо было заблаговременно поместить это в шапку?), что целевая аудитория здешнего проекта - сперва владельцы коллекций околокомпьютерной тематики, затем профессиональной и учебной литературы широкого профиля. И только после того, когда надежно будет удовлетворен профессиональный спрос - встанет (или не встанет) вопрос, стремимся ли мы заполучить в обменник все подряд, или достаточно того, что туда и так попадает постольку-поскольку, до кучи, заодно с профильными книгами.
 
Посмотри в варезнике тему, из которой я дал ссылку сюда. Постепенно все, что не относится к компьтерным ебукам, выделилось оттуда в самостоятельные топики. Обрати внимание, что в этих выделившихся топиках я пока что затею не рекламировал; тема эта открыта для людей, понимающих в программировании и согласных поработать ради обустройства профессионального книгообмена. А что для этого лучше - вовсе не голосованием и рейтингами определяется.
 
Те, кто мотированы только потреблять, голоса тут иметь в принципе не должны: возможно, им что-то и перепадет в результате, но не они определяют цель проекта и его пути. Следует еще понимать, что общедоступные библиотеки сейчас под угрозой уничтожения, профильные и так наверняка с радостью к нам присоединятся. Автоматически отпадают владельцы "сетевых библиотек", мотивированные иначе, чем мы (т. е. которые других каких-то целей добиваются, а не нашей). А вот держатели рубордовских книгообменников, которые "в теме" - те, наоборот, велкам. Если проект будет воплощен в жизнь, они смогут с честью выйти из опасного дела, которое теперь не пострадает.

Всего записей: 18151 | Зарегистр. 14-10-2001 | Отправлено: 21:43 14-01-2005 | Исправлено: LevT, 21:52 14-01-2005
vladgangan



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В общем, кое-что я наколбасил. Прогнал по своей коллекции и получил следующий результат (916 распознаных, 199 нераспознаных, 78% успешных): http://dl.downloadhosting.com/download/vladgangan/vgangan5.xml.  
78% - цифра довольно относительная, т.к. у нераспознаных в действительности или нет ISBN (у PDF), или Full-Text Search (у CHM) не существует. Поэтому для таких файлов придется ручками править. Я бы выложил прогу, но она использует кое-какие майкрософтовские COM-ы (в частности Microsoft.mshtml.dll и Interop.SHDocVw.dll) и я не знаю как в таком случае делать deployment. Советы по этому делу приветствуются.

Всего записей: 761 | Зарегистр. 12-09-2002 | Отправлено: 23:23 16-01-2005
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

vladgangan
 
Спасибо!
 
Дай, пожалуйста, ссылку на саму прогу. Потестирую на своей коллекции.  
А может, поделишься самим кодом? Так будет проще всего: думаю, у всех первоочередных тестеров стоит VS.NET или не проблема ее поставить.
 
Что касается CHM - может, их распаковывать, и там уже искать полнотекстом?
 
Не пробовал ли ты извлекать не только один ISBN, но до кучи еще столько "альтернативных", сколько вообще извлекаются из книги? Анализ результата был бы очень качественным тестом алгоритма.
 

Всего записей: 18151 | Зарегистр. 14-10-2001 | Отправлено: 02:21 17-01-2005
vladgangan



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT
Без проблем - выложу код. Надо правда кое-что сначала будет подправить там немного, а точнее разобраться до конца с асинхронностью и многопоточностью, а то мой Атлон 2500+ подгружет на 90%-100% во время выполнения . Так что в этом направлении надо немного еще пошлифовать.
 
По поводу CHM - у меня без Full-Text Search оказалось 46 файлов из 550. В принтципе, можно было бы эти файлы без Full-Text Search декомпилить, а потом уже искать ISBN в их раскрытом варианте, но (!) ето просто звиздец сколико лишней работы для CPU ! Каждый CHM будет декомпилиться файлов эдак на 500 - 1000. И каждый из них надо будет обработать . Короче, я хочу сказаты, надо будет подумать будет ли игра стоить свеч.
 
По поводу извлечения ISBN. Так как варезные книги не используют госстандартов в написании ISBN, то тут нам надо эвристически определять "а не могла бы эта последовательность быть номером ISBN?" - 10 цифр (или 9 цифр и Х на конце), которые могут быть разделены дефисом или пробелом между собоы. Проблему усугубляет еще тот факт, что кроме ISBN в книгах иногда указывают и "Library of Congress Publication number", который тоже состоит из 10 цифр. Как такое сделать самым оптимальным образом? Я реализовал следуюшее решение:
1) для PDF снимаем сэмпл страниц - первые 10 страниц (величина конфигурируемая). В них ищем последовательность "isbn". Это нам поможет гарантировать, что ISBN в действительности может существовать в данном тексте. После етого ищем по нашему ISBN-паттерну и возвращаем результат. На этом работа заканчивается.
2) для CHM - делаем Full-Text Search на "isbn" и получаем в результате, как правило, не больше 5 страниц, где слово упоминается. Делаем навигацию на ту страницу через COM компонент Internet Explorer-а и парсим ту страницу. Опять же - как только первый результат будет найден - мы его возвращаем и забываем о том файле.
Может этот алгоритм и не самый оптимальный и точный, но из того что я проверил после output-а нашел всего 3-4 несоответствия. Если есть идея по его улучшению - милости просим. Выслушаем, обсудим и возможно реализуем.
 
Прошу не сыпать на меня шишки. То, что сделано на данный момент - это не бета, и даже не альфа версия. Это драфт, прототип так сказать - proof of concept. Примерно можно сопоставить фазе Inception из RUP, чтобы доказать реальность реализации идеи. Остается много открытых вопросов по поводу обработки ошибок, производительности, управления ресурсами и т.д., которые за такой маленький срок я просто не мог реализовать .

Всего записей: 761 | Зарегистр. 12-09-2002 | Отправлено: 11:15 17-01-2005
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vladgangan
 
 

Цитата:
 Каждый CHM будет декомпилиться файлов эдак на 500 - 1000. И каждый из них надо будет обработать . Короче, я хочу сказаты, надо будет подумать будет ли игра стоить свеч.  

 
Стоит-стоит. Пускай комп попашет - на то компы и придуманы. Это ведь надо будет проделать всего один раз. А дальше можно неспешно совершенствовать алгоритм для серверного применения. НЕспешно!
 
Я когда-то писал Raven377, и он вроде бы согласился, что надо снабжать папки с коллекционными книгами файлом bookshelf.xml - туда будет записываться результат работы каждой из программ комплекса. Одна извлекает ISBN, другие - еще какую-то инфу, синхронизируют описание с Амазоном, с коллегами, с сервером, буде такой появится...
 
Давайте зафиксируем этот принцип и будем исходить из него. Нет возражений?
 
Этот файл должна создавать твоя утилита - но только после того, как будет отлажен алгоритм. А тестировать лучше на полной коллекции.
 
 
Я ни в коем случае не собираюсь сыпать на тебя шишки, просто предлагаю протестировать алгоритм как "черный ящик", настроив его отработать на каждой книге столько раз, сколько он способен найти там кандидатов на ISBN.
 
А по-существу: мне кажется, обязательно надо искать именно строку ISBN, ни в коем случае не полагаться только на циферьки. Но вот тут хорошо бы поиметь тестовую выдачу "полного результата". Тебе самому это гарантированно будет интересно и принесет пользу.
 
 
Добавлено:
 
Предложение базового технического принципа.
 
 
Любая программа комплекса, имеющая дело с локальной коллекцией ебуков, должна получать один-единственный параметр: путь к файлу bookshelfindex.xml  
 
Этот файл содержит раздел  <paths></paths>, где перечислены без рекурсии пути ко всем файлам bookshelf.xml описывающим коллекцию.
 
Формат:
 
<bookshelfindex version="1">
<paths>
    <path>
         "C:\Моя любимая книга"
    </path>
    <path>
         "C:\Прочие книги\Васины книги\Супер-пупер-дупер хакер"
    </path>
    <path>
         "C:\Прочие книги\Васины книги"
    </path>
</paths>
</bookshelfindex>
 
 
Прим. 1:  Подразумевается, что "Васины книги" - свалка неразобранных CHM и PDF. Файлы bookshelf.xml описывают только книги в текущем каталоге. Каждый подкаталог с книгами должен иметь свой файл bookshelf.xml  
 
Прим. 2: В bookshelfindex.xml  возможны и другие разделы, кроме paths
 

Всего записей: 18151 | Зарегистр. 14-10-2001 | Отправлено: 11:51 17-01-2005 | Исправлено: LevT, 12:19 17-01-2005
Raven377



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
LevT

Цитата:
Формат:  
 
<bookshelfindex version="1">  
<paths>  
    <path>  
         "C:\Моя любимая книга"  
    </path>  
    <path>  
         "C:\Прочие книги\Васины книги\Супер-пупер-дупер хакер"  
    </path>  
    <path>  
         "C:\Прочие книги\Васины книги"  
    </path>  
</paths>  
</bookshelfindex>  

 
С форматом согласен, только вот мне кажется что указание конкретных дисков и тому подобное - как-то не кузяво, хотя... Что скажет многоуважаемый all? А что если попробовать реализовать это все на подобии системы контроля версий???

Всего записей: 93 | Зарегистр. 28-11-2002 | Отправлено: 12:25 17-01-2005
c0r0ner



злобный доктор
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ИМХО, лучьше записывать побольше инфы, чтобы потом можно было это быстро "заполнять в базу"

Код:
<bookshelfindex version="1">  
<books>
  <book>
    <path>F:\books\!NEW\MS Press - XML Programming.chm</path>
    <filename>MS Press - XML Programming.chm</filename>
    <ext>chm</ext>
    <size>6573942</size>
    <isbn>0-7356-1185-8</isbn>
  </book>
</books>  
</bookshelfindex>

Всего записей: 742 | Зарегистр. 09-12-2001 | Отправлено: 13:35 17-01-2005 | Исправлено: c0r0ner, 13:39 17-01-2005
vladgangan



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT
OK, tut mnogo napisannogo, no konkretnogo tehnicheskogo zadaniya dlya menya ya tak i ne viju. Tak kak ty yavlyaeshsya project manager-om v etom dele, to plz ne mog by ty mne sostavity konkretnoe TZ: chto konkretno doljna sdelaty moya proga, detali (tipa "dlya CHM my jelaem videty polnuyu dekompilyatsiyu fayla" ili "nas interesuet ne toliko tsifieryki, a vsya stroka s ISBN, tipa 'ISBN    :      0-1234-56-789 bla-bla bla-bla'"), jelaemyy format XML fayla i t.d.. Tak legche budet zaplanirovaty rabotu i ponyaty v kakom je napravlenii dvigatysya. Nadeyusy tebe eto ne ocheny obremenit?
 
P.S. Pro shishki ya govoril ne tebe, a veroyatnym "dobrojelatelyam" ... byvayut i takie, u kogo kritika ne konstruktivnaya, a tak chtoby prosto lyapnuty. K tebe, Raven377, c0r0ner, yojik eto vyskazyvanie ne otnosilosy.

Всего записей: 761 | Зарегистр. 12-09-2002 | Отправлено: 14:13 17-01-2005
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
c0r0ner
 
Ты не понял. Индекс распределенный. Той инфой, которую ты предлагаешь включить,  должны заведовать файлы bookshelf.xml.
 
А в bookshelfindex.xml прописаны только пути к тем каталогам, которые имеют описания bookshelf.xml.  
 
 
Raven377
 
Напоминаю, что пока обсуждается только устройство локального хранилища описаний. Ну где-то хоть в одном-то месте должны быть указаны конкретные локальные пути, не так ли? Вот я и предлагаю их описывать в единственном конфигурационном файле.  
 
В bookshelf.xml путей уже нет. Если оприходованная каталогом книга перемещается в другую папку - например, из свалки в персональный подкаталог - то ее дескриптор перемещается вместе с нею (специальной утилитой). А целиком папки (т. е. со всем содержимым как единое целое) и вовсе можно перекидывать вручную. Только не забыть потом перестроить bookshelfindex.xml элементарным поиском по дискам файлов bookshelf.xml.  
 
 
vladgangan
 
Для CHM - желательна полная распаковка, именно для тестирования алгоритма. Для тестирования желательно найти ВСЕХ "кандидатов в ISBN" для каждой книги. Я уверен, что тебе самому окажутся полезными сделанные открытия. Но приказывать я тебе не могу. В принципе, сойдет и та функциональность, которую ты, как говоришь, уже реализовал.  
 
По поводу формата XML - создавай в только что мною описанном виде bookshelfindex.xml. Формат bookshelf.xml выбери по вкусу, а лучше согласуй с Raven377. Предлагаю организовывать его также по секциям, чтобы еще не придуманные утилиты могли сохранять там же свою инфу.
 
Твоя утилита, назовем ее ISBNXtract, должна получать путь к bookshelfindex.xml и создавать/обновлять его. Как минимум - только обновлять. Первоначально создать такой файл, вместе с пустыми заготовками bookshelf.xml  можно скриптиком, типа bookshelf_initializer.vbs (маленький тренинг для начинающего кодера).
 
Переспроси, если что непонятно.
 
 
начинающему кодеру
 
1. Найти на дисках все папки, в которые отвечают по крайней мере одному из следующих условий:
 
1) содержат хотя бы один файл с расширением chm или pdf
2) содержат файлы lib.nfo или ddu.nfo
3) в конечном элементе пути содержится подстрока ebook
 
2. Записать в каждую из этих папок файл bookshelf.xml следующего содержания
 
<?xml version="1.0" encoding="UTF-8"?>
<bookshelf>
</bookshelf>
 
3. Сохранить список этих папок в формате bookshelfindex.xml, спросив предварительно, куда именно сохранять этот файл.

Всего записей: 18151 | Зарегистр. 14-10-2001 | Отправлено: 16:10 17-01-2005 | Исправлено: LevT, 16:53 17-01-2005
c0r0ner



злобный доктор
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Ты не понял. Индекс распределенный. Той инфой, которую ты предлагаешь включить,  должны заведовать файлы bookshelf.xml.  
 
А в bookshelfindex.xml прописаны только пути к тем каталогам, которые имеют описания bookshelf.xml.  

Тогда сразу писать тулзу, которая-бы создавала полный список книг в указаном мной формате, в одном файле.  

Всего записей: 742 | Зарегистр. 09-12-2001 | Отправлено: 16:32 17-01-2005
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

c0r0ner
 
А кому-то этот формат не пондравится, и он твоей тулзой пользоваться не будет, ожидая, пока кто-то еще напишет тулзу для другого формата...
 
В принципе, для предложенного мною универсально-гибкого формата ты точно так же можешь прямо сейчас написать тулзу. Только при этом не заморачиваться на очевидные вещи, которые оставить для тренировки пионерам.  
 
А еще лучше было бы спросить у Raven377, какой функциональности тулзы сейчас недостает  в первую очередь. Чтобы 1) не дублировать уже проделанную работу и 2) внести свою лепту в общее дело.
 

Всего записей: 18151 | Зарегистр. 14-10-2001 | Отправлено: 16:46 17-01-2005
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10

Компьютерный форум Ru.Board » Интернет » Web-программирование » Написание скрипта для каталогизации e-book'ов в Варезнике


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru