Автор Тема: программа каталогизации и поиска файлов по тегам  (Прочитано 11872 раз)

Оффлайн Сергей-70

  • Давно тут
  • **
  • Сообщений: 496
Добрый день! У меня по работе скопилась библиотека из нескольких тысяч электронных книг. Иногда новую книжку проще найти в инете чем на диске. Нужна программа каталогизации. Пробовал колибри - не то. Мне нужно чтобы работать можно было не только с одним файлом, а побыстрее - например присваивать тег сразу группе выбранных файлов. С колибри я никогда не закончу это дело. Соответственно нужно иметь возможность найденные файлы быстро просматривать просмотрщиком по-умолчанию

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 908
    • Домашняя страница
    • Email
Написать свою.
Андрей Черепанов (cas@)

Оффлайн Сергей-70

  • Давно тут
  • **
  • Сообщений: 496
Я, честно говоря, начал. Дошел до каталогизации, остановился на поиске... Но поскльку не специалист - все делаю очень медленно, с перерывами, потом долго вспоминаю, что к чему... Хотел на все готовенькое))

dango

  • Гость
Добрый день! У меня по работе скопилась библиотека из нескольких тысяч электронных книг. Иногда новую книжку проще найти в инете чем на диске. Нужна программа каталогизации. Пробовал колибри - не то. Мне нужно чтобы работать можно было не только с одним файлом, а побыстрее - например присваивать тег сразу группе выбранных файлов. С колибри я никогда не закончу это дело. Соответственно нужно иметь возможность найденные файлы быстро просматривать просмотрщиком по-умолчанию
MyRuLib не пробовали?
http://myrulib.lintest.ru/
Последняя версия 0.29.16 от 2015г. есть только в Сизифе.
http://sisyphus.ru/ru/srpm/Sisyphus/myrulib
Честно, не знаю, насколько она рабочая сейчас. Сам ею давно пользовался.

Оффлайн Сергей-70

  • Давно тут
  • **
  • Сообщений: 496
MyRulib не пробовал.
А вот мои потуги - как я себе представлял - выбираешь каталог и расставляешь теги, добавляешь автора. По нажатию на enter октрывается программа для просмотра соответствующего формата по умолчанию...  Файлы, которые уже есть в БД подсвечиваются дурацким зеленым цветом))
Для работы нужен python3, sqlite, tkinter и файл autocomplete.py - он дает функциональность автодополнения текста в поле ввода (для скорости работы, в tk по умолчанию такого нет).
Пока у меня со временем туго, если кого-то заинтересует, то вот...
« Последнее редактирование: 12.03.2018 16:38:32 от Сергей-70 »

Оффлайн stranger573

  • Мастер
  • ***
  • Сообщений: 1 434
    • Email
Пробовал колибри - не то. Мне нужно чтобы работать можно было не только с одним файлом, а побыстрее - например присваивать тег сразу группе выбранных файлов.
Calibre умеет редактировать основные теги для группы выделенных файлов.

Соответственно нужно иметь возможность найденные файлы быстро просматривать просмотрщиком по-умолчанию
Собственный просмотрщик там есть и найденные файлы можно быстро просматривать.

Оффлайн Сергей-70

  • Давно тут
  • **
  • Сообщений: 496
Монстр эта Calibre )))
Медленная, дублирует уже имеющиеся книжки.... Я ее ставил, добросовестно пытался все приводить в порядок и плюнул - очень все в итоге долго получается

Оффлайн Сергей-70

  • Давно тут
  • **
  • Сообщений: 496
Написать свою.
Таки я сделал программку которая меня устраивает. Можно ли ее тут выложить, может кого и заинтересует?
« Последнее редактирование: 24.12.2018 13:08:30 от Сергей-70 »

Оффлайн sb

  • Модератор глобальный
  • *****
  • Сообщений: 8 991
Конечно выкладывайте, копирайты и лицензию только не забудьте, а то вдруг кто захочет упаковать.

Оффлайн Сергей-70

  • Давно тут
  • **
  • Сообщений: 496
Выкладываю.
С радостью приму любые замечания, т.к. не программист.
Может быть какие-нибудь мысли по функционалу возникнут - готов выслушать.
Насчет лицензии - я не разбираюсь в этом, выкладываю в общее пользование, людям польза, мне -- учеба.

Никаких оптимизаций по скорости работы не проводил. По моим оценкам, база из нескольких тысяч книг будет открываться моментально. Хотя резервы по быстродействию есть, просто алгоритм усложнится.
« Последнее редактирование: 24.12.2018 20:21:09 от Сергей-70 »

Оффлайн stranger573

  • Мастер
  • ***
  • Сообщений: 1 434
    • Email
Какие форматы поддерживаются? Кстати о терминологии: программа каталогизации по большому счёту — та, которая раскладывает файлы в упорядоченное дерево каталогов. Если только заполняется база "где-что лежит", то это индексация.

Оффлайн Сергей-70

  • Давно тут
  • **
  • Сообщений: 496
Это не совсем индексация, точнее совсем не индексация, это расстановка тегов для файлов. Поэтому их можно расставить для файлов любых форматов.
Кстати - обращался с просьбой обновить в репозитории tk до версии 8.6 - там уже можно иконки для скриптов с гуи делать.
Вот краткое описание
1. Зависимости:
- python3
- python-modules-tkinter
- python-modules-sqlite3
-autocomplete.py  (это не мой файл, это модуль который добавляет в tkinter функциональность строки ввода с автоподстановкой, я лишь адаптировал текст для python3)

файл autocomplete.py нужно положить в ту же папку, где находятся и и прочие файлики
Для запуска удобно отредактировать файл "Каталог файлов" и прописать пути размещения файла "biblus_main.py" и
нужного значка

2. При первом запуске в папке со скриптом должен быть создан файл базы данных (должен быть создан, я надеюсь;)) )

3.Главное окно имеет вкладки "Правка" и "Поиск".

На вкладке "Правка" можно выбирать файлы для добавления в базу

Для того, чтобы добавить файл в БД, нужно его выбрать в списке файлов и нажать Enter или F4

4. После нажатия F4 появляется окно редактирования. Если файл уже есть в базе, то соответствующие поля считываются из базы и их можно изменить.
Если нет, то в название книги по умолчанию всталвяется имя файла, можно смело менять на нужное

Для того, чтобы добавить автора или тег нужно начать их набирать в карточке редактирования в соответствующей строке ввода.

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

После ввода фио автора или тега нужно нажать Enter или кнопку +Автор, +Тег
Добавление в базу данных записи происходит после нажатия соответствующей большой черной кнопки

5. Поиск нужного файла осуществляется на вкладке "Поиск" главного окна.
Поиск сделан сужающимся - после выбора автора или тега и нажатия кнопки "Поиск" происходит отбор файлов по выбранным автору и тегу.

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

6. И самое, на мой взгляд, удобное:
- можно создать особое действие в Thunar и прописать в него команду
python3 /home/user/path/Biblus/cardedit.py %D %n

я назвал ее "Добавление файла в БД"

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

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

Вроде бы стало сильно быстрее все нужное искать


Особенности - прога платформозависимая - для просмотра файлов используется команда xdg-open. Для windows, по моему, используется os.filestart. Если будет кому нужно - можно поправить.

Что в планах
- добавить возможность удаления записей из БД
- правка тегов и имен авторов в БД
« Последнее редактирование: 26.12.2018 07:55:05 от sb »

Оффлайн Сергей-70

  • Давно тут
  • **
  • Сообщений: 496
Выкладываю обновление каталогизатора.
Исправил досадную ошибку из-за которой файл, который был добавлен в БД, не помечался цветом в списке файлов и не отображался в списке книг.
Добавлена возможность вносить правки в ФИО авторов и в теги, а также удалять авторов и теги из БД
« Последнее редактирование: 05.01.2019 00:34:12 от Сергей-70 »

Оффлайн stranger573

  • Мастер
  • ***
  • Сообщений: 1 434
    • Email
Добавлена возможность вносить правки в ФИО авторов и в теги, а также удалять авторов и теги из БД
Сборка мусора в БД есть? Или как большинство программ использующих БД будет пожизненно коллекционировать все предыдущие версии записей и удалённые записи?

Оффлайн Сергей-70

  • Давно тут
  • **
  • Сообщений: 496
Сборка мусора в БД есть?
Еще нет, но ваш вопрос я принимаю как руководство к действию )))
На сегодняшний момент при удалении тега или автора удаляются все связанные записи в таблицах tags, tagbook, autors и autorbook.
Нужно реализовать лишь удаление ненужных документов.
А вот встречный вопрос - нужно ли автоматически удалять непривязанные ни к одному документу записи для тегов или авторов?
На мой взгляд - нужно, поскольку в таком случае поиск обеспечивает гарантированный результат. Но, может быть, это не критично?
В общем - жду совета