Commit bbef463c authored by mitshel's avatar mitshel
Browse files

Добавлена возможность поиска книг по наименованиям (поиск через OPDS-клиент)

parent 8283c6aa
Loading
Loading
Loading
Loading

py/opensearch.xml

0 → 100644
+16 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
  <ShortName>TinyOPDS</ShortName>
  <LongName>TinyOPDS</LongName>
  <Url type="application/atom+xml" template="sopds.cgi?search={searchTerms}" />
  <Image width="16" height="16">/favicon.ico</Image>
  <Tags />
  <Contact />
  <Developer />
  <Attribution />
  <SyndicationRight>open</SyndicationRight>
  <AdultContent>false</AdultContent>
  <Language>*</Language>
  <OutputEncoding>UTF-8</OutputEncoding>
  <InputEncoding>UTF-8</InputEncoding>
</OpenSearchDescription>
+15 −6
Original line number Diff line number Diff line
@@ -66,6 +66,8 @@ def main_menu():
   opdsdb.openDB()
   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('<link href="opensearch.xml" rel="search" type="application/opensearchdescription+xml" />')
   enc_print('<link href="sopds.cgi?search={searchTerms}" rel="search" type="application/atom+xml" />')
   enc_print('<entry>')
   enc_print('<title>По каталогам</title>')
   enc_print('<content type="text">Каталогов: %s, книг: %s.</content>'%(dbinfo[2][0],dbinfo[0][0]))
@@ -128,6 +130,10 @@ if 'page' in form:
   page=form.getvalue("page","0")
   if page.isdigit():
         page_value=int(page)
if 'search' in form:
   searchTerm=form.getvalue("search","")
   type_value=10
   slice_value=-1

if type_value==0:
   header()
@@ -247,17 +253,20 @@ elif type_value==3:
   opdsdb.closeDB()

#########################################################
# Выдача списка книг по наименованию
# Выдача списка книг по наименованию или на основании поискового запроса
#
if type_value==10:
   opdsdb=sopdsdb.opdsDatabase(cfg.DB_NAME,cfg.DB_USER,cfg.DB_PASS,cfg.DB_HOST,cfg.ROOT_LIB)
   opdsdb.openDB()

   if slice_value>=0:
      i=slice_value
      letter=""
      while i>0:
         letter=chr(i%10000)+letter
         i=i//10000
   else:
      letter="%"+searchTerm

   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,cfg.DUBLICATES_SHOW):