X-Git-Url: https://git.mdrn.pl/turniej.git/blobdiff_plain/3dbaa20d66d533211dc34746150cbb31f5afd5d3..43cf331626ab12c2f76d19c0c545b0a0ae685db6:/apps/poetry/models.py?ds=inline diff --git a/apps/poetry/models.py b/apps/poetry/models.py index 39f3e05..ef8bf94 100644 --- a/apps/poetry/models.py +++ b/apps/poetry/models.py @@ -3,6 +3,7 @@ import os import subprocess from django.db import models from django.core.urlresolvers import reverse +from django.conf import settings from poetry.utils import get_hash @@ -25,9 +26,11 @@ class Poet(models.Model): def write(self): curdir = os.getcwd() os.chdir(os.path.dirname(self.path)) - text = subprocess.check_output(self.path).decode("utf-8") + proc = subprocess.Popen(self.path, + stdout=subprocess.PIPE, stderr=subprocess.PIPE) os.chdir(curdir) - text = text[:1000] + stdout, stderr = proc.communicate() + text = unicode(stdout, "utf-8", errors="ignore")[:1000] slug = get_hash(text) title = '' if self.first_line_title: @@ -42,6 +45,14 @@ class Poet(models.Model): ) return poem + def make_for_contest(self): + assert not self.poem_set.filter(for_contest=True).exists() + for i in range(settings.POETRY_POEMS_FOR_CONTEST): + p = self.write() + p.for_contest = True + p.save() + return self.poem_set.filter(for_contest=True) + class Poem(models.Model): slug = models.SlugField(max_length=50, db_index=True)