Десктопный клиент для gen.lib.rus.ec

Есть идея - добавить в MyHomeLib возможность работы с gen.lib.rus.ec, аналогично работе с коллекциями lib.rus.ec on-line (локальная база, книги на сервере, выкачивание по мере необходимости).
Дело за малым - доступ к дампу базы.
Кто тут главный по гинезису - отзовитесь.

Комментарии

давай, дамп сейчас готовлю новый - очень много исправлений. Застрял по времени, освобожусь к середине ноября. Лучше дождаться обновления.

Ещё вот что: я сейчас стесняюсь выкладывать код сайта (5 кб на PHP), но это можно. А дамп базы + код сайта + файлы = это готовая система на компе. Таким образом можно дорастить код сайта (это автоматически и сетевое и локальное использование!) вместо написания проги. Остальное всё само по себе заработает, как уже есть на сайте.

Как программа будет открывать *.djvu, *.chm, *.doc и т.п.?

bookwarrior написал:
Как программа будет открывать *.djvu, *.chm, *.doc и т.п.?

mimetypes?

bookwarrior написал:
Как программа будет открывать *.djvu, *.chm, *.doc и т.п.?
это как раз без проблем - в настройках прописываются вьюверы для файлов и все дела:)

Вот мне пришлось помучиться, прикручивая хоум-либ к бук-либу. Потому как там - архивы разных типов, причем в одном архиве по нескольку файлов может быть. И ничего, все решилось в лучшем виде - прописал в настройках сами архивы, назначил на них винрар, теперь при просмотре книги открывается винрар, а в нем уже кликаю нужный фал - оно открывает прописанным в системе вьювером. А с архивами ha еще лучше - прописал кул-ридер, он ha понимает напрямую. Благо, в нем еще djvu не попадалось. Да, появился лишный клик мышкой, ну да это все равно лучше, чем ничего.

bookwarrior написал:

Ещё вот что: я сейчас стесняюсь выкладывать код сайта (5 кб на PHP), но это можно. А дамп базы + код сайта + файлы = это готовая система на компе. Таким образом можно дорастить код сайта (это автоматически и сетевое и локальное использование!) вместо написания проги. Остальное всё само по себе заработает, как уже есть на сайте.

дык все уже написано, осталось только базу конвертнуть, и усе.
Спешки особой нет, до середины ноября подождем :-)

2 bookwarrior:
Вопрос конечно не в тему, но всё же. Из Белоруссии не могу соединиться с gen.lib.rus.ec. Сервер даже не пингуется. В чем может быть причина?
Прошу простить за надоедливость.

не только из беларусии - отовсюду так. Дальше, видимо, будет только хуже, увы. Library Genesis не открывается из-за технических причин, над которыми я невластен. Я лишь юзер, которому ларин выделил место и дал доступ для ведения проекта. Видимо растущая посещаемость убивает сервер... плюс DoS-атаки.

***

MIME-types - это хорошо. В базе есть отдельная колонка расширений файлов - но это не MIME-types! Когда я отдаю файл на скачивание, расширение вставляется в поле Content-Type: application/расширение - тогда браузер сразу узнаёт его и видно соотв. иконку приложения. Однако тут две тонкости:
1) открывать кнопкой Open разрешено не всё (нововведение в последних исправлениях браузеров), потому что файлы книг вроде CHM, PDF могут содержать опасное активное содержимое. И это правильно - не нужно открывать. Поэтому кнопка Open очень часто будет приводить к скачиванию в кэш браузера, но невозможности отобразить этот файл (т.е. не открывается активное содержимое из кэша браузера).
2) сделать качественную таблицу "файл --- его mime" достаточно трудно и если у клиента этого миме не будет (приложения соотв. не установлено), всё-равно будет неопределённый тип.

Из этих пунктов последовал "стоп" на дальнейшие обдумывания качественных миме - не так уж они и нужны. В некоторых случаях файлы так и останутся для клиента "неопознанным контентом".

***

> дык все уже написано, осталось только базу конвертнуть, и усе.

ну ок, старая база есть здесь http://rapidshare.de/files/39987643/united.library_20080713_0800.sql.7z.html
для отладки вполне пойдёт, база сильно изменилась (название базы и таблицы внутри дампа тоже) и позже дам обновлённую версию

bw

bookwarrior написал:
н
MIME-types - это хорошо. В базе есть отдельная колонка расширений файлов - но это не MIME-types! Когда я отдаю файл на скачивание, расширение вставляется в поле Content-Type: application/расширение - тогда браузер сразу узнаёт его и видно соотв. иконку приложения. Однако тут две тонкости:
1) открывать кнопкой Open разрешено не всё (нововведение в последних исправлениях браузеров), потому что файлы книг вроде CHM, PDF могут содержать опасное активное содержимое. И это правильно - не нужно открывать. Поэтому кнопка Open очень часто будет приводить к скачиванию в кэш браузера, но невозможности отобразить этот файл (т.е. не открывается активное содержимое из кэша браузера).
2) сделать качественную таблицу "файл --- его mime" достаточно трудно и если у клиента этого миме не будет (приложения соотв. не установлено), всё-равно будет неопределённый тип.

в MyHomeLib можно указать конкретную читалку для любого типа файлов, главное его сохранить с правильным расширением. Так что тут никаких проблем нет.

Пошел смотреть базу.

да, ещё имей в виду, что поле, содержащее имя файла на самом деле не используется и оставлено исключительно для целей дальнейшего разбора рубрик (они в путях содержатся иногда). А имя файла собирается из двух полей ID и MD5. Последнее является ПОЛНЫМ именем файла, а из ID получается путь к нему (каталог точнее) по правилу

имя каталога = ID - (ID % 1000)

где % - это деление по модулю, модуль = 1000 в данном случае.

т.е. в простом виде: на каждую тысячу файлов по каталогу:
repository/0/
repository/1000/
repository/2000/
...

Это сделано из соображений разделения интерфейса и хранилища (никто снаружи не знает об этом правиле - и не должен) и оптимизации быстродействия: если серверу придётся ковырять список из 50 000 файлов на каждый запрос (даже кэшируя периодически) - это будет серьёзная нагрузка. В принципе, если кто-то проведёт тесты и докажет, что кэширование запросов к файловой системе ОС обрабатывает лишь с однократным перелистыванием каталогов - можно будет оставить только MD5 и всё сбросить в один каталог.

bw

X