# -*- coding: utf-8 -*-
-
+# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
+#
from django.conf import settings
import os
def close(self):
"""Close snippet file"""
- self.file.close()
+ if self.file:
+ self.file.close()
def remove(self):
self.revision = None
for res in ids:
uids.add(res['uid'])
st += rows
- # print "Will delete %s" % ','.join([x for x in uids])
if uids:
self.index.delete(uids)
return True
q_id_cat = self.index.Q(q_id & q_cat)
tag_qs.append(q_id_cat)
- self.delete_query(tag_qs)
+ self.delete_query(*tag_qs)
else: # all
q = self.index.Q(tag_id__any=True)
self.delete_query(q)
text=u''.join(footnote),
is_footnote=True)
self.index.add(doc)
- #print "@ footnote text: %s" % footnote
footnote = []
# handle fragments and themes.
fragment_anchor=fid,
text=fix_format(frag['text']),
themes=frag['themes'])
- #print '@ FRAG %s' % frag['content']
self.index.add(doc)
# Collect content.
# in the end, add a section text.
doc = add_part(snippets, header_index=position,
header_type=header.tag, text=fix_format(content))
- #print '@ CONTENT: %s' % fix_format(content)
self.index.add(doc)
idx += 1
except IOError, e:
- log.error("Cannot open snippet file for book id = %d [rev=%d], %s" % (book_id, revision, e))
+ log.error("Cannot open snippet file for book id = %d [rev=%s], %s" % (book_id, revision, e))
return []
finally:
- if snippets:
- snippets.close()
+ snippets.close()
# remove verse end markers..
snips = map(lambda s: s and s.replace("/\n", "\n"), snips)
q |= self.index.Q(**{field: query + "*"})
else:
q |= self.make_term_query(query, field=field)
- qu = self.index.query(q).exclude(tag_category="book")
+ qu = self.index.query(q)
return self.search_tags(qu, pdcounter=pdcounter)
tag = PDCounterBook.objects.get(id=doc.get('tag_id'))
tag.category = 'pd_book' # make it look more lik a tag.
else:
- print "Warning. cannot get pdcounter tag_id=%d from db; cat=%s" % (int(doc.get('tag_id')), category)
+ print ("Warning. cannot get pdcounter tag_id=%d from db; cat=%s" % (int(doc.get('tag_id')), category)).encode('utf-8')
pd_tags.append(tag)
else:
tag = catalogue.models.Tag.objects.get(id=doc.get("tag_id"))
for f in filters:
query = query.query(f)
return query
+
+
+if getattr(settings, 'SEARCH_MOCK', False):
+ from .mock_search import Search