Skip to content

Commit c60252d

Browse files
committed
- add wochentag to lucene index
1 parent 441bde6 commit c60252d

File tree

2 files changed

+22
-2
lines changed

2 files changed

+22
-2
lines changed

src/main/java/mediathek/gui/tasks/LuceneIndexKeys.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,10 @@ public class LuceneIndexKeys {
5050
* Nicht existente Werte sind "19000101".
5151
*/
5252
public static final String SENDE_DATUM = "sendedatum";
53+
/**
54+
* Wochentag (Montag, Dienstag,...) des Sendedatums. String.
55+
*/
56+
public static final String SENDE_WOCHENTAG = "wochentag";
5357
/**
5458
* Boolean Key ist nur vorhanden, wenn Bedingung erfüllt. Dann "true".
5559
*/

src/main/java/mediathek/gui/tasks/LuceneIndexWorker.java

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import mediathek.tool.LuceneDefaultAnalyzer;
2929
import mediathek.tool.SwingErrorDialog;
3030
import mediathek.tool.datum.DateUtil;
31+
import mediathek.tool.datum.DatumFilm;
3132
import org.apache.logging.log4j.LogManager;
3233
import org.apache.logging.log4j.Logger;
3334
import org.apache.lucene.document.*;
@@ -39,11 +40,15 @@
3940
import javax.swing.*;
4041
import java.io.IOException;
4142
import java.nio.file.Files;
43+
import java.text.DateFormat;
44+
import java.text.SimpleDateFormat;
45+
import java.util.Locale;
4246

4347
public class LuceneIndexWorker extends SwingWorker<Void, Void> {
4448
private static final Logger logger = LogManager.getLogger();
4549
private final JProgressBar progressBar;
4650
private final JLabel progLabel;
51+
private final DateFormat weekdayFormatter = new SimpleDateFormat("EEEE", Locale.GERMAN);
4752
private int oldProgress;
4853

4954
public LuceneIndexWorker(@NotNull JLabel progLabel, @NotNull JProgressBar progressBar) {
@@ -82,10 +87,19 @@ private void indexFilm(@NotNull IndexWriter writer, @NotNull DatenFilm film) thr
8287
doc.add(new StringField(LuceneIndexKeys.DUPLICATE, Boolean.toString(film.isDuplicate()), Field.Store.NO));
8388

8489
addSendeDatum(doc, film);
90+
addWochentag(doc, film);
8591

8692
writer.addDocument(doc);
8793
}
8894

95+
private void addWochentag(@NotNull Document doc, @NotNull DatenFilm film) {
96+
var date = film.getDatumFilm();
97+
if (date != DatumFilm.UNDEFINED_FILM_DATE) {
98+
String strDate = weekdayFormatter.format(date);
99+
doc.add(new TextField(LuceneIndexKeys.SENDE_WOCHENTAG, strDate, Field.Store.NO));
100+
}
101+
}
102+
89103
private void addSendeDatum(@NotNull Document doc, @NotNull DatenFilm film) {
90104
String sendeDatumStr = DateTools.timeToString(DateUtil.convertFilmDateToLuceneDate(film),
91105
DateTools.Resolution.DAY);
@@ -135,14 +149,16 @@ protected Void doInBackground() {
135149
}
136150
reader = DirectoryReader.open(filmListe.getLuceneDirectory());
137151
filmListe.setReader(reader);
138-
} catch (Exception ex) {
152+
}
153+
catch (Exception ex) {
139154
logger.error("Lucene film index most probably damaged, deleting it.");
140155
try {
141156
var indexPath = StandardLocations.getFilmIndexPath();
142157
if (Files.exists(indexPath)) {
143158
FileUtils.deletePathRecursively(indexPath);
144159
}
145-
} catch (IOException e) {
160+
}
161+
catch (IOException e) {
146162
logger.error("Unable to delete lucene index path", e);
147163
}
148164
SwingUtilities.invokeLater(() -> {

0 commit comments

Comments
 (0)