MyRuLib Bugs
Parsing XML
FAXPP_Parser *parser = FAXPP_create_parser(NO_CHECKS_PARSE_MODE, FAXPP_utf8_transcoder); FAXPP_set_normalize_attrs(parser, 1); FAXPP_set_decode(parser, decode);
Транслитерация
- Транслитерация русского алфавита латиницей
- Официальная транслитерация украинских букв латиницей
- Таблица транслитерации RU-CENTER
xgettext -CFnj -k_ -o locale/ru.po *.cpp *.h
Дизайн программы
Стандартные иконки для действий GTK Stock Items [1] [2]
- Для иконок "иерархия авторов и серий" и "простой список" - можно использовать иконки раздела actions format-ident-more и format-justify-fill соответственно (используются в текстовых редакторах, например).
- После применения фильтра надо пересчитывать коллекцию и показывать правильное количество книг в автора (это же в сериях). Если книг, которые подходят под фильтр, нет - не показывать автора вообще.
Сверхкомпактный интерфейс
Расшифровка
"Отображение: Автор" - замена "справочникам" и вкладкам
Пиктограммы (слева направо):
- Добавить (книгу/книги)
- Сохранить (отмеченную/отмеченные)
- Экспорт всей коллекции
- Режим редактирования коллекции
- Менеджер загрузок
- "Избранное" - рейтинг книг, которым пользователь назначил оценку
- (далее может быть календарь, что бы он из себя не представлял, и прочие нововведения)
- Настройки программы
- Фильтр (для навигации и поиска по большим коллекциям)
Панели:
Слева, узкая панель - "Оглавление", Список первых букв имеющихся авторов (или серий), вместо существующей панели с кнопками. В качестве особенности - подсчет авторов в категории, отображение категорий, в состав которых входят авторы. (Например, нету у меня авторов с фамилией, начинающейся на Ы :lol: )
Следующая панель - древовидная структура категории (со сворачивающимися ветвями. По умолчанию - все свернуто.) При переключении в режим редактирования - развернутое дерево с чекбоксами. Третья панель - собственно, предпросмотр книги.
Использование openSUSE Build Service
- http://en.opensuse.org/Build_Service
- http://en.opensuse.org/openSUSE:OSC
- http://en.opensuse.org/Build_Service/cross_distribution_package_how_to
- http://en.opensuse.org/Build_Service/Deb_builds
Интеграция с библиотекой Флибуста
Конвертация описаний авторов и аннотаций
- xBB — написанная на PHP библиотека для работы с BBCode.
Использование стандартных объектов
- wxDataViewCtrl
- wxDataViewTreeCtrl
- wxFileHistory
- wxFileConfig
Просмотрщики для разных форматов
Устанавливаем типовые просмотрщики для разных форматов
sudo aptitude install chmsee fbreader evince-gtk djview4 djvulibre-bin
Прописываем меню «Сервис -> Настройки -> Типы файлов» соответствие:
Тип | Программа |
---|---|
chm | chmsee |
fb2 | fbreader |
txt | fbreader |
oeb | fbreader |
epub | fbreader |
evince-gtk | |
djvu | djview4 |
Компиляция для MacOS используя Cygwin
http://www.iphoneapps.ru/?p=1804
Максимально статическая сборка
$ ../configure --with-gtk --enable-unicode --disable-shared --with-expat=builtin --with-libjpeg=builtin --with-libpng=builtin --with-zlib=builtin --without-regex --without-tiff
$ ldd myrulib
Соавторы
Ещё одна важная функция напрашивается - у авторов сделать "синонимы" - а то они в разных книгах слегка по разному могут быть представлены н.п. у меня есть : Атоми Беркем Аль, Атоми Беркем аль и Беркем Аль Атоми или Вартанов Степан и Вартанов Степан Сергеевич. По идее автоматом должны работать синонимы для больших и маленьких букв и ,желательно, для отчество и без него.
Есть конечно вопрос с соавторами - братья Стругацкие, Вайнеры или Л.и Е. Лукины - тут как лучше даже не знаю - но в случае с "синонимом" пользователь уже сможет сам как ни будь разобраться.
Импорт в библиотеку произвольных файлов
Была бы очень полезной фича добавлять в коллекцию не только файлы Fb2, но и pdf, djvu...
- Для этого при добавлении необходим диалог описания свойств файла (жанр, автор, название, серия, год...).
- Для исключения дубликатов, может имеет смысл добавить функцию поиска (удаления?) файла-дубликата.
- Имеет смысл удаления (либо экпорт в спец.файл списка файлов, подлежащих удалению для последующего преобразования в скрипт) ненужных пользователю книг. Для возможности большей "заточки" библиотеки "под себя".
- Было бы крайне желательно в "жанры" добавить редактируемую ветку, например "дополнительно" +... Куда по желанию пользователь MyRuLib сможет добавлять более детальную информацию о жанре. Например более узкая отдельная тематика "Квантовая физика" и пр. Имеются в виду не Fb2 файлы.
Общая идея заключаеся в получении универсального библиотекаря для каталогизации необходимой и давно накопленной информации в виде книг разных форматов. Тем более, что уже имеется список ассоциаций программ с типами файлов.
Иначе просто получается гигантская помойка, разобраться в которой не поможет ни один билиотекарь. Тем более, что в "науке" можно встретить произведения далеко не научного плана. Это же относится и к другим жанрам. Эти предложения позволят навести порядок в библиотеке, избавиться от лишнего (дубликатов и ненужных пользователю книг), то есть произвести настройку библиотеки под свои непосредственные нужды.
Замечания ALEXEY-SOFT
- Если в колонке "Автор" и "Серия" указанно кол-во книг , то почему бы не сделать то же самое для колонки "Жанры".
- Программа очень часто вылетает. Последний раз вылетела когда я хотел выделить с помощью Ctrl несколько авторов, для того чтобы их удалить. Несколько раз вылетала при добавлении книг.
- Не понял как мне вывести книги на языках отличных от русского. Например я хочу удалить из библиотеки все книги на английском языке. Поиск не даёт нужного результата. Вообщем в строке поиска необходим фильтр с выбором языка.
- Жму вкладку "Нучная фантастика", программа зависает на некоторое время и не понятно что происходит. Нужен прогресс-бар. Результат в статус баре 5000книг, а должно быль более 20 000 .Далее щелкаю "Фэтази"-результат то же 5000 книг. То есть там где книг должно быть гораздо больше-везде показывает 5000 книг. Что это за ограничение?
- Если на какое-то время зажать клавишу "Вниз" или "ВВерх" при скролинге списка, то с аннотациями и обложками творится что-то непонятное. Приходится даже прогу перезапускать. С колонкой "Жанры" проблем вообще очень много.
- На заливку в программу чуть более 120 000 книг ушло очень много времени-более 4 часов и это плохой результат, по сравнению например с MyHomeLib(в неё такое же кол-во меньше чем 1 час заливается).
Планируемые доработки программы
- Переход между всеми элементами формы при помощи табулятора (окна для поиска и деревья книг).
- Переделать компонент wxTreeListCtrl: рекурсивная пометка книг, ширина колонок и пр.
- Поддержка zip-файлов размером более 2 Gb для Windows.
- Компиляция wxWidgets с опциями: RUNTIME_LIBS=static, _LARGE_FILES, wxHAS_HUGE_FILES
- Возможность экспорта всех выбранных книг одного автора в один общий zip-файл.
- При компиляции отвязать wxWidgets от библиотеки `GLIBCXX_3.4.9'.
Ошибки в программе
- Не работают горячие клавиши на вкладке "Авторы" при первом ее открытии.
- Если во время продолжительного импорта покликать где-нибудь по списку книг/авторов, то через некоторое время сканирование вылетает с ошибкой.
Компонент wxTreeListCtrl
- http://twinforms.com/products/wxwidgets/treelistctrl.php
- http://wxforum.shadonet.com/viewtopic.php?t=9584
Скачивание файлов
Иконки файлов
- wxTheMimeTypesManager
- wxWidgets/samples/console
- wxWidgets/samples/exec
Иконки файлов в GNOME
- http://docs.wxwidgets.org/trunk/classwx_file_type.html
- http://vds146.hiwit.net/2008/11/18/pygtk-get-gnome-icon-associated-with-a-file/
- http://lists.ximian.com/pipermail/gtk-sharp-list/2006-December/007609.html
Иконки файлов в Windows
Поиск по ключевым словам: IQueryAssociations::GetString, ASSOCSTR_DEFAULTICON, "shlwapi.dll", AssocQueryString.
Сборка пакета DEB
- Launchpad – это просто
- http://www.debian.org/doc/maint-guide/
- http://opennet.ru/base/sys/debian_backport.txt.html
- http://server-help.ru/?p=114
- http://wiki.linuxformat.ru/index.php/LXF91:Deb
- http://www.instanceof.ru/linux/debian-package
- http://wiki.linuxformat.ru/index.php/LXF76:Hardcore_Linux2
- http://frit.su/index.php/Pbuilder