Add basic document snippets.
This commit is contained in:
parent
caf36174e4
commit
922af24e1b
|
@ -230,6 +230,9 @@ class XanaDoc(Item):
|
||||||
|
|
||||||
id = Column(Integer, ForeignKey(Item.id), primary_key=True)
|
id = Column(Integer, ForeignKey(Item.id), primary_key=True)
|
||||||
|
|
||||||
|
def snippet(self):
|
||||||
|
return self.text
|
||||||
|
|
||||||
class XanaLink(Item):
|
class XanaLink(Item):
|
||||||
__tablename__ = 'xanalink'
|
__tablename__ = 'xanalink'
|
||||||
__mapper_args__ = {'polymorphic_identity': 'xanalink'}
|
__mapper_args__ = {'polymorphic_identity': 'xanalink'}
|
||||||
|
@ -274,6 +277,9 @@ class XanaLink(Item):
|
||||||
titles[item] = source_of_title.text[start:length + start]
|
titles[item] = source_of_title.text[start:length + start]
|
||||||
return titles
|
return titles
|
||||||
|
|
||||||
|
def snippet(self):
|
||||||
|
return self.text
|
||||||
|
|
||||||
class SourceDoc(Item):
|
class SourceDoc(Item):
|
||||||
__tablename__ = 'sourcedoc'
|
__tablename__ = 'sourcedoc'
|
||||||
__mapper_args__ = {'polymorphic_identity': 'sourcedoc'}
|
__mapper_args__ = {'polymorphic_identity': 'sourcedoc'}
|
||||||
|
@ -290,6 +296,16 @@ class SourceDoc(Item):
|
||||||
def price_per_character(self):
|
def price_per_character(self):
|
||||||
return self.db_price_per_character or self.db_document_price / len(self.text)
|
return self.db_price_per_character or self.db_document_price / len(self.text)
|
||||||
|
|
||||||
|
def snippet(self, length=255, killwords=False, end='...', leeway=5):
|
||||||
|
s = self.text
|
||||||
|
assert length >= len(end), 'expected length >= %s, got %s' % (len(end), length)
|
||||||
|
assert leeway >= 0, 'expected leeway >= 0, got %s' % leeway
|
||||||
|
if len(s) <= length + leeway:
|
||||||
|
return s
|
||||||
|
if killwords:
|
||||||
|
return s[:length - len(end)] + end
|
||||||
|
result = s[:length - len(end)].rsplit(' ', 1)[0]
|
||||||
|
return result + end
|
||||||
|
|
||||||
|
|
||||||
configure_mappers()
|
configure_mappers()
|
||||||
|
|
Loading…
Reference in a new issue