Состоялся релиз каталогизатора домашней библиотеки MyLibrary 2.3. Код программы написан на языке программирования С++ и доступен (GitHub, GitFlic) под лицензией GPLv3. Графический интерфейс пользователя реализован с помощью библиотеки GTK4. Программа адаптирована для работы в операционных системах семейства Linux и Windows. Для пользователей Arch Linux в AUR доступен готовый пакет. Для пользователей Windows доступен экспериментальный инсталлятор...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=60321
Чем лучше, хуже myrulib (http://myrulib.lintest.ru/)?
Последний коммит — 4aff570 on Nov 16, 2013
Гммм
Она хоть соберётся?
Нет, там исходники надо править чтобы собралось. Прям чуть-чуть, но без правок не соберется.
Есть какие-то сборки под свежие убунты. Но немножко глючат.
Не сравнивал, да и цели такой не было. Если есть желание, сравните и напишите. Ну и поскольку тот проект, видимо, заброшен, то опять же если в нём что-то есть, чего не хватает в MyLibrary - пишите (только лучше не здесь, а на гитхабе/гитфлике или на почту). По возможности реализую.
а как на русский переключить?
Если собирали из исходников сами, то, видимо, отсутствует gettext (в разных дистрибутивах может называться по-разному или быть разбит на пакеты, т.е. может также понадобиться что-то вроде gettext-tools). Установите и пересоберите заново - тогда перевод должен заработать.
Сначала возрадовался, прочитав новость. Давно ищу подобный каталогизатор (FBReader - скурвился, calibre - полное гуано)Потом прочитал про GTK4 и расстроился. Ну почему?! Огромное число LTS продолжают использовать 3.24. Не апгрейдить же ради одной программы.
Автор, может получится сделать совместимость с GTK3? Со своей стороны donate обещаю.
Согласен с предыдущим оратором. GTK4 нужно только гномосекам.
https://www.opennet.dev/openforum/vsluhforumID3/132377.html#18
Расстроился, что не Qt.
А вам, как пользователю, есть ли разница? Главное, чтобы оно работало, как заявлено, а на чём оно там написано - дело десятое.
Как сказать.
У меня на домашней машине что-то произошло (похоже, аппаратно). Приложения Qt / KDE работают идеально, приложения GTK не работают -- артефакты на изображении, самопроизвольные (и динамические!) съезжания элементов изображения, исчезновение текстов и т.п.
> Как сказать.
> У меня на домашней машине что-то произошло (похоже, аппаратно).Вряд ли аппаратно. Иначе и Qt тоже криво отбражался - по итогу всё работает через одну и ту же видеокарту. А программная проблема - тут куча возможных причин. Может - собрали криво, может оконный менеджер чудит, может opengl не той версии. Может просто пересобрать нужно. Я с подобным сталкивался в другой своей программе - код вроде бы правильный, а она выдаёт ошибку сегментации. Причём прям на запуске, дело даже до графики не доходило. Поизучал вывод дебаггера, пересобрал сам руками одну из зависимостей - и всё заработало. Причём и код, и инструкции для сборки пакета, всё взял из дистрибутива, ничего не меняя. Попробуйте поиграть с переменными GSK_RENDERER и GDK_BACKEND. Допустимые значения можно узнать, запустив любую gtk программу в консоли с GSK_RENDRER=help или GDK_BACKEND=help
Разница есть - оно всрато выглядит и часто ломается апстримом.
> Разница есть - оно всрато выглядит и часто ломается апстримом.Дело вкуса. Ну и никто не мешает вам сделать свой интерфейс - код открыт. Более того, MyLibrary изначально спроектирован так, что GUI полностью отделён от остальной части программы. Создание коллекций, поиск, вывод аннотаций и обложек и т.д. - всё это в принципе может быть вынесено в отдельную библиотеку. Т.е. вы можете взять соответствующие классы и прикрутить к ним Qt интерфейс при желании.
расстроился что не ncurses (TUI).
там вообще графика нужна для чего-то кроме "показать обложку книги и свой логотип" ?
В принципе ничего невозможного нет. Но. Первое препятствие - время. Не уверен, что у меня получится выкроить для этого недели три (мне нужно изучить соответствующий API и как с ним работать, поскольку с GTK3 я никогда дела не имел, а потом фактически полностью переписать графическую часть проекта). Во-вторых, и в "главных", я не уверен, что оно вообще нужно. Собственно, разработка GTK5 уже стартовала, т.е., я так полагаю, к концу следующего года можно ожидать уже каких-то новостей оттуда. Ну и, насколько я опять же понимаю, как только GTK5 выйдет в релиз, поддержка GTK3 будет постепенно свёрнута. Сейчас я оставляю за рамками тех. особенности разных версий. Речь о том, что нет смысла переводить проект на то, что больше поддерживаться не будет.
>[оверквотинг удален]
> что у меня получится выкроить для этого недели три (мне нужно
> изучить соответствующий API и как с ним работать, поскольку с GTK3
> я никогда дела не имел, а потом фактически полностью переписать графическую
> часть проекта). Во-вторых, и в "главных", я не уверен, что оно
> вообще нужно. Собственно, разработка GTK5 уже стартовала, т.е., я так полагаю,
> к концу следующего года можно ожидать уже каких-то новостей оттуда. Ну
> и, насколько я опять же понимаю, как только GTK5 выйдет в
> релиз, поддержка GTK3 будет постепенно свёрнута. Сейчас я оставляю за рамками
> тех. особенности разных версий. Речь о том, что нет смысла переводить
> проект на то, что больше поддерживаться не будет.Лучше уделите пару часов чтобы пропатчить myrulib и собрать его под flatpak. Миллионы рускоязычных пользователей будут Вам благодарны. Как результат программа сможет работать под _всеми_ современными дистрибутивами.
> Лучше уделите пару часов чтобы пропатчить myrulib и собрать его под flatpak.Свою позицию по использованию flatpak/appimage/snap и других подобных вещей я уже не раз высказывал, в том числе и здесь. Она очень проста - не пользуйтесь ими ни при каких условиях. Если нужно объяснить, почему я так считаю - объясню.
> Миллионы рускоязычных пользователей будут Вам благодарны.
Прям миллионы?))
> Как результат программа сможет работать под _всеми_ современными дистрибутивами.
А MyLibrary не может? Ну и как уже написал выше - если что-то нужно, пишите, постараюсь реализовать. Но лезть в чужой код - извините. Я не настолько хорош в программировании, и времени у меня на вникание особо нет. Тут со своим бы разобраться...
На обещания доната - обещают посмотреть
Это какие такие "огромное число LTS"?На вскидку во всех актуальных LTS для серверов/рабочий станций GTK4 худо-бедно доступен.
В "дефолтном" энтерпрайзе - RHEL - есть. Равно как и во всех прочих LTS на его базе (gtk4-4.4.1-2.el9)
Во втором, наверное, по популярности LTS - Ubuntu LTS - также есть: 4.6.9+ds-0ubuntu0.22.04.1
В Debian stable - есть и аж 4.8.3.
А в целом - ну вы серьезно что ли???? Предлагаете разработчику переписывать под устаревший тулкит только потому что где-то не стоит библиотека?? Flatpack и прочие - для кого? Ну чисто с точки зрения человеских ресурсов впустую тратить их на переписывание только потому, что вам лень скачать и запустить чуть больших размеров флэтпак/снэп/аппимейдж/что вам там больше всего по вкусу - это же бред. А завтра вы на вашем любимом LTS запустите dnf update / apt upgrade / etc, будете иметь GTK4 из коробки и даже спасибо не скажете, что разработчик ради таких как вы переписывал кучу кода?
Обещать — не жениться.
Автор, как известно из предыдущих обсуждений его шедевров, считает пользователей (и вообще всех людей) хуже грязи и настаивает "жри что дают". Ну то есть типичный такой опенсорсный писатель, коммунист-мизантроп. Нет смысла тратить время на общение с ним и на его поделки, тем более снабжать его деньгами. Лучше задонатить, чтоб MyRuLib кто-нибудь оживил, а то неофициальная сборка уже наполовину нерабочая.
> Автор, как известно из предыдущих обсуждений его шедевров, считает пользователей (и вообще
> всех людей) хуже грязи и настаивает "жри что дают". Ну то
> есть типичный такой опенсорсный писатель, коммунист-мизантроп. Нет смысла тратить время
> на общение с ним и на его поделки, тем более снабжать
> его деньгами. Лучше задонатить, чтоб MyRuLib кто-нибудь оживил, а то неофициальная
> сборка уже наполовину нерабочая.Поддерживаю! Очень жаль, что MyRuLib вышел "в тираж". Было очень достойное ПО. Недавно пытался его собрать под 22.04, но баги в коде, которые выявляет современный компилятор, этого не позволили. А мои минимальные знания плюсов не позволяют даже попытаться его пропатчить.
Если у кого позволяет время можно было бы его собрать и опубликовать во flathub. У него минимум зависимостей зато он куда как интереснее MyLibrary и заточен под сетевые библиотеки русскоязычной литературы.
> Лучше задонатить, чтоб MyRuLib кто-нибудь оживил, а то неофициальная сборка уже наполовину нерабочая."Кто-нибудь" - это кто? А может самому сесть и разобраться? Нет? Сто тысяч отговорок? Ну ладно...
> типичный такой опенсорсный писатель, коммунист-мизантропТипичный такой капиталист-жлоб:
> Лучше задонатить, чтоб кто-нибудь
Нельзя ввести руками путь к папке с книгами. Исправляйте, пока никто не видел!Натравил на папку с ≈2 Гб книжек, программа пару минут трудилась, вроде бы создала коллекцию. В итоге — пусто… Венда, есличо.
там надо потыкать в интерфейс вверху и все появится
Очень информативный совет, спасибо.
> Исправляйте, пока никто не видел!Смешно)) Оно так работает практически с самого начала, т.е. почти год уже. Более того, так и задумывалось. Чтобы не плодить лишние диалоги "Неправильный путь!" и не ловить ошибки несуществующих папок.
> Венда, есличо.
Если устанавливали из инсталлятора - может быть всё, что угодно. Поэтому и написано "экспериментальный". Если уверены, что нашли ошибку - пишите на github/gitflic или на почту, буду разбираться. Но не факт, что получится - винда у меня стоит только на виртуалке, и в ней вроде бы всё работало. Живых машин с ней под рукой нет и не предвидится. Так что рекомендую переходить на Линукс. В том числе потому, что для данного проекта поддержка винды возможно будет свёрнута. Если это будет отнимать слишком много времени.
> Так что рекомендую переходить на Линукс.Ок, перешёл:
> meson setup -Dbuildtype=release build
> Run-time dependency gtkmm-4.0 found: NO (tried pkgconfig)Это мне теперь GTK4 из сорцов собирать? Не, пойду обратно.
> Это мне теперь GTK4 из сорцов собирать?Не GTK4, а только gtkmm. И не обязательно собирать - можно например выбрать дистрибутив, где оно есть в репозитории уже собранное.
> Не, пойду обратно.Up to you. Рекомендация на то и рекомендация: следовать ей или нет - полностью ваше дело.
Дело в том, что дистрибутив у меня уже выбран.
> Дело в том, что дистрибутив у меня уже выбран.Я ж говорил, что на людей автору проги плевать, "жрите что дают" вот его девиз. А кто-то ещё сомневается...
>> Run-time dependency gtkmm-4.0 found: NO (tried pkgconfig)
>Это мне теперь GTK4 из сорцов собирать? Не, пойду обратно.Зачем из сырцов?
sudo apt install libgtkmm-4.0-dev
Спасибо, а я-то не догадался! Нет его у меня в репах (Kubuntu 22.04).
https://github.com/ProfessorNavigator/mylibrary/issues/4
Судя по интерфейсу, поколение джаваскрипт добралось до с++.
Да нет, вроде обычный интерфейс опенсорсной программы — спроектирован программистом, выглядит соответственно. Что не так-то?
Больше похож на делфи из двухтысячных
> Для пользователей Arch Linux в AUR доступен готовый пакет.Не надо обманывать, это всего лишь PKGBUILD. К тому же оформлен не по гайдлайнам. В нём даже лицензия не указана.
> Не надо обманывать, это всего лишь PKGBUILD. К тому же оформлен не по гайдлайнам. В нём даже лицензия не указана.Кто знает, что такое AUR, и так поймёт, а остальным до лампочки. "Готовый пакет" употребляется исключительно потому, что в противном случае придётся расписывать, что такое AUR и как оно в арче вообще работает. А оно надо? Претензия по поводу лицензии принимается, поправлю.
> "Готовый пакет" употребляется исключительно потому, что в противном случае придётся расписывать, что такое AUR и как оно в арче вообще работает. А оно надо?Кто знает, что такое AUR, и так поймёт, а остальным до лампочки.
> создаёт собственную базу данных, не изменяя исходные файлы и не меняя их положенияПосле Calibre это и правда убер-фича, надо будет посмотреть
Вот всем Calibre нравится, но то что она тащит файлы к себе подбешивает, чо ей не работается с теми что на месте лежат?
> Вот всем Calibre нравится, но то что она тащит файлы к себе подбешиваетСкажу по секрету - это одна из причин возникновения данного проекта. И поэтому в описании сделан на этом акцент. Только - тс-с!))
Достойно! Вот прям реально вызывает уважение
Обнаружил, что имеющийся софт ужасен и пошел написал свой
Снимаю шляпу
> Достойно! Вот прям реально вызывает уважение
> Обнаружил, что имеющийся софт ужасен и пошел написал свой
> Снимаю шляпуСпасибо на добром слове.
А ещё Calibre может изменять сами файлы книг (если не поставить галочку где-то глубоко в адвансед опциях, снятую по умолчанию). И если этого не знать, можно рассинхровать себе всю библиотеку к чертям. И автор калибры считает это совершенно нормальным поведением и не хочет исправлять.
Про переименование файлов (и обрезание после этого длинных имен) - это вообще отдельная песня.
В общем там эталонный пример сказочного индийского разработчика.
А в итоге, разработка на каком сервере выполняется: github или gitflic? Какой является зеркалом?
> А в итоге, разработка на каком сервере выполняется: github или gitflic? Какой
> является зеркалом?gitflic скорее используется, как зеркало и для экспериментов, github - как "парадный" репозиторий. Тем не менее, оба репозитория полностью равноценны, отличия лишь в частностях README (и там, и там, если что, есть как русская версия, так и английская). Разработка ведётся на локальной машине, в репозиторий код попадает, когда есть уже определённая степень готовности к релизу - когда начинается активное тестирование. Тогда в обоих репозиториях создаются ветки testing, и в них идёт устранение выявленных недочётов. Как только код готов к релизу, ветка testing сливается с master и создаётся тег. Пока схема работы такая. Когда (если) над проектом будет работать кто-то ещё, кроме меня, тогда естественно будут внесены изменения. По согласованию со всеми участниками.
Для пользователей никакой разницы нет, код качать можно из обоих мест. Отчёты об ошибках писать - также и там, и там.
@ProfessorNavigatorА авторы как-то хитро обрабатываются, или всех Пушкиных А.С. в одну кучу. Я не наезжаю, я знаю что в FB2 только ФИО, и нет возможности различить однофамильцев, но может вы что-то хитрое замутили.
> А авторы как-то хитро обрабатываются, или всех Пушкиных А.С. в одну кучу.
> Я не наезжаю, я знаю что в FB2 только ФИО, и
> нет возможности различить однофамильцев, но может вы что-то хитрое замутили.Пытался "замутить хитрое", но не вышло. Поэтому при создании коллекции там, где нет чёткого разделения, оно обрабатывается в порядке "ФИО", т.е. программа считает, что первой идёт фамилия, дальше - имя, потом отчество (ну или их английские аналоги, surname, first name, second name). Алгоритм же поиска работает и вовсе просто. При переключении коллекции или запуске программы база данных в параллельном потоке загружается в вектор. При команде на начало поиска, когда база полностью загружена (иначе идёт ожидание полной загрузки), она копируется в новый вектор. После чего из него удаляется всё, что не соответствует критериям поиска, и он идёт на вывод, как резульат. При этом ФИО в базе записаны одной строкой. Т.е. программа берёт введённую на поиск фамилию и проверяет, есть ли она в данной строке, в любом её месте. Если нет, запись удаляется. Затем аналогично с именем и т.д. Иными словами, в принципе вы можете набрать всё в поле "Фамилия" (или любом другом) и получить аналогичный раздельному вводу результат. Но лишь в том случае, если порядок ввода совпадает с порядком в записи в базе данных (строчные буквы или заглавные - не важно, в процессе поиска всё переводится в строчные).
Проще и эффективней в новый вектор добавлять найденные записи, а не удалять те, что не совпадают по критерию поиска.
> Проще и эффективней в новый вектор добавлять найденные записи, а не удалять
> те, что не совпадают по критерию поиска.Как уже писал выше - программа считает, что первой в записи в базе идёт фамилия автора. Но в реальности это далеко не всегда так. В случае с fb2 книгой, там может быть всё, что угодно, например - имя. Всё зависит от того, кто и как оформлял fb2 файл. А пользователь ввёл для поиска фамилию. Которая находится в конце записи, а значит книга в выдачу поиска уже не попадает. Или нужно проводить поиск отдельно по фамилии по всей строке с ФИО. Затем отдельно по имени, и т.д. Т.е. делать несколько переборов базы в любом случае (или строки ФИО, что в общем-то одно и то же). А если в базе 500000 книг или больше? Можно, конечно, оставить только одно поле ввода "Автор", и свалить на пользователя выбор последовательности: "ФИО", "ИОФ" и т.д. Но это уже, по-моему, неправильно. Пользователь совершенно не обязан знать, что и как Вася Пупкин ввёл в поле ФИО при конвертации своего бессмертного творения в fb2. И проходов по базе всё равно будет больше одного. Если же в любом случае нужно делать несколько переборов базы, то разумно с каждым следующим проходом уменьшать количество перебираемых элементов - удалять то, что не соответствует критерию предыдущего перебора.
Далее. Всё это можно проделывать с "оригинальным" вектором базы. Но поисков по одной и той же коллекции может быть несколько подряд. И в случае одного вектора придётся каждый раз читать заново базу. А жёсткий диск работает гораздо медленнее оперативной памяти. Т.е. оптимальный выход - создать копию "оригинального" вектора базы и издеваться уже над ним, тогда как оригинал полежит спокойно до следующего поиска или переключения коллекции.
https://github.com/petrovvlad/freeLib
GPLv3, GTK4, C++ - автору уважение и зачёт.
Спасибо.
Собрал и установил.
Ни в одно из полей ввода невозможно ничего ввести с клавиатуры, только копипасту можно сбросить. Соответственно, удалил.$ uname -a
Linux 6.5.10-100.fc37.x86_64
> Собрал и установил.
> Ни в одно из полей ввода невозможно ничего ввести с клавиатуры, только
> копипасту можно сбросить. Соответственно, удалил.
> $ uname -a
> Linux 6.5.10-100.fc37.x86_64Скорее всего проблема в сборках gtk и gtkmm в дистрибутиве. Я проверю. Если правильно понимаю дистрибутив - Федора 37?
Да, федора 37.
> Да, федора 37.Федору 37 добыть не удалось - я так понимаю, что она уже всё. В 39 на виртуалке работает нормально. В общем проблема, как и говорил, не в MyLibrary. И скорее всего даже не в gtk, а во взаимодействии с видеодрайвером. Запустите в консоли и посмотрите, что выдаёт. Кроме того, попробуйте запустить с GSK_RENDERER=cairo ($ GSK_RENDERER=cairo mylibrary). Если запустится и будет работать нормально - значит проблема в opengl скорее всего. Тогда вам уже нужно смотреть - какая видеокарта, какой видеодрайвер стоит, как устанавливался, есть ли все обновления и т.д.
> Да, федора 37.И да, если версия gtkmm-4.8.0 - могут быть проблемы. Если для вас версия Федоры не принципиальна - попробуйте перейти на более новую. Там должна быть версия gtkmm поновее, в ней по идее проблем быть не должно.
Чем оно лучше обычной папки с файлами?
Если вам удобнее пользоваться папкой с файлами - пользуйтесь, никто худого слова не скажет.
Чисто технически есть плагины для TC/DC, позволяют организовать вывод в колонки, поиск. Но без базы.
Думал попробовать SQLite заюзать или какой-то способ кэширования, но ниасилил.
Очень не хватает деб-файла или даже ppa (
> Очень не хватает деб-файла или даже ppa (Их есть у меня)) Правда, только для debian sid и только deb пакет. Ну или могу сбросить папку debian для самостоятельной сборки пакета. Если нужно - пишите на почту. Свой репозиторий поднять у меня возможности, увы, нет.
> или могу сбросить папку debian для самостоятельной сборкиЧисто технически это дело не особо хитрое по крайней мере в этом случае небольшого приложения. (Но сам запускаю скриптом, mainWindow.css немного подправлен.)
А если создать подкаталог, например, "package", и положить туда вашу папку debian и PKGBUILD? (Подкаталог, чтобы майнтейнерам в будущем не мешало делать по-своему, как принято в конкретном дистрибутиве.)
> Чисто технически это дело не особо хитрое по крайней мере в этом
> случае небольшого приложения. (Но сам запускаю скриптом, mainWindow.css немного подправлен.)Да. Хотя если собирать пакет по всем правилам, то в Дебиане заколеблешься - уж больно они там заморочились с разными копирайтами и прочим. Но система сборки мне в принципе понравилась - тем же sbuild удобно пользоваться, когда разберёшься.
> А если создать подкаталог, например, "package", и положить туда вашу папку debian
> и PKGBUILD? (Подкаталог, чтобы майнтейнерам в будущем не мешало делать по-своему,
> как принято в конкретном дистрибутиве.)Да, я уже думал об этом. Скорее всего так и сделаю. Хотя для Арча - не обязательно. Я всё равно сам в AUR PKGBUILD поддерживаю. Но у меня где-то ещё спек для альтовского Сизифа лежал. Только его уже править надо.
В принципе если есть debian/, то можно в несколько движений запилить ppa для тех версий Ubuntu где зависимости на месте(я так понимаю из-за версии GTK текущий LTS не прокатит, а вот для дев-версии и будущего LTSа можно и сделать)Я бы положил debian/ в дерево исходников на гитхабе, что бы желающие могли либо себе собрать, либо сделать ppa
> Я бы положил debian/ в дерево исходников на гитхабе, что бы желающие
> могли либо себе собрать, либо сделать ppaДа, сделаю в следующем релизе. Заодно ещё наверно спек выложу для Альтовского Сизифа.
Весь процесс создания DEB пакета описан здесь - https://debian-net-install.blogspot.com/2023/12/mylibrary.html
Кстати, вопрос
Есть ли объединение одной книги на разных языках?
Ну то есть вот есть у меня в коллекции некая книга на чешском, российском и польском(Швейк конкретно с таким набором языков у меня) и она имеет свое название на каждом языке, у нее имя автора на каждом языке свое
Можно ли сказать "Вот эти три книги это одна книга на разных языках"?
Просто у меня библиотека имеет много подобных книг, бывает от 2 до 7-8 языков разных для одной книги и я пока просто выкручиваюсь приводя автора во всех файлах к его имени на его основном языке, что бы было проще искать
Было бы удобно иметь возможность задавать что вот тут переводы и просто получать выбор типа "На каком языке сегодня надо?"
Да, вопрос хороший.
Так же бывает, что как-бы одна книга, но разных изданий. Тот же Кнут или Корн.
Обычно такое в отдельном каталоге обитает.
> Было бы удобно иметь возможность задавать что вот тут переводы и просто
> получать выбор типа "На каком языке сегодня надо?"Такой возможности нет. Но в принципе - идея здравая. Посмотрю, что можно сделать.
В смысле - расширить сохраняемую в базе информацию за счёт года издания и переводчиков?
Второе по идее можно просто в одну строку сохранять и показывать, через ту же запятую.
> В смысле - расширить сохраняемую в базе информацию за счёт года издания
> и переводчиков?
> Второе по идее можно просто в одну строку сохранять и показывать, через
> ту же запятую.Тут, насколько я понял, речь о другом. Если у вас есть несколько экземпляров одной книги на разных языках, то удобно бы было, чтобы они все визуально отображались, как одна запись, с возможностью переключения языка. Т.е. файла например три, но для пользователя в поисковой выдаче они отображаются, как один, с возможностью выбора параметров для открытия соответствующего файла.
Если получится, можно сделать это опциональным?
Хотелось бы иметь возможность и видеть как есть, в смысле три файла физически - три записи видно.Поле с переводчиком(ами) тоже было бы удобно: помимо собственно различий в переводе, бывает, что в некоторых переводах текст сокращён.
Дата/издаьтельство тоже могут быть полезны.
Помню в давние времена пубертата перечитывая один из романов Чингиза Абдуллаева обнаружил отсутствие двух важных для контекста параграфов, причём выкинутых с грубой попыткой согласовать текст, - в издательстве, похоже, кто-то упоролся. Книги, правда, были ещё бумажные, но не суть.
> Если получится, можно сделать это опциональным?А по другому и не выйдет. Если бы все строго следовали стандартам при оформлении книг, ещё можно было бы попробовать делать в автомате. Но с тем бардаком, что творится с fb2 книгами - оно просто нереально. Плюсом - pdf и djvu вообще не предполагают хранения подобной информации. В pdf ещё есть варианты, но djvu - это по сути файл, в который упаковали несколько картинок-изображений страниц, и всё. Поэтому, если и реализую, то это будет только ручное объединение нескольких записей базы в одну. Кроме того, тут скорее всего придётся капитально переделывать формат базы, поэтому будет это скорее всего нескоро - возможно придётся ещё какую-нибудь программу сделать для конвертации базы в новый формат. Да и сам формат нужно продумать, чтобы потом не менять по десять раз для каждого нововведения.
> Поле с переводчиком(ами) тоже было бы удобно: помимо собственно различий в переводе,
> бывает, что в некоторых переводах текст сокращён.
> Дата/издаьтельство тоже могут быть полезны.Как доп. информацию - возможно сделаю. Но не в основной вывод поиска, иначе слишком перегруженным получится. Скорее всего, как пункт в выпадающем меню. Что то типа "Просмотреть полную информацию о книге".
Да, про поле для переводчиков поддержу
Например русские пересказы Толкина это просто ужас и нужно видеть кто там под рукой
Год издания или язык в fb2 иногда не указывают совсем (там в тегах вообще бардак нередок, к сожадению).
> там в тегах вообще бардак нередок, к сожадениюЭто да, я чего только там не видел. Хотя например для LibreOffice существует неплохое расширение, позволяющие сконвертировать файл в fb2 формат.
Похоже на мою курсовую 15 летней давности )
Не сдал?
Программа - просто ужас как внешне так и по функционалу. Автору не хватает очень многих знаний и узок кругозор в наш век Искусственного интеллекта и связанных с ним технологий.Но за то что он хоть что-то сделал, попытался и выставил на всеобщее обозрение, его надо похвалить, потому что ничего не делая, ничего не сделаешь. А если будешь что-то делать пусть и простенькое, страшненькое, с ошибками, то если не дурак, то проанализируешь и сделаешь в следующий раз лучше.
И совет автору - С++ - не лучший язык для создания GUI и работы с базfми данных с точки зрения быстроты разработки и последующих модификаций.
Для быстрого создания и модификации GUI и работы с Базами Данных есть Lazarus.
Не нравится Pascal, хочется чего-то более моднявого берите Python. У Python есть соответствующие библиотеки к Qt, SQLite, PostgreSql и т.д.
Хотите вебню - берите Javascript(node) и HTML/CSS - или непосредственно в браузер или в Electron
C++ надо использовать в очень сильно напряженных с точки зрения ресурсов приложениях, каковым эта програмулька не является.
> Программа - просто ужас как внешне так и по функционалу. Автору не
> хватает очень многих знаний и узок кругозор в наш век Искусственного
> интеллекта и связанных с ним технологий.Спасибо, посмеялся))
> Но за то что он хоть что-то сделал, попытался и выставил на
> всеобщее обозрение, его надо похвалить, потому что ничего не делая, ничего
> не сделаешь. А если будешь что-то делать пусть и простенькое, страшненькое,
> с ошибками, то если не дурак, то проанализируешь и сделаешь в
> следующий раз лучше.Спасибо.
> И совет автору - С++ - не лучший язык для создания GUI
> и работы с базfми данных с точки зрения быстроты разработки и
> последующих модификаций.
> Для быстрого создания и модификации GUI и работы с Базами Данных есть
> Lazarus.Любая база данных - это просто файл, оформленный по определённым правилам. Работа с файлами по большому счёту везде одинакова, независимо от ЯП - всё упирается в аппаратную часть. Более того, в целом совершенно не важно, какой ЯП вы используете - конечный результат всё равно будет в виде машинных инструкций. Которые в свою очередь не зависят от ЯП - всё снова упирается в аппаратную часть. С++ выбран потому, что он достаточно гибок и универсален: вы из него можете напрямую использовать большинство библиотек на С, делать ассемблерные вставки. А больше ничего и не нужно. При этом в самом языке есть всё, что нужно для нормальной работы с чем угодно.
> C++ надо использовать в очень сильно напряженных с точки зрения ресурсов приложениях,
> каковым эта програмулька не является.Уверены?)) Попробуйте пропарсить библиотеку гигабайте на 400, включив 8+ потоков обработки.
Нормальный "каталогизатор" минимум должен уметь выполнить такой запрос по поиску книги:"найти книги по языку программирования python на русском и английском языках, связанные с обработкой естественного языка с применением библиотеки tensorflow российских, американских или британских авторов нормальных изданий [с оценочным рейтингом читателей в 4-5 звезд - чтобы отсеить всякую индусскую билеберду]"
В идеале- он должен обрабатывать текст добавляемых в библиотеку книг и добавлять книгу в различные иерархии тегов, а если таковых нет, то на первых порах предлагать пользователю на базе найденных тегов создать эти иерархии, а потом делать это автоматически на базе самообучения.
Ваша программа это может?
А то, у меня такое ощущение, что вы как-то мои замечания приняли за придирку. И я не пойму куда требуется 8 потоков обработки - на разбор текста или еще для чего?
> Нормальный "каталогизатор" минимум должен уметь выполнить такой запрос по поиску книги:
> "найти книги по языку программирования python на русском и английском языках, связанные
> с обработкой естественного языка с применением библиотеки tensorflow российских, американских
> или британских авторов нормальных изданий [с оценочным рейтингом читателей в 4-5
> звезд - чтобы отсеить всякую индусскую билеберду]"Ну удачи такой найти. Если найдёте - расскажете.
> В идеале- он должен обрабатывать текст добавляемых в библиотеку книг и добавлять
> книгу в различные иерархии тегов, а если таковых нет, то на
> первых порах предлагать пользователю на базе найденных тегов создать эти иерархии,
> а потом делать это автоматически на базе самообучения.
> Ваша программа это может?В домашней библиотеке? Серьёзно? Зачем? Вы не в состоянии в голове держать, что вы уже прочитали и какого оно качества?
> А то, у меня такое ощущение, что вы как-то мои замечания приняли
> за придирку. И я не пойму куда требуется 8 потоков обработки
> - на разбор текста или еще для чего?Чтобы добавить файл книги в базу данных, его сначала нужно извлечь из архива (если он в таковой упакован), прочитать, вынуть из прочитанного нужную информацию. Последнее, кстати, может быть нетривиальной задачей. Потому что например для fb2 в целом существуют достаточно строгие и формализованные правила оформления файлов, но поскольку это всего лишь обычный текст с XML разметкой... Каждый изгаляется кто во что горазд. А теперь представьте, что у вас библиотека на пятьсот тысяч файлов (у меня такая под рукой - я на ней тесты проводил), упакованных в архивы. И вам нужно всю её распарсить за разумное время. Что лучше - обрабатывать несколько файлов одновременно или один? Изначально, кстати, MyLibrary работала в один поток, чтобы не нагружать излишне процессор. Но меня убедили (и правильно сделали), что в общем-то пользователь сам в праве решать, как ему нагружать систему. Поэтому на данный момент в MyLibrary используется не просто несколько потоков, а регулируемое самим пользователем их число.
И да, вы берётесь рассуждать про ИИ, но при этом мне нужно вам разъяснять такие вещи? А вы точно понимаете, о чём рассуждаете?
Спасибо автору. Функционала для чтения книг из LibRusEc (архивы объемом 326,2 ГиБ) для меня достаточно. Wine мне больше не требуется, держал из-за MyHomeLib, в основном.
В Debian 12 Net Expert Install LXDE, с использованием --no-install-recommends, без проблем установил из исходников. Затем собрал DEB пакет, из него установил программу в такой же, но "чистой" ОС, работает. Обращайтесь, кому нужен.
Весь процесс описан здесь - https://debian-net-install.blogspot.com/2023/12/mylibrary.html
freeLib гораздо более зрелым и симпатичным на линуксах является
https://github.com/petrovvlad/freeLib
Вот, вот это то что я прям искал, только для своих чертежей.Автор, спасибо, обязательно скачаю и буду изучать
че то у меня под linux не захотело запускатьсяхоть readme написанный на руском очень мило ,но инструкция явно не полная, команды не работают в распакованном архиве программа не запускается