X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/6dde47a534420987b2c0e8075b10d2d569ff572f..4d5337ffa4ccaa027930b00d6a1c0f371d959227:/catalogue/models.py diff --git a/catalogue/models.py b/catalogue/models.py index d252bbf69..e9c8928dc 100644 --- a/catalogue/models.py +++ b/catalogue/models.py @@ -129,6 +129,8 @@ class Book(models.Model): from tempfile import NamedTemporaryFile from slughifi import slughifi import dcparser + from markupstring import MarkupString + import re # Read book metadata book_info = dcparser.parse(xml_file) @@ -159,7 +161,11 @@ class Book(models.Model): closed_fragments, open_fragments = html.extract_fragments(book.html_file.path) book_themes = [] for fragment in closed_fragments.values(): - new_fragment = Fragment(html=fragment.to_string(), anchor=fragment.id, book=book) + text = fragment.to_string() + short_text = '' + if (len(re.sub(r'', '', text)) > 400): + short_text = MarkupString(text)[:240] + new_fragment = Fragment(text=text, short_text=short_text, anchor=fragment.id, book=book) theme_names = [s.strip() for s in fragment.themes.split(',')] themes = [] @@ -190,7 +196,8 @@ class Book(models.Model): class Fragment(models.Model): - html = models.TextField() + text = models.TextField() + short_text = models.TextField(editable=False) _short_html = models.TextField(editable=False) anchor = models.IntegerField() book = models.ForeignKey(Book, related_name='fragments')