# HG changeset patch # User František Kučera # Date 1319405859 -7200 # Node ID dc04a3c2c557010d897355cbcfa75811af896a2f # Parent d566d08c20d6c4a5932e8689e9cf92f14fbe0504 Drupal: když chybí předmět, doplníme ho z prostého textu (ne z XHTML). diff -r d566d08c20d6 -r dc04a3c2c557 src/org/sonews/storage/DrupalMessage.java --- a/src/org/sonews/storage/DrupalMessage.java Fri Oct 21 18:21:30 2011 +0200 +++ b/src/org/sonews/storage/DrupalMessage.java Sun Oct 23 23:37:39 2011 +0200 @@ -135,7 +135,7 @@ /** Plain text part */ MimeBodyPart textPart = new MimeBodyPart(); - String plainText = readPlainText(rs, xhtmlText); + String plainText = formatedToPlainText(xhtmlText); textPart.setText(plainText); //addHeader("Lines", String.valueOf(plainText.split("\n").length)); @@ -185,7 +185,11 @@ return new ByteArrayInputStream(message); } - private String readPlainText(ResultSet rs, String xhtmlText) { + /** + * @param xhtmlText well-formed XHTML + * @return plain text representation of this formated text + */ + private String formatedToPlainText(String xhtmlText) { try { Transformer textTransformer = transformerFactory.newTransformer(new StreamSource(Resource.getAsStream("helpers/mimeTextPart.xsl"))); @@ -199,7 +203,7 @@ * TODO: lepší ošetření chyby */ log.log(Level.WARNING, "Error while transforming article to plain text", e); - return makeSimpleXHTML("Při transformaci příspěvku bohužel došlo k chybě."); + return "Při transformaci příspěvku bohužel došlo k chybě."; } } @@ -499,4 +503,11 @@ throw new StorageBackendException(e); } } + + public String getBodyPlainText() throws StorageBackendException { + /** + * TODO: netransformovat XHTML 2x + */ + return formatedToPlainText(makeSimpleXHTML(getBodyXhtmlFragment())); + } } diff -r d566d08c20d6 -r dc04a3c2c557 src/org/sonews/storage/impl/DrupalDatabase.java --- a/src/org/sonews/storage/impl/DrupalDatabase.java Fri Oct 21 18:21:30 2011 +0200 +++ b/src/org/sonews/storage/impl/DrupalDatabase.java Sun Oct 23 23:37:39 2011 +0200 @@ -419,7 +419,11 @@ String text = m.getBodyXhtmlFragment(); if (subject == null || subject.length() < 1) { - subject = text.substring(0, Math.min(10, text.length())); + String plainText = m.getBodyPlainText(); + subject = plainText.substring(0, Math.min(32, plainText.length())); + if (subject.length() < plainText.length()) { + subject = subject + "…"; + } } insertArticle(article.getAuthenticatedUser(), subject, text, parentID, groupID);