nataraj: (Default)
[personal profile] nataraj
У них даже xml внутри книжек не валидный!
Ладно бы схеме не соответсвовал. Это я еще могу понять... Но он просто НЕ ВАЛИДНЫЙ!

Date: 2007-12-11 06:17 pm (UTC)
From: [identity profile] alexkuklin.livejournal.com
ты хочешь сказать, not well-formed?

Date: 2007-12-11 06:22 pm (UTC)
From: [identity profile] rusec.livejournal.com
Мне тут залили fb2 (http://lib6.rus.ec/book/94050) без единой section, а потом удивлённо спрашивали, почему оно по кнопке (читать) не читается.
И ведь не руками делали, программкой какой-то.
Пришлось парсер подкручивать.

Date: 2007-12-11 06:46 pm (UTC)
ext_613079: Default userpic (Default)
From: [identity profile] shaplov.livejournal.com
Да, именно это я и хотел сказать... просто слово забыл...
Там тег открывается и не закрывается :-/

Date: 2007-12-11 07:19 pm (UTC)
From: [identity profile] alexkuklin.livejournal.com
> Пришлось парсер подкручивать.

а надо было руки откручивать.
как насчет валидации на входе?

Date: 2007-12-11 07:21 pm (UTC)
From: [identity profile] rusec.livejournal.com
нету :(

Date: 2007-12-11 07:29 pm (UTC)
ext_613079: Default userpic (Default)
From: [identity profile] shaplov.livejournal.com
Я тут читая рулезные маны вот что нашел:

validation
$parser->validation(1);

Turn validation on (or off). Defaults to off.

Это в LibXML::Parser

кажется именно это умеет включать валидацию...

Date: 2007-12-11 08:15 pm (UTC)
From: [identity profile] rusec.livejournal.com
Поздно.
Для книг, которые уже в библиотеке, надо парсить что есть, а не вываливаться с ошибкой.
Можно, конечно, все их прогнать через валидатор.
Когда-нибудь.

Date: 2007-12-11 08:25 pm (UTC)
ext_613079: Default userpic (Default)
From: [identity profile] shaplov.livejournal.com
К вопросоу о "когда-нибудь"...
Я в ближайшее время (неделю - две) собираюсь запустить индексацию либрусека.
Индексация у меня идет со скоростью 1 книга в 5 минут, так что особой нагрузки я не создам.

Я читал, что ты переезжаешь на новый движек...
В связи с этим вопрос такой: насколько сильно поменяются ссылки для скачивания и страница для поиска? И если поменяется, то схоранишь ли ты для обратной совместимости ридеректы?

Или не хочешь ли ты сейчас обсудить и реализовать какой-либо унифицированный способ каким бы тебя можно было индексировать, такой чтобы его можно было бы не ломать при переезде с одного движка на другой?

Date: 2007-12-11 08:35 pm (UTC)
From: [identity profile] rusec.livejournal.com
Запускай, не вопрос.
Лучше на новом, который http://lib6.rus.ec - там доступны книги, снятые с основного. И сервер пока совершенно не занят, так что можешь особо не ограничивать, нагрузки он не боится пока.
поиск - /booksearch?ask=..., как и был
книги - /book/id/download
авторы - /author/id
жанры - /genre/code
по возможности стараюсь старые ссылки поддерживать, но перловки (/pl/2.pl) больше не будет.

если надо, могу сделать спецвход для роботов.
скажем, список только fb2

или возьми полный список - http://lib.rus.ec/sql/lib.libbook.sql.gz и выбирай из него.
(единственное там неочевидное поле - Deleted, 1-удалён, 4-снят, 5- снят и удалён, тебе нужны те которые NOT (1&Deleted))

Date: 2007-12-11 09:08 pm (UTC)
ext_613079: Default userpic (Default)
From: [identity profile] shaplov.livejournal.com
Лучше на новом, который http://lib6.rus.ec - там доступны книги, снятые с основного. И сервер пока совершенно не занят, так что можешь особо не ограничивать, нагрузки он не боится пока.
Хорошо... Только у меня сервер стоит пока на узком канале. Его особо нагружать не хочется... Жена хозяина канала может обидиться... ;-)

если надо, могу сделать спецвход для роботов.
скажем, список только fb2

В идеале была бы возможность забрать список книг в какой-то xml-ке.
На вроде этих: fictionbook.ru/all_authors/ и fictionbook.ru/all_books/

Идеально было бы получить в XML виде
1. Полный список авторов
2. Полный список книг
3. Список новых книг за определенную дату ( i.e. http://lib6.rus.ec/xml/2007-12-11/new_books.xml)
4. Список орновленных книг за определенную дату (http://lib6.rus.ec/xml/2007-12-11/updated_books.xml для книг появившихся в течении 10 января)
5. Список исчезнувших по какой либо причине книг за определнную дату.
6. То же что 3,4,5 но для авторов.

меня собственно инересует только fb2 но я думаю, что кому-то еще могут понадобиться и другие форматы.

Все эти xml'ки можно генерить раз в сутки (например в полночь) и отдавать их как статический контент.

В списке книг и авторов меня интересует.
1. Внутренний id книги твоей библиотеки
2. Внутренний id автора товей библиотеки
3. Ссылка на скачивание fb2 файла
4. Ссылка на почитать
5. Ссылка на "обложку книги" где собсвенно обложка, аннотация, и пр.
6. В списке книг, для каждой книги списох id'ов авторов книги
7. Ссылка на страницу об авторе (в списке авторов).
8. В информации об авторе было бы неплохо если бы были все возмлжные алиасы, под которым автор известен
9. Не плохо бы было бы если в списке книг так же была информация о времени создания и размере файла. Это позволит лишний раз не загружать файл для перепроверки.

или возьми полный список - http://lib.rus.ec/sql/lib.libbook.sql.gz и выбирай из него.
А он обновляемый? Его, честно гворя парсить -- запарюсь... А разворачивать его внутрь MySqlной базы -- неправильно, тем более что mysql мене на сервере совершенно не чему...

Date: 2007-12-11 09:33 pm (UTC)
From: [identity profile] rusec.livejournal.com
Оно есть в виде sql, генерится ежедневно в виде /sql/lib.$table.sql.gz
$table:
1. libbook.sql
2. libavtorname.sql (SE)
3. /book/$id/fb2 (/book/$id/txt, /book/$id/html, /book/$id/rtf - если надо)
4. /book/$id/read
5. /book/$id
6. libavtor.sql
7. /author/$id
8. libavtoraliase.sql
9. в libbook.sql есть таймстамп. Но сейчас при загрузки новой версии файл не меняется, даётся новый id а старый метится как удалённый. Иначе проблемы с откатами. Так что можно тупо смотреть id>имеющегося, а максимальный брать из первой строчки /new/rss (там order by id desc). Ну или из sql.

А в чём сложность sql распарсить? Или ещё проще, поднимаешь мускул, всасываешь и генеришь любую выборку, как тебе захочется. Потом опускаешь, раз не нужен.
Всяко из базы нужную информацию удобнее вынуть - она на то и придумана.

/etc/init.d/mysql start
for i in libbook, libavtor, libavtorname, libavtoraliase; do
wget http://lib.rus.ec/sql/lib.$i.sql.gz;
zcat lib.$i.sql.gz | mysql database_name;
rm lib.$i.sql.gz;
done
SELECT .......
/etc/init.d/mysql stop

Если всё-таки настаиваешь на XML, я в этом направлении подумаю. Как время будет.
А вышеописанное уже работает.
Фокус в том, что на даный момент sql надо брать с lib.rus.ec, а файлы - с lib6.rus.ec. Впрочем, когда они объединятся ничего не сломается, пути сохранятся. Просто это будет один ip.
Edited Date: 2007-12-11 09:37 pm (UTC)

Date: 2007-12-18 02:43 pm (UTC)
ext_613079: Default userpic (Default)
From: [identity profile] shaplov.livejournal.com
Начал писать индексатор lib.rus.ec'а

Разворачивать mysql -- я счел не правильным решением, и решил что лучше по старинке парсить html'ки.

Видимо парсить сразу буду lib6.rus.ec, чтобы потом не мучатся с переходом... А шестерку из url'ов убрать будет не сложно.

Однако возни ряд вопросов:

> поиск - /booksearch?ask=..., как и был

А как он был? Там можно запросить все книги по заданному жанру и формату?

Я помню, что на текущей версии ты рассказывал про http://lib.rus.ec/download?genre=sf_humor&type=fb2&avtor=all
Но только во-первых его на lib6 просто нету, а во вторых с ним будут небольшие проблемы по нахождению ссылки на страницу автора...

Date: 2007-12-18 03:02 pm (UTC)
ext_613079: Default userpic (Default)
From: [identity profile] shaplov.livejournal.com
Хотя нет... поспешно беру свои слова обратно...
Лучше я sql попарсю... ;-)

Date: 2007-12-18 05:46 pm (UTC)
From: [identity profile] rusec.livejournal.com
А нельзя ли этот sql тупо всосать в твой постгрес? Или он напрочь несовместим?

Date: 2007-12-18 08:05 pm (UTC)
ext_613079: Default userpic (Default)
From: [identity profile] shaplov.livejournal.com
Вообще наверное можно... INSERT -- он везде INSERT .
Но идеологически мне эта идея очень сильно не нравиться...

Date: 2007-12-23 09:57 pm (UTC)
ext_613079: Default userpic (Default)
From: [identity profile] shaplov.livejournal.com
Прошу прощения, я еще раз спрошу. Мне это важно...
После переезда библиотеки пропали sql-дампы http://lib.rus.ec/sql/lib.$i.sql.gz
Скажи пожалуста, их больше не будет? Мне переписывать все занаво под парсинг html?

Re:

Date: 2007-12-23 10:05 pm (UTC)
From: [identity profile] rusec.livejournal.com
восстановил.

Re:

Date: 2007-12-23 10:52 pm (UTC)
ext_613079: Default userpic (Default)
From: [identity profile] shaplov.livejournal.com
О! Спасиб тебе большой!

К сведению

Date: 2007-12-24 11:54 am (UTC)
ext_613079: Default userpic (Default)
From: [identity profile] shaplov.livejournal.com
В lib.libavtorname.sql.gz в записях с 24290 по 24439 уехавшая кодировка.

Feature Request

Date: 2007-12-24 07:54 pm (UTC)
ext_613079: Default userpic (Default)
From: [identity profile] shaplov.livejournal.com
LibRusEc kit в качестве fb2-ID'а пишет текущую дату...
Было бы крайне здорово, если кроме этой даты туда добавлялось еще какое-то кол-во (хотя бы 5-10) случайных букв и цифр. Иначе слишком велика вероятность, что две книги будут сочтены одной, по сравнению ID'ов... Это будет неприятно...

Re: Feature Request

Date: 2007-12-24 10:09 pm (UTC)
From: [identity profile] rusec.livejournal.com
Librusec kit - это одноразовый скриптик, который своё отработал полгода назад и больше не используется.
По общей неопытности в нём было пара ошибок, в частности эта.
Надо бы проехать все fb2 и поправить.
Как-нибудь сделаю.

Re: Feature Request

Date: 2007-12-24 10:23 pm (UTC)
ext_613079: Default userpic (Default)
From: [identity profile] shaplov.livejournal.com
Угу... Хорошо...
Проехать надо бы. Мне уже попался один не well formed XML в котором & не был преобразован в & со всеми вытекающими...

Re: Feature Request

Date: 2007-12-24 10:23 pm (UTC)
From: [identity profile] rusec.livejournal.com
угу, это как раз вторая ошибка...

Книги на нерусском языке

Date: 2007-12-25 08:48 pm (UTC)
ext_613079: Default userpic (Default)
From: [identity profile] shaplov.livejournal.com
Пытаюсь скачать http://lib.rus.ec/book/39081/download мне показывают пустую страницу с заголовком книги.
Если залогиниться, то все работает нормально.

1. Правильно ли я понимаю, что не залогиненным скачивать не дают потому что язык книги не русский, и ее дают только залогиненым пользователям?

2. Можно ли при получении страницы этой незалогиненным пользователям передовать браузеру статус код не 200, как это сейчас, а 403 или что там больше подходит для таких случаев. А то у меня то что приходит с http://lib.rus.ec/book/39081/download, по документам проходит как brocken archive. Ведь вроде как скачать удалось успешно, а разархивировать нет.

3. Можно ли кроме п.2 уже для юзера написать текст о том, почему ему книгу не дают скачать... Ведь это мы с тобой знаем, что нерусские книги закрыты. А пользователь то не знает. Потому-что я впринципи могу проиндексировать нерусскую часть библиотеки (если ты конечно не против) LWP::Agent вполне позволяет залогиниться... Но если я потом дам пользователю линк на скачивание, то он пойдя по нему он получит пустую страницу и окажется в полном непонимании почему его сюда послали...

п. 2 и 3 так же актуальны для http://lib.rus.ec/book/39081/read и http://lib.rus.ec/book/39081 . Особенно 3, ибо я по этим ссылкам ничего не качаю. Хотя правильный статус код хорошо бы и пользователю отдавать...

4. Вообще я не думаю что с украинскими и белорусскими книгами буду такие же проблемы как с английскими... Может их исключить из списка нерусских? ;-)
From: [identity profile] rusec.livejournal.com
1. Правильно. Мне пока с русскими копирайтборценами проблем хватает, не хочется еще и с буржуями бодаться.
2. Наверное, можно. Лучше я тебе буду отдавать книгу - надо только договориться как твой робот узнавать. По юзер-агенту или IP или как проще? Или логинься, если это не трудно.
3. Напишу.
4. Можно :)

Profile

nataraj: (Default)
Swami Dhyan Nataraj

July 2024

S M T W T F S
 123456
789 10111213
14151617181920
21222324252627
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 20th, 2026 10:36 pm
Powered by Dreamwidth Studios