Commit b14695ec authored by mitshel's avatar mitshel
Browse files

Доделана обработка дубликатов книг в базе (поиск и вывод)

parent 89a7a3e2
Loading
Loading
Loading
Loading
+6 −8
Original line number Diff line number Diff line
@@ -15,14 +15,12 @@ formats = .pdf .djvu .fb2 .txt
# Количество выдаваемых строк на одну страницу
maxitems   = 60

# dublicates_find = yes, приводит к поиску дубликатов на основании полей title и filesize
# dublicates_find = yes, приводит к поиску дубликатов на основании полей title, format и filesize
# при этом дубликат помещается в базу, но помечается как дубликат и может исключаться из выдачи
# при поиске по наименованиям и по авторам, в случае поиска по книги, помеченные как дубликаты все равно будут показываться
# ***** Функция пока не реализована в текущей версии ПО
# при поиске по наименованиям и по авторам. В случае поиска по каталогам, книги, помеченные как дубликаты все равно будут показываться
dublicates_find = yes

# Указывает следует ли показывать книги, помеченные при сканировании как дубликаты в сортировках по наименованию и автору
# ***** Функция пока не реализована в текущей версии ПО
dublicates_show = no

# Извлекать метаинформацию из книг fb2
@@ -30,9 +28,9 @@ fb2parse = yes

# Если cover_extract = yes, то при сканировании книг fb2 из них извлекается изображение обложки
# файлы с изображениями обложек помещаются в каталог covers
# При просмотре каталога OPDS-клиентом извлеченная обложка будет показываться показывается
# При просмотре каталога OPDS-клиентом извлеченная обложка будет показываться
# если cover _show = 1 или 3
# Установка этой опции значительно замедляет сканирование каталога (~ в 10 раз)
# Установка этой опции в yes значительно замедляет сканирование каталога (~ в 10 раз)
# Но зато обложки в OPDS-клиенте будут загружаться практически мгновенно
cover_extract = yes

@@ -42,12 +40,12 @@ cover_extract = yes
# 2 - извлекать обложки на лету и показывать 
# 3 - показать ранее извлеченную обложку, если обложка не извлекалась, то извелечь на лету и показать
# 
# Думаю оптимально использовать cover_show = 1 и cover_extract = yes
cover_show = 1

# Предположительно столько байт от начала файла fb2 необходимо считать, чтобы получить необходимую метаинформацию (только description), если 0 то парсится весь файл
# при использование числа отличного от 0 возможны ошибки (например description очень длинный и занимает более, чем указанное число байт)
# при установленном cover_enable=yes значение fb2size вне зависимости от установки считается равным 0
# Экспирементальная штука, лучше оставить равным 0
fb2hsize   = 0 

# zipscan = yes  - Приводит к сканированию файлов архива

py/.sopdscfg.py.swp

deleted100644 → 0
−12 KiB

File deleted.

+6 −5
Original line number Diff line number Diff line
@@ -56,6 +56,7 @@ def header(charset='utf-8'):
   enc_print('<updated>'+time.strftime("%Y-%m-%dT%H:%M:%SZ")+'</updated>')
   enc_print('<icon>'+cfg.SITE_ICON+'</icon>')
   enc_print('<author><name>'+cfg.SITE_AUTOR+'</name><uri>'+cfg.SITE_URL+'</uri><email>'+cfg.SITE_EMAIL+'</email></author>')
#   enc_print('<cover_show>'+str(cfg.COVER_SHOW)+'</cover_show>')

def footer():
   enc_print('</feed>')
@@ -63,7 +64,7 @@ def footer():
def main_menu():
   opdsdb=sopdsdb.opdsDatabase(cfg.DB_NAME,cfg.DB_USER,cfg.DB_PASS,cfg.DB_HOST,cfg.ROOT_LIB)
   opdsdb.openDB()
   dbinfo=opdsdb.getdbinfo()
   dbinfo=opdsdb.getdbinfo(cfg.DUBLICATES_SHOW)
   enc_print('<link type="application/atom+xml;profile=opds-catalog;kind=navigation" rel="start" title="'+cfg.SITE_MAINTITLE+'" href="/"/>')
   enc_print('<entry>')
   enc_print('<title>По каталогам</title>')
@@ -224,7 +225,7 @@ elif type_value==3:

   header()
   enc_print('<link type="application/atom+xml;profile=opds-catalog;kind=navigation" rel="start" title="'+cfg.SITE_MAINTITLE+'" href="sopds.cgi?id=00"/>')
   for (letters,cnt) in opdsdb.gettitle_2letters(letter):
   for (letters,cnt) in opdsdb.gettitle_2letters(letter,cfg.DUBLICATES_SHOW):
      
       id=""
       for i in range(len(letters)):
@@ -259,7 +260,7 @@ if type_value==10:
      i=i//10000

   header()
   for (book_id,book_name,book_path,reg_date,book_title,book_genre,cover,cover_type) in opdsdb.getbooksfortitle(letter,cfg.MAXITEMS,page_value):
   for (book_id,book_name,book_path,reg_date,book_title,book_genre,cover,cover_type) in opdsdb.getbooksfortitle(letter,cfg.MAXITEMS,page_value,cfg.DUBLICATES_SHOW):
       id='07'+str(book_id)
       enc_print('<entry>')
       enc_print('<title>'+websym(book_title)+'</title>')
@@ -328,7 +329,7 @@ if type_value==5:

   header()
   enc_print('<link type="application/atom+xml;profile=opds-catalog;kind=navigation" rel="start" title="'+cfg.SITE_MAINTITLE+'" href="sopds.cgi?id=00"/>')
   for (author_id,first_name, last_name,cnt) in opdsdb.getauthorsbyl(letter,cfg.MAXITEMS,page_value):
   for (author_id,first_name, last_name,cnt) in opdsdb.getauthorsbyl(letter,cfg.MAXITEMS,page_value,cfg.DUBLICATES_SHOW):
       id='06'+str(author_id)
       enc_print('<entry>')
       enc_print('<title>'+last_name+' '+first_name+'</title>')
@@ -353,7 +354,7 @@ if type_value==6:
   opdsdb=sopdsdb.opdsDatabase(cfg.DB_NAME,cfg.DB_USER,cfg.DB_PASS,cfg.DB_HOST,cfg.ROOT_LIB)
   opdsdb.openDB()
   header()
   for (book_id,book_name,book_path,reg_date,book_title,book_genre,cover,cover_type) in opdsdb.getbooksforautor(slice_value,cfg.MAXITEMS,page_value):
   for (book_id,book_name,book_path,reg_date,book_title,book_genre,cover,cover_type) in opdsdb.getbooksforautor(slice_value,cfg.MAXITEMS,page_value,cfg.DUBLICATES_SHOW):
       id='07'+str(book_id)
       enc_print('<entry>')
       enc_print('<title>'+websym(book_title)+'</title>')
Loading