The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Выпуск каталогизатора домашней библиотеки MyLibrary 5.0"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Выпуск каталогизатора домашней библиотеки MyLibrary 5.0"  +/
Сообщение от opennews (??), 06-Май-26, 08:19 
Состоялся релиз каталогизатора домашней библиотеки MyLibrary 5.0. Код программы написан на языке программирования С++ и доступен (GitHub, GitFlic) под лицензией GPLv3. Графический интерфейс пользователя реализован с помощью библиотеки Qt6. Программа адаптирована для работы в операционных системах семейства Linux и Windows. Для пользователей Arch Linux в AUR доступен сценарий сборки готового пакета. Для пользователей Windows доступен экспериментальный инсталлятор...

Подробнее: https://www.opennet.ru/opennews/art.shtml?num=65371

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по ответам | RSS]

1. Сообщение от Аноним (1), 06-Май-26, 08:19   +16 +/
Интерфейс конечно всратый. Сейчас, в эпоху ИИ, можно попросить нейронку, она нарисует нормальный интерфейс. А такой, только для любителей 90-х.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #4, #18, #24, #25, #27, #31, #38, #40, #64, #93

2. Сообщение от Sm0ke85 (ok), 06-Май-26, 08:19   +/
А будет работать со скачанной "библиотекой флибусты" на 220ГБ из зеленого магазинчика?

Просто сейчас там под линь скриптом можно доставать книги (это конечно не напрягает, но хочется больше функционала)

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #8, #22, #43, #44, #59, #63

3. Сообщение от Аноним (3), 06-Май-26, 08:22   +13 +/
Всегда захожу на скрины глянуть. Интерфейс менять не нужно. Это уже фишка.
Ответить | Правка | Наверх | Cообщить модератору

4. Сообщение от Sm0ke85 (ok), 06-Май-26, 08:22   +7 +/
>Интерфейс конечно всратый. Сейчас, в эпоху ИИ, можно попросить нейронку, она нарисует нормальный интерфейс. А такой, только для любителей 90-х.

Ты путаешь, это ж стиль Современный, просто с цветовой палитрой поиграли, погляди на ПО из 90х - там даже в консольных ТУИ-приложениях все ок (в т.ч. с тенями)...

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1

5. Сообщение от Аноним (5), 06-Май-26, 08:25   +/
>Графический интерфейс переведён на использование Qt6
>требуется поддержка компилятором стандарта C++20

Пример реального развития софта, а не обновление ради обновления.

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #14

6. Сообщение от Аноним (8), 06-Май-26, 08:33   +3 +/
MyLibrary + весь архив Флибуста = ❤️
Ответить | Правка | Наверх | Cообщить модератору

7. Сообщение от 16yo expert (?), 06-Май-26, 08:39   +1 +/
Глядя на этот кошмар на картинках хочется спросить - разве сегодня 1 апреля?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #32, #172

8. Сообщение от Аноним (8), 06-Май-26, 08:40   +1 +/
Зачем платить? Если можно заплатить только за интернет, а всё остальное с зелёного магазина.
Пока другие "грамотные потребители" платят подписки и лишаются доступа, другие направляют эти деньги на домашний сервер, где есть библиотека контента, в высоком качестве, с несколькими языковыми дорожками, нативно без лишних приложений, без DRM, без надуманных блокировок и без VPN, запланированного устаревания, оффлайн...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #11, #46, #62

9. Сообщение от anonymos (?), 06-Май-26, 08:59   +1 +/
"папки и файлы должны быть доступны по протоколу SMB" - это такой странный юмор?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #49, #91

10. Сообщение от Аноним (10), 06-Май-26, 08:59   +/
> Контроль целостности коллекции и её изменений осуществляется за счёт создания базы данных хэш-сумм файлов и архивов

А в каком формате хэш? Вот бы это можно было юзать для восстановления побитых файлов через p2p

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #17, #50

11. Сообщение от Bob (??), 06-Май-26, 09:04   +/
Слишком много барыг правообладателей задрали цены, отдавая авторам - копейки. Такое поддерживать не стоит. А на вой "правильных" - можно забить.

Налоги с покупок идут на чебурнетизацию - так вообще смысл какой чёт покупать? Залочат же. Инет)

На счёт сервера... Хз... А нужно ли каждому именно его деожать? Внешний hdd с роутером на open-wrt достаточно.

Устаревание - будет. Потребительский ширпотреб и лень - делают своё дело)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8

14. Сообщение от Bob (??), 06-Май-26, 09:19   –3 +/
И зачем оно надо? Это же читалка)

stdu viewer на винде, alreader на дроиде - вершина, которую не покорили до сих пор)
А софтины 10+ летних версий и работают отлично.

Можно с эпохи j2me и xp чёт вспомнить - аналогично)

А вот гонка за новым компилятором и фреймворком мне непонятна, смысл то в чём?

Вообще, пора бы базовый софт как PWA версии пилить, тогда все силы чисто в функционал вбрасывать можно.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5 Ответы: #35, #47

17. Сообщение от Bob (??), 06-Май-26, 09:21   +/
>юзать для восстановления побитых файлов через p2p

сам торрент перехэшируй, чудак

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10

18. Сообщение от Bob (??), 06-Май-26, 09:22   +10 +/
Тогда получше был)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1

22. Сообщение от anonymously (?), 06-Май-26, 09:37   +/
пример скрипта в студию?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #111

23. Сообщение от Pascal (??), 06-Май-26, 09:51   +1 +/
Блииииин, эта чо за GUI? Рак глаз получить можно.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #162

24. Сообщение от iPony128052 (?), 06-Май-26, 09:54   –1 +/
Да, та же самая мысль.
Скормить мощной нейронке с запросом "перепиши нормально".
Хуже уж точно не будет (особо уже некуда).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1

25. Сообщение от Жироватт (ok), 06-Май-26, 09:56   –1 +/
Аккуратнее, аффтырь как возьмет свою библиотеку разбора ХМЛ, да как придет к тебе домой, да как пересадит тебя на мессенджер "Коммунизм"...
Он знает, где ты живёшь - и твой дом скоро станет таким же!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #30

26. Сообщение от Жироватт (ok), 06-Май-26, 09:59   +1 +/
Аффтар! Почему ты забросил свои остальные программы?
Мессенджер сейчас как-никак куда более актуальная нонче весчь, чем книгоиндексилка.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #51

27. Сообщение от Аноним (27), 06-Май-26, 10:05   +/
Вы здесь новенький?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #127

28. Сообщение от Аноним (-), 06-Май-26, 10:07   +1 +/
> Графический интерфейс переведён на использование Qt6.

Ух черт, такое и из кутей можно забабахать?! :)

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #48, #53

29. Сообщение от Аноним (29), 06-Май-26, 10:10   +/
Вот после такого люди и говорят, что UI в Linux уродлив.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #161

30. Сообщение от Аноним (30), 06-Май-26, 10:31   –2 +/
Какое хорошее название у мессенджера! Надо брать!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25 Ответы: #165

31. Сообщение от Аноним (30), 06-Май-26, 10:34   +/
Хорошо, что молодым теперь есть, у кого попросить.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1

32. Сообщение от Аноним (30), 06-Май-26, 10:37   +1 +/
Глядя на парад комических артистов в комментариях, аналогичный вопрос!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7 Ответы: #164

33. Сообщение от Аноним (33), 06-Май-26, 10:40   +2 +/
Автору уважение за труд
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #58, #167

34. Сообщение от Аноним (34), 06-Май-26, 10:42   +1 +/
Зачем делать половину UI со светлым текстом на темном фоне, а вторую наоборот? Если удалить styles.css, то наверное будет дефолтная палитра от QT.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #54

35. Сообщение от Аноним (30), 06-Май-26, 10:46   +/
На Винде всё допотопное и окаменевшее не от хорошей жизни - сырцов нет.
А в Линуксе вполне разумно обновиться на С++20, ккоторый теперь у свежего GCC по умолчанию, чтобы меньше кода писать, и на Qt6, чтобы не держать десять почти одинаковых рантаймов в системе (и в памяти).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14

36. Сообщение от Аноним (36), 06-Май-26, 10:51   +/
Вот же ж, не успел... А я только собрался попросить упаковку в MLFBDPlugin сделать опциональной (но пусть галочка будет по умолчанию включена, чтобя поведение не менять).
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #57

37. Сообщение от Аноним (36), 06-Май-26, 10:55   +/
В сборочных файлах не увидел минимальную версию Qt. Возможно ли обойтись 6.4, как в Ubuntu'образных 24.04 LTS? (6.4.2, если полностью.)

6.2.4, как в Ubuntu'образных 22.04 LTS, наверное, уже будет не очень удобно...

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #61

38. Сообщение от Аноним (38), 06-Май-26, 11:18   +/
"Если правый глаз твой соблазняет тебя, вырви его и брось от себя" (Матв. 5:29)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #168

39. Сообщение от kusb (?), 06-Май-26, 11:42   +1 +/
Мне нравится графический интерфейс, хотя кажется немного дисгармоничным. Что со мной не так...
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #42

40. Сообщение от ProfessorNavigator (ok), 06-Май-26, 11:56   –2 +/
"Быть, а не казаться". Нейронка вполне может рисовать что угодно, меня же интересует то, что люди могут создать своими руками, что они хотят этим сказать. Что я сам могу нарисовать и создать. Это в целом.

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

С рисованием примерно аналогично - нарисовать "уважаемые" дизайнеры (нейронки) могут всё, что угодно. Дальше же встаёт вопрос конкретных графических библиотек, их возможностей, нюансов работы композиторов и т.д.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #92

42. Сообщение от Аноним (42), 06-Май-26, 12:02   +1 +/
— Этот интерфейс для аутистов
— А мне понравился!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #39 Ответы: #70

43. Сообщение от Джон Титор (ok), 06-Май-26, 12:14    Скрыто ботом-модератором+/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #88

44. Сообщение от ProfessorNavigator (ok), 06-Май-26, 12:14   –1 +/
> из зеленого магазинчика

Не уверен, что правильно понял эзопов язык. Но всё же рискну ответить - тестировалось это всё в том числе на одной... библиотеке на 500 с лишним гигабайт. Можно использовать идущий в комплекте inpx файл (загрузка базы примерно секунд 10 - 15), можно - создать нативную коллекцию. Оба варианта имеют свои нюансы. Inpx - некоторые ограничения по функционалу (основное всё работает - открытие книг, их копирование в произвольную папку), но при этом быстро, и записи в базе оформлены более аккуратно. Нативные коллекции - долго (зависит от конкретного железа, если книги на HDD, то часов 5-6 на индексирование всей коллекции на 8 потоках), записи в базе - берутся напрямую из файлов книг (а там они оформлены порой так, что мата не хватает, и проблемы с кодировками иногда), но при этом книг будет больше (в последних версиях сделано так, что программа будет "доставать" даже совсем сбойные), плюсом доступны все опции, вроде например возможности экспорта/импорта базы данных коллекции или её ручной редактуры.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #81

46. Сообщение от Джон Титор (ok), 06-Май-26, 12:15   +1 +/
Нынче, к сожалению, не всё можно купить
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8

47. Сообщение от ProfessorNavigator (ok), 06-Май-26, 12:30   +/
> А вот гонка за новым компилятором и фреймворком мне непонятна, смысл то в чём?

В данном конкретном случае никакой гонки нет. До этого интерфейс был на GTK4 (gtkmm), если же переводить его на Qt - что было проделано - то логично, по-моему, брать актуальную версию фреймворка.

Со стандартом история немного другая. В С++20 были введены функциональные возможности, которые нужны для работы программы. До этого всё это нужно было реализовывать руками, теперь же - просто вызов функции из стандартной библиотеки ЯП. Иными словами - меньше возни с кодом. При этом актуальные для большинства дистрибутивов версии компиляторов более-менее нормально поддерживают новый стандарт (ему так-то уже 6 лет). Поэтом было принято решение о переходе.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14

48. Сообщение от Жироватт (ok), 06-Май-26, 12:38   +/
Если постараться, да еще и этих новых кедовых виджетов налить...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #28 Ответы: #52, #155

49. Сообщение от ProfessorNavigator (ok), 06-Май-26, 12:43   +/
> "папки и файлы должны быть доступны по протоколу SMB" - это такой странный юмор?

Уже отвечал в прошлый раз, но повторюсь. Никаких специальных возможностей для работы с сетью в MyLibrary на данный момент нет. Они есть в планах. Всё, что есть сейчас, достигается за счёт правильного оформления кода. С сетью в данном случае взаимодействуют прослойки - gvfs, kio-fuse и т.п. - в MyLibrary просто используются соответствующие имена файлов (в них присутствует указание на протокол). Т.е. в стандартные функции С++ (std::fstream) отправляется правильно оформленный путь файла, дальше вызов обрабатывается ОС. Как она это делает - зависит полностью от неё. В теории может быть использован и другой протокол, но тестировалось это всё на SMB. Подразумевается, что это всё будет использоваться в локальных сетях. На свой страх и риск.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9 Ответы: #129

50. Сообщение от ProfessorNavigator (ok), 06-Май-26, 12:47   +/
> А в каком формате хэш?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10

51. Сообщение от ProfessorNavigator (ok), 06-Май-26, 12:54   +/
> Мессенджер сейчас как-никак куда более актуальная нонче весчь, чем книгоиндексилка.

Вы правы в целом. Но автор - один, и его на всё не хватает. Уже пару раз принимался за приведение в порядок мессенджера. А дальше... Нужна база данных, её нужно на чём-то обкатать. Обкатываем на MyLibrary, но для этого оказалось нужно большую часть библиотеки MlBookProc переписать. Поскольку переписывается библиотека - нужно адаптировать GUI, при этом были планы перевести всё это на Qt (который должен к тому же быть задействован в новой версии мессенджера - т.е. тоже неплохо бы на чём-нибудь обкатать). В результате - 3 месяца возни с MyLibrary.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #26 Ответы: #60

52. Сообщение от ProfessorNavigator (ok), 06-Май-26, 12:56   +/
> кедовых виджетов налить...

Нет ни одного, всё исключительно на "голом" Qt.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #48

53. Сообщение от ProfessorNavigator (ok), 06-Май-26, 12:57   +/
> Ух черт, такое и из кутей можно забабахать?! :)

Как видите))

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #28

54. Сообщение от ProfessorNavigator (ok), 06-Май-26, 12:58   +/
> наверное будет дефолтная палитра от QT.

Загляните в настройки ;)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #34

55. Сообщение от Аноним (117), 06-Май-26, 13:06   +/
>Улучшена работа библиотеки разбора xml файлов

Произведена косметическая перепланировка, без решения хоть каких-то серьёзных проблем.

https://github.com/ProfessorNavigator/mylibrary/blob/867768e...
Как раз для таких вещей и придуман rust, а если точнее, то концепция владения. Впрочем, если писать на rust не хочется, то можно взять либо язык со сборщиком мусора, либо, взять слабые указатели. Даже не смотря на то, что я не пишу на плюсах, я о них знаю. Спасибо автору за подсказку в коде. Использование сырых указателей - прямой способ побить память.

https://github.com/ProfessorNavigator/mylibrary/blob/867768e...
Вот что происходит, когда парсер пишется без лексера. Код
<elem attr="a>b"/>
является валидным. Даже если бы автор писал на парсер комбинаторах, то данной примитивной ошибки у него бы не было. Но, даже если не учитывать это, то всё равно, данный подход медленный.

https://github.com/ProfessorNavigator/mylibrary/blob/867768e...
https://www.w3.org/TR/REC-xml/#sec-starttags
> STag       ::=       '<' Name (S Attribute)* S? '>'
> S       ::=       (#x20 | #x9 | #xD | #xA)+

https://github.com/ProfessorNavigator/mylibrary/blob/867768e...
> S       ::=       (#x20 | #x9 | #xD | #xA)+

https://github.com/ProfessorNavigator/mylibrary/blob/867768e...
Кто нибудь, расскажите автору про переиспользование кода.
https://github.com/ProfessorNavigator/mylibrary/blob/867768e...
Автор добавляет лишние выделения памяти на ровном месте. Практически везде, где есть push_back, повторяется одна и та же ошибка.
https://github.com/ProfessorNavigator/mylibrary/blob/867768e...
В HTML слеш абсолютно никак не мешает, его опускать совершенно не нужно, так как очень легко потом потерять место, где он нужен.

А вообще, я бы рекомендовал автору не исправлять данные ошибки, а заменить парсер на нормальный, поскольку xml большой и сложный, и реализовывать его самому - долго.

Было бы очень интересно посмотреть на ревью c++ кода, но к сожалению, местные сишники молчат.

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #67, #78, #174

56. Сообщение от Анонимище (?), 06-Май-26, 13:09   +/
Прошу меня простить, я в танке: что такого можно сделать с софтом-катологизатором что будет проблематично сделать через файловую систему? У меня есть куча файлов которые неплохо бы катологизировать
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #68, #76

57. Сообщение от ProfessorNavigator (ok), 06-Май-26, 13:16   +/
Ну так-то fbd - подразумевает наличие архива. Если я правильно понимаю, вы используете плагин для создания fb2? Или подразумеваются некие другие варианты использования?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #36 Ответы: #65

58. Сообщение от ProfessorNavigator (ok), 06-Май-26, 13:17   +/
Спасибо.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #33

59. Сообщение от zraz (?), 06-Май-26, 13:28   +1 +/
Будет, она в некоторых раздачах идет в комплекте. Но удобнее что-нибудь вроде inpx-web использовать (если раздача только с fb2).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #83, #121

60. Сообщение от Сыровато (?), 06-Май-26, 13:41   +/
Стрёмно это, когда человек любит говорить о себе в третьем лице.
Да и к человеку на "ты", а он в ответ на "вы".
Похоже цветовая схема и GUI его катологизатора книг такие не с проста, а шизофренией отдают.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #51 Ответы: #77, #171, #182

61. Сообщение от ProfessorNavigator (ok), 06-Май-26, 13:49   +/
В теории всё должно работать вплоть до версии 6.0. Тут будет другая проблема скорее всего. Соответствующие версии компиляторов не всегда полностью поддерживают стандарт C++20. И с OpenMP там могут быть нюансы.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #37 Ответы: #66

62. Сообщение от Аноним (62), 06-Май-26, 14:06   +/
Многого не найти, а какие-то хочется настоящие бумажные, например:
«Узкий коридор» 2019.
«Почему одни страны богатые, а другие бедные» 2012.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8

63. Сообщение от derfenix (ok), 06-Май-26, 14:09   +1 +/
Я просто opds сервер на гошке написал, который с этим архивом работает, использует приложенный inpx файл в качестве каталогизатора, напрямую из архивов отдаёт книжки по запросу. Просто захожу с читалки, скачиваю книги какие надо и читаю в чём удобно и где удобно. Гуй отдельный для этого не нужен совершенно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2

64. Сообщение от Аноним (92), 06-Май-26, 14:19   +3 +/
> можно попросить нейронку, она нарисует нормальный интерфейс

Да не нужно никого не о чем просить: автору достаточно было не трогать цвета, и Qt сам бы использовал те, которые выглядят адекватно текущей платформе.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1

65. Сообщение от Аноним (36), 06-Май-26, 14:23   +/
Нет, для создания файла FBD подумал приспособить (упаковывать просто рано пока).

Пока пишу, вспомнил про fb2edit: для создания/редактирования книг, говорят, не очень, но нужен только description, надо посмотреть.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #57

66. Сообщение от Аноним (36), 06-Май-26, 14:26   +/
Я уже при сборке встрял на CMakeLists.txt:22

> qt_collect_translation_source_targets(i18n_targets DIRECTORY src)

доступно только в Qt >= 6.7.
Пока не смотрел, можно ли обойти.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #61 Ответы: #73

67. Сообщение от iPony128052 (?), 06-Май-26, 14:31   +3 +/
> Было бы очень интересно посмотреть на ревью c++ кода, но к сожалению, местные сишники молчат.

А смысл ковыряться в этом?

Да и какая разница на всякие мелочи (какой-то там push_back в одной строчке), если в целом код один сплошной ужас.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #55 Ответы: #69, #75

68. Сообщение от Аноним (77), 06-Май-26, 14:32   +/
Навскидку, поиск по тэгам, атрибутам; подборки для будущих чтений; единое хранение - множество представлений коллекции.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #56

69. Сообщение от Аноним (77), 06-Май-26, 14:34   +/
Код вероятно писался "для себя как могу". Судить строго нельзя.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #67 Ответы: #71, #123

70. Сообщение от Аноним (77), 06-Май-26, 14:50   +/
Для любителей чтения норм.
Современные интерфейсы тоже требуют адаптации. Ещё и изменяются по непонятным причинам. Так что в это время был занят чтением и не следил за модной тусовкой, норм. Не нужно сбрасывать фактор непохожести на рынке. Цвета можно позволить менять пользователю.
PS: Почему такая агрессия и оскорбление для непохожих? Это тоже говорит о Вас.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #42 Ответы: #140

71. Сообщение от Аноним (117), 06-Май-26, 14:50   +/
>Судить строго нельзя.

Некоторое время назад, данный автор негативно высказывался про rust, и в качестве примера того, что c++ ничуть не хуже, скинул ссылку на этот проект.

Пока что ни один из критиков rust-а не показал свой код хорошего качества.

Лично я не пишу ни на rust ни на c++, но мне надоели проекты с ошибками.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #69 Ответы: #72, #74

72. Сообщение от Аноним (77), 06-Май-26, 14:53   +/
Ну если Вы не нашли уязвимости с памятью, то нежелание нырять в сложность и непривычность rust не стоит осуждать, вроде.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #71 Ответы: #90

73. Сообщение от ProfessorNavigator (ok), 06-Май-26, 14:54   +/
> Пока не смотрел, можно ли обойти.

Уберите эту строку вообще, и в qt_add_translations уберите SOURCE_TARGETS ${i18n_targets}. По идее всё должно нормально собраться. Забыл просто переделать, 4 отдельных проекта разом в релиз отправлять - многовато, потому и недоглядел (в плагинах аналогично).

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #66 Ответы: #104

74. Сообщение от Аноним (77), 06-Май-26, 14:55   +/
Да и как тут воспользоваться уязвимостями? Прислать метаинфу вместе с архивом от друга? Тэги пользователь сам расставляет в оболочке.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #71

75. Сообщение от Аноним (77), 06-Май-26, 14:59   –1 +/
>А смысл ковыряться в этом?

Профессионалы так заняты на работе, что у них нет времени для написания кода для людей?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #67 Ответы: #79, #122

76. Сообщение от ProfessorNavigator (ok), 06-Май-26, 15:01   +/
Уже отвечал не раз. Представьте, что к вам попал архив тысячи так на 3 книг. И все имена файлов вида 123456.fb2. А если в этом архиве внутри другие архивы?

В целом же, как опять же не раз писал - я ни на чём не настаиваю. Если вас устраивает использование файловой системы - пользуйтесь.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #56 Ответы: #80, #85, #125

77. Сообщение от Аноним (77), 06-Май-26, 15:07   +/
Монархи тоже говорят о себе в третьем лице.) Взгляд на себя со стороны (и не только, учитывая агрессию здесь). Кроме того есть еще автор у проекта. И распределение вклада авторов нам неизвестно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #60 Ответы: #94, #183

78. Сообщение от ProfessorNavigator (ok), 06-Май-26, 15:08   –1 +/
И снова здравствуйте, рад что вы с нами)) Единственно - вы меня пожалуйста в следующий раз предупреждайте, когда будете новости про один не к ночи помянутый ЯП публиковать. Я на другой день публикацию новости перенесу. А то пользы от вас ноль - раньше хоть код тестировали, теперь уже просто набрасываете. А нормальные люди хотят нормально обсудить выпуск, а не вот это читать (ну реально - вы б хоть какой тест запустили что ли, посмотрели как оно всё работает, мне тоже интересно).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #55 Ответы: #95, #100, #110

79. Сообщение от ProfessorNavigator (ok), 06-Май-26, 15:10   –5 +/
Не обращайте внимания, местные Ржавые меня очень любят)) Я пару раз не удержался - поглумился от души, они никак забыть не могут.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #75 Ответы: #103

80. Сообщение от Анонимище (?), 06-Май-26, 15:12   +/
У меня есть файлы книг, но в некоторых случаях к книгам прилагаются дополнительные файлы (вроде образа диска или вспомогательного софта который я сам нашел), Ваш катологизатор может работать с такими кейсами?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #76 Ответы: #86

81. Сообщение от Sm0ke85 (ok), 06-Май-26, 15:28   +/
>[оверквотинг удален]
> функционалу (основное всё работает - открытие книг, их копирование в произвольную
> папку), но при этом быстро, и записи в базе оформлены более
> аккуратно. Нативные коллекции - долго (зависит от конкретного железа, если книги
> на HDD, то часов 5-6 на индексирование всей коллекции на 8
> потоках), записи в базе - берутся напрямую из файлов книг (а
> там они оформлены порой так, что мата не хватает, и проблемы
> с кодировками иногда), но при этом книг будет больше (в последних
> версиях сделано так, что программа будет "доставать" даже совсем сбойные), плюсом
> доступны все опции, вроде например возможности экспорта/импорта базы данных коллекции
> или её ручной редактуры.

Спасибо.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #44

83. Сообщение от Sm0ke85 (ok), 06-Май-26, 15:29   +/
> Будет, она в некоторых раздачах идет в комплекте. Но удобнее что-нибудь вроде
> inpx-web использовать (если раздача только с fb2).

Попробую, спасибо

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #59

85. Сообщение от Анонимище (?), 06-Май-26, 15:39   +/
> Уже отвечал не раз. Представьте, что к вам попал архив тысячи так
> на 3 книг. И все имена файлов вида 123456.fb2. А если
> в этом архиве внутри другие архивы?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #76 Ответы: #87

86. Сообщение от ProfessorNavigator (ok), 06-Май-26, 15:43   +/
> У меня есть файлы книг, но в некоторых случаях к книгам прилагаются
> дополнительные файлы (вроде образа диска или вспомогательного софта который я сам
> нашел), Ваш катологизатор может работать с такими кейсами?

Если правильно понял, у вас есть условный pdf документ, а рядом с ним лежат некие вспомогательные материалы? Или материалы встроены в сам файл?

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

Если есть необходимость добавить в коллекцию какие-то не поддерживаемые файлы, то воспользуйтесь плагином для создания fbd файлов. Будет создан архив с вашим файлом и файлом fbd, в котором будут находиться указанные вами метаданные. При обработке такого архива MyLibrary будет извлекать метаданные из fbd файла (то, что используется в базе данных - то, что вы видите, как результаты поиска), а открывать (при необходимости) "оригинальный" файл, в программе установленной, как обработчик данного типа файлов в настройках вашей ОС.  


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #80 Ответы: #99

87. Сообщение от ProfessorNavigator (ok), 06-Май-26, 15:45   +/
> Не думаю что это честное сравнение, упорядоченой базы с книгами и беспорядочного
> набора файлов. Например, книжки можно аккуратно разложить по папочкам, с подпапками
> и текстовыми файлами для релевантных файлов и информации (вроде образа диска
> идущему вкупе с книгой, релевантных веб-ссылок, издания книги на другом языке)

Так я ж говорю - без проблем. Если вам удобней так - делайте так. Я ни на чём не настаиваю. Программа предоставляется по принципу: нужно оно кому-то - хорошо, нет - на нет и суда нет.


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #85 Ответы: #96

88. Сообщение от Sm0ke85 (ok), 06-Май-26, 15:47   +/
>Хм... а там есть книги по русскому языку 1-11 класс? Пусть даже старые.

А тебе зачем?)))

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #43 Ответы: #159

90. Сообщение от Аноним (117), 06-Май-26, 15:48   +/
>Ну если Вы не нашли уязвимости с памятью

Что за попустительское отношение? Обычные баги вас уже не интересуют?
>то нежелание нырять в сложность и непривычность rust

В мире существует гораздо больше языков, чем rust и c++. Есть как минимум языки со сборкой мусора.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #72

91. Сообщение от Аноним (91), 06-Май-26, 15:49   +/
Автор в прошлый раз обещал сделать на NFS.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9

92. Сообщение от Аноним (92), 06-Май-26, 15:54   +3 +/
> К написанию же кода не буду их привлекать никогда
> Потому что хорошо понимаю техническую сторону вопроса, и насмотрелся той дичи, которую они выдают

А зря не привлекаете. Хотя бы для ревью. Они бы вам, например, предложил вот этого дичайший и кривой индусокод заменить буквально одной шаблонной функцией на std::endian и std::bit_cast:

https://github.com/ProfessorNavigator/libudb/blob/main/src/B...

И сказал бы, что еще с C++ в <algorithm> существуют распараллеленные версии вместо вот этих ваших велосапедов с UB и состояними гонок:

https://github.com/ProfessorNavigator/libudb/blob/main/inclu...

И что у std::vector банально есть оператор ==, и поэтому для их сравнения совсем не нужно писать индусокод с циклами:

https://github.com/ProfessorNavigator/libudb/blob/e70df212cb...

И на банальную копипасту тоже бы указал:

https://github.com/ProfessorNavigator/libudb/blob/e70df212cb...

И на логические ошибки:

https://github.com/ProfessorNavigator/libudb/blob/e70df212cb...

И на молчаливый рекурсивный снос всей директории через filesystem::remove_all() перед записью файла:

https://github.com/ProfessorNavigator/libudb/blob/e70df212cb...

И тьму других косяков.

И это только беглый просмотр вашего libudb. Что творится в основном проекте - и представить страшно.

> Потому что хорошо понимаю техническую сторону вопроса

По вашему коду очевидно, что нет, не понимаете. А по комментариям - что понимать и не хотите.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #40 Ответы: #120

93. Сообщение от Аноним (93), 06-Май-26, 15:57   +1 +/
> Сейчас, в эпоху ИИ, можно попросить нейронку, она нарисует нормальный интерфейс.

сделай доброе дело, попроси!

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1

94. Сообщение от Аноним (93), 06-Май-26, 16:02   +/
> Монархи тоже говорят о себе в третьем лице.

Ни одного одаренного монарха не встречал, одни бездари, с чем это связано?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #77 Ответы: #98

95. Сообщение от Аноним (117), 06-Май-26, 16:04   +2 +/
>один не к ночи помянутый ЯП публиковать

Один это какой? Вот вам другой язык, держите, почитаете как правильно парсеры писать https://dev.realworldocaml.org/parsing-with-ocamllex-and-men... Или вот ещё пример https://thedeemon.livejournal.com/1155.html

И потом, могли бы взять условный golang, там xml парсер идёт прямо в стандартной библиотеке.
>раньше хоть код тестировали

Я не тестировал ваш код ни разу. Я прочитал парсер и нашёл в нём ошибки, как и в прошлые разы. Зачем мне его запускать, если я ещё до запуска знаю, где есть проблемы?
>вы б хоть какой тест запустили что ли

Я вам привёл конкретные ошибки, с номерами строк. Вам непонятно описание?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #78 Ответы: #138, #177

96. Сообщение от Анонимище (?), 06-Май-26, 16:15   +/
Я сам придерживаюсь принципа "живи и дай жить другим". У меня просто чувство что я не просек "фишку" такого рода софта, вот почему спрашиваю
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #87 Ответы: #135

98. Сообщение от Аноним (77), 06-Май-26, 16:24   +/
Не всё зависит от одного человека?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #94

99. Сообщение от Анонимище (?), 06-Май-26, 16:25   +/
1.

>Если правильно понял, у вас есть условный pdf документ, а рядом с ним лежат некие вспомогательные материалы?

Да, например iso который при прочтении книги я могу захотеть примонтировать. Поэтому хотелось бы чтобы я мог кликнуть в интерфейсе программы и мне открылась бы папка с дополнительными материалами для этой книги, чтобы не искать где у меня в дербрях файловой системы этот iso зарыт


И еще вопросы. А можно ли ...

2.Чтобы книга была распознана как одна, но как бы в нескольких ипостасях? Например, разные издания одной и той же книги, или разные переводы.

3.Приучить программу добавлять информацию об книге из сторонних текстовых файлов? Например я обычно кладу файл URLs.txt в папку с книгой, там обычно список релевантных для книги веб-ссылок

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #86 Ответы: #134

100. Сообщение от Аноним (103), 06-Май-26, 16:31   +2 +/
все с тобой ясно - у тебя реально проблемы с головой, не зря ты фанат коммунизма
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #78 Ответы: #139

103. Сообщение от Аноним (103), 06-Май-26, 16:39   +6 +/
> они никак забыть не могут

тебя не могут вспомнить, пока ты снова не возвращаешься со своими шизоидным бракодельем

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #79

104. Сообщение от Аноним (36), 06-Май-26, 16:47   +/
Спасибо, только уточнение: заработало после удаления и TARGETS, т.е. в таком виде пошла сборка

> qt_add_translations(
>    MyLibrary
>    TS_FILES translations/MyLibrary_ru_RU.ts
>)

2. Далее ругается на функции archive_entry_filetype_is_set и archive_entry_perm_is_set в MLBookProc/src/LibArchive.cpp.
Как оказалось, они были добавлены в libarchive в https://github.com/libarchive/libarchive/commit/8acb738db6bc...
и пошли в 3.7.3. А в Ubuntu и производных весрия 24.04 содержит... 3.7.2 :)))
Не понял только, можно ли это как-то обойти.

3. У меня libarchive обновлён, поэтому обновил его и в chroot-окружении, далее валится

> src/BookDetailsWindow.cpp:232:11: error: no match for 'operator+=' (operand types are 'QString' and 'const std::string' {aka 'const std::__cxx11::basic_string<char>'})
>  232 |       str += it_b->content;

Компилятор накидал, конечно, candidate'ов. но, как говорится, не в коня корм: я не программист, тут не осилил с разбегу.

Может кто-то грамотный отпишется на GitHub/GitFlic, может даже с PR.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #73 Ответы: #112

106. Сообщение от Ахз (?), 06-Май-26, 16:57   +/
Хотелось бы видеть всю палитру, мало цветов
Ответить | Правка | Наверх | Cообщить модератору

107. Сообщение от Аноним (107), 06-Май-26, 16:57   +/
А какое отличие данного продукта от calibre?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #109

109. Сообщение от Аноним (36), 06-Май-26, 17:03   +/
Файлы не трогает, вообще - ни расположение, ни содержимое (ЕМНИП, закладки хранит отдельно).

Ну из плюсов ещё: конвертировать не умеет, поэтому в EPUB в contributor с opf:role="bkp" не лезет.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #107

110. Сообщение от Аноним (92), 06-Май-26, 17:05   +/
> вы б хоть какой тест запустили что ли

А у вас в репозитории есть тесты, лол? Юнит-тесты, тесты на чтение/запись форматов файлов... Вы о таком даже не слышали.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #78 Ответы: #137

111. Сообщение от Sm0ke85 (ok), 06-Май-26, 17:08   +/
>пример скрипта в студию?

https://codeberg.org/aku4wb/flbs

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #22

112. Сообщение от ProfessorNavigator (ok), 06-Май-26, 17:11   +/
> Спасибо, только уточнение: заработало после удаления и TARGETS, т.е. в таком виде пошла сборка

Да, в более старых версиях Qt такое может быть.

> 2. Далее ругается на функции archive_entry_filetype_is_set и archive_entry_perm_is_set в > MLBookProc/src/LibArchive.cpp.
> Как оказалось, они были добавлены в libarchive в https://github.com/libarchive/libarchive/commit/8acb738db6bc...
> и пошли в 3.7.3. А в Ubuntu и производных весрия 24.04 содержит... 3.7.2 :)))
> Не понял только, можно ли это как-то обойти.

Да, обойти можно. Но там патчем в одну строчку не обойтись, подумать надо.

> str += it_b->content;

Это я тоже не доглядел - видимо в новых версиях Qt наконец-то "завезли" для QString конструктор из std::string, поэтому у меня компилятор на это не ругается. Поправить можно следующим образом:

str += it_b->content.c_str();

В целом - спасибо за замечания, постараюсь в ближайшее время выпустить корректирующий релиз. Если найдёте что-то ещё - пишите.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #104 Ответы: #117, #124

117. Сообщение от Аноним (117), 06-Май-26, 17:35   +/
>Это я тоже не доглядел - видимо в новых версиях Qt наконец-то "завезли" для QString конструктор из std::string

Для того, чтобы не сталкиваться с такими проблемами, изобретена контейнеризациция. Но вы ведь противник данного подхода, не так ли?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #112

120. Сообщение от ProfessorNavigator (ok), 06-Май-26, 17:51   –2 +/
> А зря не привлекаете. Хотя бы для ревью. Они бы вам, например,
> предложил вот этого дичайший и кривой индусокод заменить буквально одной шаблонной
> функцией на std::endian и std::bit_cast:
> https://github.com/ProfessorNavigator/libudb/blob/main/src/B...

И это уже ошибка. Потому что для начала нужно бы заглянуть в CMake файл и посмотреть, какой там стандарт С++ указан.

> И сказал бы, что еще с C++ в <algorithm> существуют распараллеленные версии
> вместо вот этих ваших велосапедов с UB и состояними гонок:
> https://github.com/ProfessorNavigator/libudb/blob/main/inclu...

Да что вы говорите, правда-а? А я и не знал... Только вот внезапно в прошлых версиях всё это было (в BaseKeeper, и к <algorithm> там должен ещё <execution> прилагаться, сюрприз, не правда ли?). А потом исчезло. Тоже внезапно. Или нет.

> И что у std::vector банально есть оператор ==, и поэтому для их
> сравнения совсем не нужно писать индусокод с циклами:
> https://github.com/ProfessorNavigator/libudb/blob/e70df212cb...

А вы уверены, что он нормально будет работать так, как нужно вам? Во всех компиляторах?

> И на банальную копипасту тоже бы указал:
> https://github.com/ProfessorNavigator/libudb/blob/e70df212cb...

Единственное ценное замечание

> И на логические ошибки:
> https://github.com/ProfessorNavigator/libudb/blob/e70df212cb...

Там никакой ошибки нет. Т.е. это уже чушь пошла.

> И на молчаливый рекурсивный снос всей директории через filesystem::remove_all() перед
> записью файла:
> https://github.com/ProfessorNavigator/libudb/blob/e70df212cb...

Тоже чушь.

> И тьму других косяков.
> И это только беглый просмотр вашего libudb. Что творится в основном проекте
> - и представить страшно.

Не представляйте - вам всё равно не поможет))

> По вашему коду очевидно, что нет, не понимаете. А по комментариям -
> что понимать и не хотите.

Да-да, действительно.

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

Уверены?))

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

О-да)))


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #92 Ответы: #175

121. Сообщение от Аноним (121), 06-Май-26, 18:15   +/
> (если раздача только с fb2).

а что не так c раздачами, в которых включены usr архивы? Все также хорошо работает.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #59

122. Сообщение от iPony128052 (?), 06-Май-26, 18:16   +/
По разному, вообще бывает. Но не отменяет выше написанного.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #75

123. Сообщение от iPony128052 (?), 06-Май-26, 18:21   +/
Так выше предлагалось профессионалам по плюсами делать ревью.

Если бы мне на работе такое дали бы, то я либо заявление по собственному написал бы (что я в такой компании бы делал бы), либо заявление на увольнение автора такого кода.

Естественно я сам было дело сколотил этакий домик из ящиков на даче.
Но странно бы, чтобы его оценивали профессионалы строители: как там стены не по ГОСТУ, а фундамент?

Это не имеет смысла. Не тот уровень.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #69

124. Сообщение от Аноним (36), 06-Май-26, 18:55   +/
> str += it_b->content.c_str();

В других местах именно так, "str += it_b->content;" только в одном месте.

Ещё

> mlarchiverplugin/src/MainWindow.cpp:43:11: error: 'qApp' was not declared in this scope
>   43 |           qApp->installTranslator(translator);

Поискал в исходниках, нашёл эту qApp в MLArchiverPlugin.cpp, там после

> #include <MainWindow.h>

ещё

> #include <QApplication>

Добавил в MainWindow.cpp - собралось. (В остальных местах, включая ExamplePlugin.cpp, этот  include есть.)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #112 Ответы: #143

125. Сообщение от Аноним (92), 06-Май-26, 19:06   +/
> архив тысячи так на 3 книг. И все имена файлов вида 123456.fb2.

Трудно представить еще более нереалистичный и притянутый за уши сценарий.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #76 Ответы: #136

126. Сообщение от Аноним (127), 06-Май-26, 20:02   +/
> Графический интерфейс переведён на использование Qt6

Ого, а почему Qt6 такой страшный? Это же хуже даже мотива прошлого века.

Ответить | Правка | Наверх | Cообщить модератору

127. Сообщение от Аноним (127), 06-Май-26, 20:04   +/
А что, линукс-софт сейчас весь такой?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #27

128. Сообщение от Аноним (128), 06-Май-26, 20:06   +/
А мне кажется, или цвета программы стали лучше того, что было несколько месяцев назад?
Ответить | Правка | Наверх | Cообщить модератору

129. Сообщение от Аноним (127), 06-Май-26, 20:10   +/
> Т.е. в стандартные функции С++ (std::fstream) отправляется правильно оформленный путь файла, дальше вызов обрабатывается ОС.

Если обрабатывает ОС, зачем упоминание какого-то SMB? ОС может хоть sshfs обработать, но об этом же в статье не написано почему-то.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #49 Ответы: #148

130. Сообщение от Аноним (127), 06-Май-26, 20:22   +/
FBReader куда лучше выглядит.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #132

132. Сообщение от Аноним (132), 06-Май-26, 20:36   –2 +/
Сравнить каталогизатор с читалкой. Это мощно!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #130 Ответы: #163

133. Сообщение от Аноним (133), 06-Май-26, 20:53   +/
Ткнул первый попавшийся файлик. Пусть это будет AddBooksWindow.cpp...

1. Про QStringLiteral автор не в курсе вообще. Каждый QString создаётся в рантайме путём парсинга из char *.

2. Логика с интерфейсом, ну это классика. Всё в одном файле. В долгосрочной перспективе поддерживать такое будет нереально.

3. Куча setObjectName. Зачем??? Где-то планируется обращение по имени объекта?

4. connect-ы с лямбдами без указания объекта-назначения. Сегфолты ловить потом запаришься.

5. Вот это вообще шЫдевр:
for(size_t i = 0; i < act_list.size(); i++) { delete act_list[i]; }
Про qDeleteAll автор не в курсе вообще. Но это ещё простительно. Хуже, в этом списке объекты класса QAction. Чего бы не указать parent и не париться на счёт их удаления вообще?

6. Дальше ещё веселее. Начиная со строки 71 идёт использование QDir, которое потом внезапно превращается в std::filesystem. Соответственно, постоянная пляска с преобразование QString в std::string и наоборот. Возникает резонный вопрос, а почему не использовать QDir дальше? Фильтровать файлы и каталоги оно отлично умеет.

Дальше смотреть не стал, ибо влом.

Вывод. Проект очень похож на результат вайбкотинга. Даже удивительно, как оно собирается и не падает. Определённо, надо получше выучить библиотеку Qt и начать её нормально использовать. Это позволит убрать до 40% лишнего кода. Вопрос только в том, есть ли в этом какой-то смысл.

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #142, #145, #146, #178

134. Сообщение от ProfessorNavigator (ok), 06-Май-26, 21:10   +/
> Да, например iso который при прочтении книги я могу захотеть примонтировать. Поэтому хотелось бы чтобы я мог кликнуть в интерфейсе программы и мне открылась бы папка с дополнительными материалами для этой книги, чтобы не искать где у меня в дербрях файловой системы этот iso зарыт

В целом такого нет, но можно отрыть контекстное меню на книге, там есть пункт "Информация о книге". Откроется окно, левую его половину можно промотать в самый низ, там будет указан полный путь к книге, включая путь в архиве (если книга упакована).

> 2.Чтобы книга была распознана как одна, но как бы в нескольких ипостасях? Например, разные издания одной и той же книги, или разные переводы.

На мой взгляд нецелесообразно. Эвристика этого дела будет достаточно сложной, что замедлит выдачу поисковых результатов и усложнит базу данных. Кроме того, неизбежно будут ошибки в группировке, не в последнюю очередь из-за кривого оформления файлов. А также из-за текстовых кодировок. Сравнение двух строк на языке, отличном от английского - уже на самом деле нетривиальная операция. Вам для начала нужно привести эти строки к одной кодировке, потом желательно - к одному регистру, и только после этого сравнивать. Если вы некорректно определите кодировку (а такое бывает сплошь и рядом, особенно с короткими строками), то результат может быть... интересным ("кракозябры" вместо текста, думаю, знакомы всем).

> 3.Приучить программу добавлять информацию об книге из сторонних текстовых файлов? Например я обычно кладу файл URLs.txt в папку с книгой, там обычно список релевантных для книги веб-ссылок

Уже есть, но в другом формате немного - можете использовать механизм заметок. Заметки для каждой книги сохраняются в отдельном текстовом файле в свободном формате. Получить доступ к этому файлу можно или непосредственно через контекстное меню книги, или посмотрите в меню, в "Инструменты". Там есть "Менеджер заметок" В нём отображается файл, для которого заметка создана и путь к самому файлу заметок. Есть возможность экспортировать файл заметок в удобное для вас место. При этом заметки не удаляются даже при удалении файла книги, удаление - только в ручную, через Менеджер заметок.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #99 Ответы: #166, #173

135. Сообщение от ProfessorNavigator (ok), 06-Май-26, 21:19   +/
История возникновения данного проекта такова. Была одна библиотека - архив популярного сайта. К ней прилагался каталогизатор, под Windows, на паскале. В один "прекрасный" день он перестал нормально работать ("нормально" там и до того было весьма условное - запускалось оно через Wine, работало кривовато и не быстро). Меня попросили как-то решить проблему. Альтернатив под Линукс тогда особо не было, а я уже кое-чего соображал в программировании, поэтому сел и за неделю на коленке сваял замену. Пару лет проектом пользовались только те, кто был со мной знаком, а в 2022 у меня дошли руки привести его в более удобоваримый вид. С тех пор программа "живёт" публично.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #96

136. Сообщение от ProfessorNavigator (ok), 06-Май-26, 21:21   +/
> Трудно представить еще более нереалистичный и притянутый за уши сценарий.

Обладатели архивов некоторых популярных в рунете сайтов смотрят на вас с иронией))

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #125

137. Сообщение от ProfessorNavigator (ok), 06-Май-26, 21:33   –2 +/
> Вы о таком даже не слышали.

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


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #110

138. Сообщение от ProfessorNavigator (ok), 06-Май-26, 21:41   –1 +/
> Один это какой? Вот вам другой язык, держите, почитаете как правильно парсеры
> писать https://dev.realworldocaml.org/parsing-with-ocamllex-and-men... Или
> вот ещё пример https://thedeemon.livejournal.com/1155.html

Да-да-да... (зевает).

> И потом, могли бы взять условный golang, там xml парсер идёт прямо
> в стандартной библиотеке.

Спасибо, но на этом вы сами пишите.

> Я не тестировал ваш код ни разу. Я прочитал парсер и нашёл
> в нём ошибки, как и в прошлые разы. Зачем мне его
> запускать, если я ещё до запуска знаю, где есть проблемы?

Правда, знаете? А если проверю?))

> Я вам привёл конкретные ошибки, с номерами строк. Вам непонятно описание?

Совершенно. Поскольку ошибок там нет, и вы бы это знали, если бы С++ подучили, вместо того, чтобы ходить за мной и ныть об одной и той же глупости. Какое там определение сумасшествия?... "Безумие - это раз за разом повторять одно и то же действие, надеясь получить другой результат". По-моему как-то так. Повод задуматься как минимум.


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #95 Ответы: #157

139. Сообщение от ProfessorNavigator (ok), 06-Май-26, 21:44   +/
> все с тобой ясно - у тебя реально проблемы с головой, не
> зря ты фанат коммунизма

Хы)) "фанат")) И вы так говорите, как-будто это что-то плохое...


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #100

140. Сообщение от Аноним (42), 06-Май-26, 21:46   +/
Почему такая агрессия к чужому мнение? Это как прийти на концерт Шнура и оскорбится на то что он матерится со сцены.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #70

142. Сообщение от ProfessorNavigator (ok), 06-Май-26, 22:05   –1 +/
> Ткнул первый попавшийся файлик. Пусть это будет AddBooksWindow.cpp...
> 1. Про QStringLiteral автор не в курсе вообще. Каждый QString создаётся в
> рантайме путём парсинга из char *.

А QStringLiteral создаёт их как-то иначе?))

> 2. Логика с интерфейсом, ну это классика. Всё в одном файле. В
> долгосрочной перспективе поддерживать такое будет нереально.

О да, очередной "эксперт"...

> 3. Куча setObjectName. Зачем??? Где-то планируется обращение по имени объекта?

Не планируется, а есть. Оформление - как по вашему сделано?

> 4. connect-ы с лямбдами без указания объекта-назначения. Сегфолты ловить потом запаришься.

Ну-да, ну-да, а то, что там лямбда работает с "вызывающим" же объектом - это мы уже сообразить не в состоянии.

> 5. Вот это вообще шЫдевр:
> for(size_t i = 0; i < act_list.size(); i++) { delete act_list[i]; }
> Про qDeleteAll автор не в курсе вообще. Но это ещё простительно. Хуже,
> в этом списке объекты класса QAction. Чего бы не указать parent
> и не париться на счёт их удаления вообще?

Вы думаете, я не в курсе?))

> 6. Дальше ещё веселее. Начиная со строки 71 идёт использование QDir, которое
> потом внезапно превращается в std::filesystem. Соответственно, постоянная пляска с преобразование
> QString в std::string и наоборот. Возникает резонный вопрос, а почему не
> использовать QDir дальше? Фильтровать файлы и каталоги оно отлично умеет.

Принцип очень прост - там где можно, используются нативные возможности ЯП.

> Дальше смотреть не стал, ибо влом.

Не осилил)) А говорил, что "эксперт" ;)

> Вывод. Проект очень похож на результат вайбкотинга.

Забавно - выше мне предъявляли совершенно противоположные претензии))

> Даже удивительно, как оно собирается
> и не падает. Определённо, надо получше выучить библиотеку Qt и начать
> её нормально использовать. Это позволит убрать до 40% лишнего кода. Вопрос
> только в том, есть ли в этом какой-то смысл.

Можете лучше - делайте. Мы все будем только рады.


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #133 Ответы: #147

143. Сообщение от ProfessorNavigator (ok), 06-Май-26, 22:08   +/
>[оверквотинг удален]
> В других местах именно так, "str += it_b->content;" только в одном месте.
> Ещё
>> mlarchiverplugin/src/MainWindow.cpp:43:11: error: 'qApp' was not declared in this scope
>>   43 |           qApp->installTranslator(translator);
> Поискал в исходниках, нашёл эту qApp в MLArchiverPlugin.cpp, там после
>> #include <MainWindow.h>
> ещё
>> #include <QApplication>
> Добавил в MainWindow.cpp - собралось. (В остальных местах, включая ExamplePlugin.cpp,
> этот  include есть.)

Да, поправлю. Самое забавное, что в 6 других системах (включая Debian 13) всё собралось нормально))


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #124

145. Сообщение от Аноним (127), 06-Май-26, 22:19   +/
> connect-ы с лямбдами без указания объекта-назначения

Сигналы - это постоянная архитектурная боль Qt.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #133 Ответы: #160

146. Сообщение от Аноним (127), 06-Май-26, 22:21   +/
> постоянная пляска с преобразование QString в std::string и наоборот

А вот писал бы на паскале - таких болячек не было бы.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #133 Ответы: #150

147. Сообщение от Аноним (147), 06-Май-26, 22:35   +/
>А QStringLiteral создаёт их как-то иначе?))

RTFM:

>The macro generates the data for a QString out of the string literal str at compile time.
>О да, очередной "эксперт"...

Конечно. Логику от интерфейса надо отделять. Иначе это нечитаемое месево.

>Не планируется, а есть. Оформление - как по вашему сделано?

Ужас...

>Ну-да, ну-да, а то, что там лямбда работает с "вызывающим" же объектом - это мы уже сообразить не в состоянии.

Да, про Qt::AutoConnection товарищ не в курсе...

>Вы думаете, я не в курсе?))

Я уверен в этом!

>Принцип очень прост - там где можно, используются нативные возможности ЯП.

А смысл? Гонять туда-сюда QString и std::string? Я там понимаю, отдельная библиотека с логикой на чистых плюсах и отдельно интерфейс на Qt. Но тут всё в одной куче.

>Не осилил)) А говорил, что "эксперт" ;)

Тут сорян, мозг надо беречь.

>Забавно - выше мне предъявляли совершенно противоположные претензии))

Вообще не в курсе, кто там что предъявляет. Особенно если код.

>Можете лучше - делайте. Мы все будем только рады.

Так уже. Мои замечания учтёт любая нейросетка, и этот код будет лучше.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #142 Ответы: #149

148. Сообщение от ProfessorNavigator (ok), 06-Май-26, 22:36   +/
> но тестировалось это всё на SMB

Я написал только о том, что проверял.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #129

149. Сообщение от ProfessorNavigator (ok), 06-Май-26, 22:39   +/
> Так уже. Мои замечания учтёт любая нейросетка, и этот код будет лучше.

Попутной ракеты))

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #147 Ответы: #151

150. Сообщение от Аноним (147), 06-Май-26, 22:39   +/
Да нет. Просто какой смысл юзать std::string и прочее, когда есть Qt, которая во всех функциях использует QString? Ну разве что лишние такты процессора съесть и читаемость кода "повысить".
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #146 Ответы: #152

151. Сообщение от Аноним (147), 06-Май-26, 22:42   +/
А где радость?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #149 Ответы: #153

152. Сообщение от ProfessorNavigator (ok), 06-Май-26, 22:46   +/
> Да нет. Просто какой смысл юзать std::string и прочее, когда есть Qt,
> которая во всех функциях использует QString? Ну разве что лишние такты
> процессора съесть и читаемость кода "повысить".

Смысл очень простой - под капотом там библиотека MLBookProc, в которой нет Qt (и не будет). Она может быть собрана и работать автономно, без самой программы MyLibrary (буде у кого возникнет желание например свой сервер с помощью неё поднять).


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #150 Ответы: #156

153. Сообщение от ProfessorNavigator (ok), 06-Май-26, 22:56   +/
> А где радость?

Вы даже не представляете насколько я рад. Причём без всякой иронии. Только радуюсь я не совсем тому, о чём вы подумали.


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #151

155. Сообщение от Аноним (165), 06-Май-26, 23:22   +/
Налей ещё этих новых кедовых виджетов да выпей чаю
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #48

156. Сообщение от Аноним (156), 06-Май-26, 23:34   +1 +/
Я пока смотрел AddBooksWindow.cpp, вроде бы это не часть библиотеки... Но это только один пример. Вот ещё цикл

for(auto it = list.begin(); it != list.end(); it++)
{
  std::string str = it->toStdString();
  std::filesystem::path p = std::u8string(str.begin(), str.end());
  model->addItem(p);
}

Чего бы не сделать так:

for(const auto &str : list)
{
  model->addItem(str->toStdString());
}

Только addItem перегрузить...

Но это тоже неудачный пример. Сам факт преобразования QString -> std::string -> std::u8string -> std::filesystem::path весьма удручает. Так что можно сделать ещё лучше без всяких перегрузок:

for(const auto &str : list)
{
   if constexpr (sizeof(std::filesystem::path::value_type) == sizeof(char16_t))
       model->addItem(std::u16string_view(QStringView(str)));
   else
       model->addItem(str.toStdString());
}

И это я ещё нейронку не натравил....

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #152 Ответы: #158

157. Сообщение от Аноним (117), 06-Май-26, 23:42   +/
>Правда, знаете? А если проверю?))

Во-первых, вы уже часть ошибок, на которые вам я указал, уже поправили. Во-вторых, текущие ошибки вам нужно для начала проверить самим, а лишь потом заявлять, что всё хорошо.
>Поскольку ошибок там нет, и вы бы это знали, если бы С++ подучили

Вы даже не поняли в чём ошибка, а уже утверждаете, что её нет.
>Безумие - это раз за разом повторять одно и то же действие, надеясь получить другой результат

Безумие учится/тренироваться, если с первого раза не получилось, значит не получится никогда. Вы же не способны к обучению или всё таки нет?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #138

158. Сообщение от Аноним (127), 07-Май-26, 00:05   +/
> QString -> std::string -> std::u8string -> std::filesystem::path

В частности именно из-за этого многие не используют плюсы и Qt

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #156

159. Сообщение от Джон Титор (ok), 07-Май-26, 00:19    Скрыто ботом-модератором+/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #88 Ответы: #184

160. Сообщение от Аноним (92), 07-Май-26, 02:43   +/
>> connect-ы с лямбдами без указания объекта-назначения
> Сигналы - это постоянная архитектурная боль Qt.

Конкретно эту беду можно отключить начиная с Qt 6.7 при помощи QT_NO_CONTEXTLESS_CONNECT.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #145

161. Сообщение от Аноним (165), 07-Май-26, 03:17   +/
Протестую, для Windows автор тоже делает сборки.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #29

162. Сообщение от Аноним (165), 07-Май-26, 03:24   +/
Вспоминается анекдот про Фурманова, который недоливал Петьке:

— Фурманов, пора бы уже и руку набить.
— Тут уже и морду пора!

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #23

163. Сообщение от Аноним (165), 07-Май-26, 03:29   +/
Но ведь каталогизатор может выглядеть лучше!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #132

164. Сообщение от Аноним (165), 07-Май-26, 03:31    Скрыто ботом-модератором+/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #32

165. Сообщение от Аноним (165), 07-Май-26, 03:34   +1 +/
Надо брать почту, телеграф и телефон.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #30 Ответы: #176

166. Сообщение от Анонимище (?), 07-Май-26, 05:40   +/
>Эвристика этого дела будет достаточно сложной, что замедлит выдачу поисковых результатов и усложнит базу данных.

Ок, а вручную юзер может сделать чтобы у книги было несколько ипостасей?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #134

167. Сообщение от Аноним (168), 07-Май-26, 06:25    Скрыто ботом-модератором+/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #33

168. Сообщение от Аноним (168), 07-Май-26, 06:27    Скрыто ботом-модератором–1 +/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #38

169. Сообщение от Аноним (168), 07-Май-26, 06:28    Скрыто ботом-модератором+/
Ответить | Правка | Наверх | Cообщить модератору

170. Сообщение от Аноним (170), 07-Май-26, 06:38   +/
Сетевую прозрачность поддерживает?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #179

171. Сообщение от Паталогизатор (?), 07-Май-26, 06:58   +/
Стрёмно, когда кто-то будто куда-то в сторону говорит, сразу вопрос возникает: "А он в своём уме, сам с собой разговаривает?".
А его мелкие, неуместные придирки и стремление раздавать людям оценки отдают толи психопатией, толи банальной незрелостью и завистью.
И диагнозы ещё, бывает, ставит, а у самого голос такой мерзкий, будто он во все места обиженный и вот-вот расплачется как девчонка.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #60

172. Сообщение от Аноним (172), 07-Май-26, 07:10   +1 +/
О, у меня также от релизов и скринов гнома вопрос каждый раз
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7

173. Сообщение от Аноним (176), 07-Май-26, 07:17   +/
ИМХО, правильнее хранить ссылку (URI: https/magnet) как поле Источник (Source) в базе данных. Это одновременно и идентифицирующая информация, и систематизирующая, и, в дальнейшем, пригодная для обновления/восстановления (для документации загружаемой из веба, например).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #134

174. Сообщение от Аноним (176), 07-Май-26, 07:26   +/
> не смотря на то, что я не пишу на плюсах, я

..мнение имею. Ясно-понятно.

> Автор добавляет лишние выделения памяти на ровном месте. Практически везде, где есть push_back, ...

Кто-нибудь, расскажите комментатору про capacity/size - стратегию аллокации памяти у std:vector.

Сразу видно, до коммунизма ещё не дорос.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #55

175. Сообщение от Это любовь (?), 07-Май-26, 07:35   +/
Профессор, признавайтесь, вы чем так Анонима обидели, что он за вами как брошенная невеста, весь в слезах, бегает?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #120

176. Сообщение от Аноним (176), 07-Май-26, 07:38   +/
Верное замечание, товарищ!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #165

177. Сообщение от iPony128052 (?), 07-Май-26, 08:30   +/
> И потом, могли бы взять условный golang, там xml парсер идёт прямо
> в стандартной библиотеке.

Как будто на плюсах кто-то мешает подключить тот же крохотный pugixml

Но если охота писать кривой велоипед, то это тоже незапрещенно конечно.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #95

178. Сообщение от iPony128052 (?), 07-Май-26, 08:47   +1 +/
> Проект очень похож на результат вайбкотинга

Вайбкодинг сильно лучше результаты даёт. Я серьёзно.


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #133 Ответы: #180

179. Сообщение от Аноним (179), 07-Май-26, 08:57    Скрыто ботом-модератором+/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #170

180. Сообщение от Аноним (180), 07-Май-26, 10:22   +/
Когда будет новость с твоим проектом? С вайбкодингом и без, без разницы.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #178

181. Сообщение от Аноним (180), 07-Май-26, 10:24   +/
Спасибо. Я попробую пожалуй на это раз.
Если программа шустрая и хорошо выполняет свою задачу - неважно какие там цвета.
Так даже оригинально выглядит.
Ответить | Правка | Наверх | Cообщить модератору

182. Сообщение от Аноним (183), 07-Май-26, 10:33   +/
> Стрёмно это, когда человек любит говорить о себе в третьем лице.

Два раза прочитал пост. Где тут в 3-м лице?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #60

183. Сообщение от Аноним (183), 07-Май-26, 10:36    Скрыто ботом-модератором+/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #77

184. Сообщение от Sm0ke85 (ok), 07-Май-26, 11:00   +/
>Чтоб ты спросил)))

Дык честно признайся, что в школу не ходил... хаха

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #159


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2026 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру