Программа для каталогизации домашней библиотеки. Чтение электронных книг в Calibre

ABC - программа предназначенная для создания каталога коллекции аудиокниг. Если ваша коллекция представляет собой набор папок содержащих mp3 файлы - эта программа для вас.

Идея
Идея программы в том, что любителю аудиокниг важна собственно сама книга, а не набор mp3 файлов находящихся в определенном месте на диске. Не ищите в программе дерева папок и файлов как в WhereIsIt или MAC. То что вы увидите - есть лишь отображение книжных полок заполненных книгами, у которых есть авторы, жанры и чтецы их озвучившие.

Отличительные особенности

  • Быстрое сканирование
  • Быстрый/Контекстный поиск с широкими возможностями
  • Удобный доступ к результатам поиска. История поиска
  • Сохранение фрагментов аудиокниг. Позволяет прослушивать книгу без подключения отсканированного диска
  • Импортирование обложек и описаний (с диска или из интернета)
  • Импорт информации о книге из mp3 тагов ID3v1 и ID3v2
  • Поддержка архивов
  • Поддержка серий
  • Строка статуса: отображение информации для каждого из элементов (полки, автора, книги и т.д.)
  • Рейтинг
  • Русский интерфейс
  • Бесплатность
Принцип работы
Каталог содержит книжные полки. Книжные полки содержат книги. Для добавления книжной полки в каталог, медиа (DVD/жесткий диск/папка на диске) необходимо просканировать.

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

Шаблон - это то, с помощью чего описывается физическая структура диска, который сканируется. Шаблон необходим, так как программа не может сама догадаться какая папка это "Автор", а какая - "Название" книги. Шаблонами пользуются такие программы, как: Total Commander, Tag&&Rename и т.д. В программе есть помощь по составлению шаблонов.

Установка
Программа для работы требует библиотеку Майкрософта - .NET Framework. Скорее всего, она у вас в Windows уже есть (windows устанавливает ее с апдейтами). Если же нет, при установке, эта библиотека будет скачана и установлена автоматически. Это происходит только один, первый раз. Сама же программа очень маленькая.

Итак установка:
1) Запустите setup.exe
2) Если выше упомянутой библиотеки нет, установщик поднимет окошко с лицензионным соглашением от Майкрософта. Примите его и программа начнет скачивать необходимый файлы из интернета.
Установка библиотеки Майкрософт займет несколько минут, во время которых прогресс не будет двигаться. Не пугайтесь и просто ждите. После окончания процесса, установка автоматически перейдет на следующий этап
3) Поднимается окошко установщика моей программы. Нажимаем на кнопки, устанавливаем программу. Все. Запускаем, открываем демо каталог и оцениваем возможности.

All My Books - это универсальная программа-каталогизатор книг. С ней вы создадите каталог аудиокниг, электронных книг, либо привычных печатных книг. В этой статье речь пойдёт о создании каталога аудиокниг. Первое, что потребуется, - это скачать и установить программу All My Books. Сделать это легко, кликнув по кнопке ниже.

Добавляем книги в каталог

Итак, программа установлена и запущена. Что же дальше? Начинаем формировать свой каталог книг! Скорее всего, программа открылась у вас с демо-базой и почти наверняка те несколько книг вам не нужны в каталоге. Чтобы их удалить, нажмите CTRL-A (все книги выделятся) и клавишу Del для удаления.

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

Переходим к главному. Добавлять книги по одной-две, конечно, хорошо, но наверняка у вас их сотни, а то и тысячи. Для этого случая в программе All My Books предусмотрено меню . Укажите программе папку (или целый диск), где будет производиться поиск файлов аудиокниг известных форматов. Если вы хотите просканировать ваш плеер, обязательно подключите его через USB перед тем, как будете выбирать указанный пункт меню - в этом случае All My Books даст вам возможность указать папку на устройстве, где надо произвести сканирование. Давайте подробнее рассмотрим диалог сканирования книг, он довольно функционален:

Выберите в этом диалоге, что именно искать - Аудиокниги или E-book (электронные). По сути - это просто два отдельных набора типов файлов. Типы файлов, которые программа ищет, отображаются в списке через запятую. Удалите или добавьте типы файлов в этот список, после чего нажмите Enter для повторного сканирования. Список найденных файлов для добавления отображается в средней части окна. Если вы не хотите добавлять какие-то файлы из списка, выделите их и удалите клавишей Del или кнопкой "Убрать" .

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

Иногда бывает так, что файлы книг вы с диска удалили, а в коллекции All My Books они остались. На помощь придёт кнопка "Найти удаленные" . Программа проверит на наличие на диске всех файлов, ссылки на которые есть в текущем каталоге. Если каких-либо файлов программа не найдёт, она предложит удалить книги из коллекции (после подтверждения, само собой).

В All My Books есть возможность автоматизировать поиск новых файлов аудиокниг. Если вы установите галочку "Искать новые файлы книг при запуске программы" , то при каждом запуске программа будет сканировать выбранную папку и предлагать добавить новые книги, если в папке появились новые файлы. Чтобы отключить эту опцию, вам надо будет снова зайти в меню "Книга - Искать книги на диске/устройстве" и снять галочку.

Галочка "Открывать карточку книги перед сохранением" служит для того, чтобы вы могли для каждой книги заполнить какие-то поля вручную, например, проставить рейтинг. Но это можно будет сделать и потом, когда все аудиокниги уже добавлены в каталог.

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

Стоит упомянуть возможность импорта существующей коллекции. Если у вас уже есть список книг в MS Excel, например, импортируйте его в All My Books при помощи меню "Инструменты - Импортировать из - Импорт из MS Excel..."

Теперь вы знаете, как создавать каталог аудиокниг с программой All My Books.

А что дальше?

Когда каталог аудиокниг готов, вы сможете в полной мере насладиться его преимуществами!

Большое спасибо за внимание! Любите книги, читайте их и слушайте!

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

Основным источником книг для меня стал rutracker.org (тогда еще torrents.ru).
Там достаточно строгая модерация, стандартизированное оформление, большое количество отзывов под каждой книгой. Но однажды я заметил что поиск интересных книг начинает отнимать всё больше и больше времени - раздачи сортируются не в порядке добавления, а в порядке обновления, из-за чего всё постоянно перемешивается и нужно пролистывать много страниц в поисках непрочитанных книг.

Отделять прочитанное от непрочитанного первое время позволял браузер (менял цвет ссылок, по которым я уже переходил), но после смены домена на rutracker цветовая дифференциация штанов раздач слетела, что точно не упростило процесс поиска.
Разделение книг по форумам тоже довольно неудобно - фантастику, например, разделили на русскую и зарубежную, но не по жанрам. В результате приходится на глаз выискивать любимую НФ среди фентези, S.T.A.L.K.E.Rа и др.

Знакомая проблема?

Лирическое отступление

Однажды я подумал, что написание утилиты для каталогизации аудиокниг займёт меньше времени, чем его теряется при постоянном поиске вручную. Приложение было написано и я пользовался им последние 4 года, понемногу дорабатывая.
После довольно неожиданной поддержки моего комментария к статье Спасем крупнейшую медиатеку в рунете. Вся база rutracker у Вас на компьютере стало понятно, что любителей аудиокниг не так уж и мало. Я решил привести в какое-то подобие порядка бессистемно писанный код, продумать архитектуру и расширяемость, выбросить всю проприетарщину, после чего выложить релиз с исходниками.

Эту яхту я решил назвать ABCat. Тут и AudioBooks Catalog, и ABC простота, и, конечно же, всеми любимые котики.
По совету Nashev статья не столько о разработке, сколько обзор функционала.

Приложение написано на.Net Framework, C#. Изначально интерфейс был построен на триальной версии DevExpress. Кушать она просила, но не очень настойчиво - за триальный месяц я успел устаканить GUI, а большего и не требовалось. DevExpress подкупал мощнейшей системой фильтрации списка, что очень сильно упрощало поиск.
Понятно, что для вывода в опенсорсный свет весь GUI пришлось полностью выбросить и написать новый, с WPF и MVVM, заодно поближе познакомиться и с тем, и с другим.
Что можно сказать о том, что получилось? Ну разве что «Графический интерфейс пользователя, 1 шт.». Штука эта сугубо утилитарная, написана с использованием открытых бесплатных компонентов, но свои задачи выполняет.
На момент снятия скриншотов не заметил, что забыл подписать Title у окна. На скринах его нет, в релизе есть.


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

Больше подробностей о работе с программой

Доступные инструменты
Список книг

Обычный грид, с колонками атрибутов.

Группировка

Сейчас доступны 3 логики группировки:

  • По автору (авторы сгруппированы по первой букве полного имени)
  • Форум Автор
  • Форум Жанр

После выбора группы список автоматически фильтруется по её содержимому.

Фильтр

В фильтре можно задать необходимые параметры поиска. Некоторые поля имеют вид выпадающего списка - там уже содержатся все возможные значения и это комбобокс с быстрым поиском. Все поля фильтра объединяются по «И», т.е. в список после фильтрации попадает только то, что соответствует сразу всем полям поиска. Ищется любое вхождение строки.
Поле «Длительность» довольно хитрое. Если ввести туда "> 10 часов", то в список попадут только те книги, в которых автор раздачи указал длительность воспроизведения более 10 часов.
Есть некоторые оговорки. Во-первых длительность задана не для всех раздач, во-вторых указывается она в совершенно свободной форме (например «11 часов 5 минут» или «11:05:00» или как-то еще), поэтому есть логика парсинга времени, понимающая большинство (около 99%) вариантов написания, принятых на сайте. Возможно не всё понимает правильно (пока не нашел такого), но в целом получается очень удобный инструмент.
И как раз благодаря этому парсеру в фильтр можно забивать время в любом удобном виде.

Чекбоксы:

  • Загружено. Если он не отмечен, то в список не попадают уже загруженные книги.
  • Скрыто. Фильтрует записи по признаку «скрытая» (сам признак задается в списке через контекстное меню).
  • Применить. Можно включать/отключать фильтрацию записей без потери содержимого фильтра.
Редактор автозамены

18 сравнительно правильных способов указать, что книгу написали братья Стругацкие


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


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


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


Дерево автозамены.

Сами списки хранятся в отдельном файле БД и можно взять уже чей-то готовый вариант или настроить свой. Имеется пока еще не реализованная идея импорта списка с объединением, а не заменой всех списков целиком.

Обновление базы происходит в два этапа:

  • Загрузка списка записей. Для этого скачиваются все страницы со списками раздач, из них вытаскивается базовая информация о книге - ссылка на полную страницу раздачи и название. Для форумов rutracker первая операция занимает около 20 минут - необходимо скачать и обработать около 400 страниц.
  • Загрузка полной информации о записях. По ссылкам, полученным на первом этапе, скачиваются страницы с полной информацией. Их гораздо больше - около 18 тысяч.

Процесс обновления запускают два пункта в главном меню приложения (под пунктом «Каталог»).
Крайне рекомендуется скачать уже наполненную актуальную версию каталога (по ссылкам внизу), а после периодически запускать обновление.
Скорость скачивания полных страниц специально ограничена (не более 20 страниц в минуту). Просто для того, чтобы ребята с рутрекера не сильно обижались. Защита очень проста и при наличии исходников легко снимается, но тому, кто сможет её найти и отключить, для DDoS рутрекера и не нужен такой извращённый способ - достаточно пяти строк кода.

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


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

Скачивание

Закачка выбранной книги запускается из контекстного меню списка.

Для скачивания потребуется логин и пароль пользователя рутрекера. Логины и пароли нигде не хранятся и никуда не отправляются (кроме, понятное дело, самого рутрекера). ABCat запускает uTorrent с параметрами командной строки и закачка начинается автоматически. Скачанная раздача попадает в папку библиотеки, путь к библиотеке задается при первом запуске программы. В библиотеке книги раскладываются по папкам в соответствии с автором.

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

Начало работы:
  1. Скачать релиз и базу данных каталога.
  2. Распаковать релиз в любую папку на диске.
  3. Скачать и распаковать базы данных каталога и кеша страниц туда, где будет удобно хранить 250+ мегабайт баз данных. У пользователя должны быть права на запись по этому пути.
  4. Запустить ABCat.exe. При первом запуске программа предложит задать основные настройки. Обязательно нужно указать пути к файлам базы данных, каталогу и uTorrent.exe.
  5. Начать пользоваться.

Внимание! ABCat написан на.Net Framework 4.5, который не поддерживается операционными системами ниже Windows Vista (т.е. на XP запустить не получится). В гугле попадаются ссылки на загадочные репаки.Net Framework 4.5 под XP, но не пробовал - не знаю.
Кроме того следует понимать, что программа написана только что, в свободное время, и никто кроме меня им не пользовался. Проект не является коммерческим. Спутников Mail.ru, тулбаров Yandex установить не предлагает, рекламу не показывает, донейтов не просит. Поэтому просьба отнестись с пониманием к возможным (и, нужно сказать, весьма вероятным) ошибкам в её работе. Обо всех ошибках просьба сообщать любым удобным способом (лучше всего вот сюда).

Перед скачиванием книги убедитесь в том, что автор релиза позаботился о соблюдении авторских прав на неё.
И не уходите с раздачи.

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

Первая программа для создания электронной библиотеки, которая пришла на ум при написании этой статьи, оказалось детище иностранного происхождения calibre. Правда, если переводить описание с сайта определение calibre несколько иное: это бесплатное приложение для управления библиотекой электронных книг, разработанное пользователями электронных книг для пользователей электронных книг. Вся функциональность, полнота которой и заставила меня упомянуть об этой программе в первую очередь, делится на 6 основных категорий.
1) Управление библиотекой. Сюда включается заведение всех метаданных для книги, в т.ч. теги и комментарии, поиск книг, экспорт коллекции на жесткий диск в систематизированную папочную структуру. Интересно, что просматривая демо-ролик какой-либо иерархической структуры в самой программе я не заметил. Зато выборку книг можно легко фильтровать по метаданным, будь то автор, издательство, тег или еще что-то.
2) Конвертация форматов электронных книг
3) Синхронизация с устройствами чтения электронных книг
4) Скачивание новостей из интернета и конвертация их в формат электронной книги
5) Просмотрщик электронных книг
6) Контент-сервер для онлайн-доступа к своей книжной коллекции
Статистика использования программы, приведенная на сайте, поражает. Общее количество пользователей составляет 1646508, из них 2% из России. Такая цифра, согласитесь, невольно производит впечатление. Посмотреть демо-ролик, скачать программу можно на официальном сайте .

Из иностранного хочется еще упомянуть Greenstone. Однако это не просто программа для создания электронной библиотеки, которую можно использовать в домашних условиях, а целая платформа или фреймворк, на основе которого строятся электронные онлайн библиотеки. Довольно мощное ПО, которым пользуются многие крупные организации разных стран мира. Изначально разрабатывалось при поддержке ЮНЕСКО и организации Human info на факультете компьютерных наук университета Вайкато в Новой Зеландии. Полный список подобных продуктов можно найти на англоязычной вики в статье Digital libray и разделе frameworks . А как данный продукт можно использовать у себя на компьютере хорошо описано в блоге Андрея Федорова.

Для домашнего же пользования нужно что-нибудь попроще. Рассмотрим некоторые российские разработки. MyHomeLib - программа для управления коллекциями электронных книг в любых форматах. Обладает всеми основными возможностями подобного типа программ: удобное древовидное представление, поддержка популярных форматов, простой и сложный поиск, различные рейтинги и отзывы, подключение пользователских скриптов. Отдельно стоит отметить, что реализована работа с архивами пресловутой библиотеки Lib.rus.ec. Посмотреть скрины, полное описание, отзывы можно на сайте разработчика.

Пока изучал имеющуюся информацию по теме, встретил обзор еще двух программ, которые могут использоваться для создания коллекции электронной библиотеки. Они изначально предназначались для упорядочивания бумажной домашней библиотеки, т.е. заведения информации о каждой книге. Например, полка, отметка о прочтении, любой другой атрибут и тд. Добавив функцию прикрепления файла, такие программы стали пригодными для работы с электронными книгами. Называются они BookSnake и Unicat. Обзор можно почитать . Конечно, для пользователей читалок такой софт мало актуален, а вот для создания полной коллекции всех книг, как электронных, так и бумажных очень хорошо подойдет.

Все разобранные продукты имеют свои особенности и выполняют свои уникальные функции. Уверен, что каждый сможет найти удовлетворяющее его требованиям ПО. Если вы пользуетесь какими-либо другими программами, пишите в комментариях. Также приветствуются отзывы по разобранным!

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

Основным источником книг для меня стал rutracker.org (тогда еще torrents.ru). Там достаточно строгая модерация, стандартизированное оформление, большое количество отзывов под каждой книгой. Но однажды я заметил что поиск интересных книг начинает отнимать всё больше и больше времени, по нескольким причинам.
Во-первых раздачи сортируются не в порядке добавления, а в порядке обновления. Из-за этого всё постоянно перемешивается и нужно пролистывать много страниц в поисках непрочитанных книг.

Отделять прочитанное от непрочитанного первое время позволял браузер, меняя цвет ссылок, по которым я уже переходил. Но после смены домена на rutracker цветовая дифференциация штанов раздач слетела, что точно не упростило процесс поиска.

Разделение книг по форумам тоже довольно неудобно. Фантастику, например, разделили на русскую и зарубежную, хотя лично мне удобнее было бы по жанрам. В результате приходится на глаз выискивать любимую НФ среди фентези, S.T.A.L.K.E.Rа и др.

Знакомая проблема?

Лирическое отступление
Однажды я подумал, что написание утилиты для каталогизации аудиокниг займёт меньше времени, чем его теряется при постоянном поиске вручную. Приложение было написано и я пользовался им последние 4 года, понемногу дорабатывая.
После довольно неожиданной поддержки моего к статье стало понятно, что любителей аудиокниг не так уж и мало. Я решил привести в какое-то подобие порядка бессистемно писанный код, продумать архитектуру и расширяемость, выбросить всю проприетарщину, после чего выложить релиз с исходниками.

Эту яхту я решил назвать ABCat. Тут и AudioBooks Catalog, и ABC простота, и, конечно же, всеми любимые котики.
По совету статья не столько о разработке, сколько обзор функционала.

Приложение написано на.Net Framework, C#. Изначально интерфейс был построен на триальной версии DevExpress. Кушать она просила, но не очень настойчиво - за триальный месяц я успел устаканить GUI, а большего и не требовалось. DevExpress подкупал мощнейшей системой фильтрации списка, что кардинально упрощало поиск.
Понятно, что для вывода в опенсорсный свет весь GUI пришлось полностью выбросить и написать новый, с WPF и MVVM, заодно поближе познакомиться и с тем, и с другим.
Что можно сказать о том, что получилось? Ну разве что «Графический интерфейс пользователя, 1 шт.». Штука эта сугубо утилитарная, написана с использованием открытых бесплатных компонентов, но свои задачи выполняет.
На момент снятия скриншотов не заметил, что забыл подписать Title у окна. На скринах его нет, в релизе есть.

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

Больше подробностей о работе с программой

Доступные инструменты
Список книг
Обычный грид, с колонками атрибутов.
Группировка
Сейчас доступны 3 логики группировки:
  • По автору (авторы сгруппированы по первой букве полного имени)
  • Форум Автор
  • Форум Жанр
После выбора группы список автоматически фильтруется по её содержимому.
Фильтр
В фильтре можно задать необходимые параметры поиска. Некоторые поля имеют вид выпадающего списка - там уже содержатся все возможные значения и это комбобокс с быстрым поиском. Все поля фильтра объединяются по «И», т.е. в список после фильтрации попадает только то, что соответствует сразу всем полям поиска. Ищется любое вхождение строки.
Поле «Длительность» довольно хитрое. Если ввести туда "> 10 часов", то в список попадут только те книги, в которых автор раздачи указал длительность воспроизведения более 10 часов.
Есть некоторые оговорки. Во-первых длительность задана не для всех раздач, во-вторых указывается она в совершенно свободной форме (например «11 часов 5 минут» или «11:05:00» или как-то еще), поэтому есть логика парсинга времени, понимающая большинство (около 99%) вариантов написания, принятых на сайте. Возможно не всё понимает правильно (пока не нашел такого), но в целом получается очень удобный инструмент.
И как раз благодаря этому парсеру в фильтр можно забивать время в любом удобном виде.

Чекбоксы:

  • Загружено. Если он не отмечен, то в список не попадают уже загруженные книги.
  • Скрыто. Фильтрует записи по признаку «скрытая» (сам признак задается в списке через контекстное меню).
  • Применить. Можно включать/отключать фильтрацию записей без потери содержимого фильтра.
Редактор автозамены
18 сравнительно правильных способов указать, что книгу написали братья Стругацкие

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

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

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

Дерево автозамены.

Сами списки хранятся в отдельном файле БД и можно взять уже чей-то готовый вариант или настроить свой. Имеется пока еще не реализованная идея импорта списка с объединением, а не заменой всех списков целиком.

Обновление базы происходит в два этапа:

  • Загрузка списка записей. Для этого скачиваются все страницы со списками раздач, из них вытаскивается базовая информация о книге - ссылка на полную страницу раздачи и название. Для форумов rutracker первая операция занимает около 20 минут - необходимо скачать и обработать около 400 страниц.
  • Загрузка полной информации о записях. По ссылкам, полученным на первом этапе, скачиваются страницы с полной информацией. Их гораздо больше - около 18 тысяч.

Процесс обновления запускают два пункта в главном меню приложения (под пунктом «Каталог»).
Крайне рекомендуется скачать уже наполненную актуальную версию каталога (по ссылкам внизу), а после периодически запускать обновление.
Скорость скачивания полных страниц специально ограничена (не более 20 страниц в минуту). Просто для того, чтобы ребята с рутрекера не сильно обижались. Защита очень проста и при наличии исходников легко снимается, но тому, кто сможет её найти и отключить, для DDoS рутрекера и не нужен такой извращённый способ - достаточно пяти строк кода.

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

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

Скачивание
Закачка выбранной книги запускается из контекстного меню списка.

Для скачивания потребуется логин и пароль пользователя рутрекера. Логины и пароли нигде не хранятся и никуда не отправляются (кроме, понятное дело, самого рутрекера). ABCat запускает uTorrent с параметрами командной строки и закачка начинается автоматически. Скачанная раздача попадает в папку библиотеки, путь к библиотеке задается при первом запуске программы. В библиотеке книги раскладываются по папкам в соответствии с автором.

На закачку можно запустить одновременно сразу несколько книг, но здесь тоже есть ограничения - torrent-файлы скачиваются не чаще 6 раз в минуту.

Немного технических подробностей
Практически вся логика в ABCat реализована через плагины. Они делятся на три основные группы:
  • UI - Плагины для пользовательского интерфейса
  • Site - Плагины для операций с источниками контента и наполнения БД
  • Catalog - Плагины для операций с каталогом контекта
В плагинах можно реализовать поддержку других сайтов, другую логику нормализатора, группировки, фильтрации и т.д. Более подробно о плагинах читайте на главной странице проекта .
Страница релиза на Codeplex.
Прямая ссылка на релиз и базу данных каталога от 20.10.201
База данных кешированных страниц на Google Drive (осторожно, 200MB)
Ссылка на .
Начало работы:
  1. Скачать релиз , базу данных каталога и кеша страниц .
  2. Распаковать релиз в любую папку на диске.
  3. Скачать и распаковать базы данных каталога и кеша страниц туда, где будет удобно хранить 250+ мегабайт баз данных. У пользователя должны быть права на запись по этому пути.
  4. Запустить ABCat.exe. При первом запуске программа предложит задать основные настройки. Обязательно нужно указать пути к файлам базы данных, каталогу и uTorrent.exe. Если после запуска вы наблюдаете сообщение «Не удалось найти запрошенного провайдера данных..», то вам необходимо установить клиент SQL Ce по этой ссылке .
  5. Пользоваться.
Внимание! ABCat написан на.Net Framework 4.5, который не поддерживается операционными системами ниже Windows Vista (т.е. на XP запустить не получится). В гугле попадаются ссылки на загадочные репаки.Net Framework 4.5 под XP, но не пробовал - не знаю.
Кроме того следует понимать, что программа написана только что, в свободное время, и никто кроме меня ею не пользовался. Проект не является коммерческим. Спутников Mail.ru, тулбаров Yandex установить не предлагает, рекламу не показывает, донейтов не просит. Поэтому просьба отнестись с пониманием к возможным (и, нужно сказать, весьма вероятным) ошибкам в её работе. Обо всех ошибках просьба сообщать любым удобным способом (лучше всего вот сюда).

Новая информация. Обнаружена причина проблем на Win7, она заключается в теме оформления списка записей. В результате список не отрисовывается. Ошибка поправлена, и необходимо повторить все шаги с начала (ссылки в теме новые). Файл кеша страниц тоже нужно скачать заново из-за перехода на актуальную версию Entity Framework.
Кроме этого, если после загрузки программы появляется сообщение «Не удалось найти запрошенного провайдера данных...», то необходимо скачать и установить клиент Microsoft SQL Ce по

  • torrents
  • Добавить метки