Skip to content

Commit d4ce42d

Browse files
committed
-switch to 14.4
-use sh256 for film hashing -cleanup
1 parent 3892d55 commit d4ce42d

File tree

9 files changed

+23
-32
lines changed

9 files changed

+23
-32
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
<groupId>de.mediathekview</groupId>
99
<artifactId>MediathekView</artifactId>
10-
<version>14.3.0</version>
10+
<version>14.4.0</version>
1111
<packaging>jar</packaging>
1212

1313
<name>${project.groupId}:${project.artifactId}</name>

src/main/java/mediathek/config/Daten.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,7 @@ private void clearKonfig() {
233233
listeAbo.clear();
234234
listeDownloads.clear();
235235
listeBlacklist.clear();
236-
listeBookmarkList.clear();
236+
listeBookmarkList.getObervableList().clear();
237237
}
238238

239239
private boolean load() {

src/main/java/mediathek/config/Konstanten.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@
2828
public class Konstanten {
2929
public static final String NEW_SENDER_ACTIVATED_QUESTION_CONFIG_KEY = "newSendersActivated.fourteen.three";
3030
public static final long MINIMUM_MEMORY_THRESHOLD = 768 * FileUtils.ONE_MB;
31-
public static final Version MVVERSION = new Version(14, 3, 0);
31+
public static final Version MVVERSION = new Version(14, 4, 0);
3232

33-
public static final ApplicationType APPLICATION_TYPE = ApplicationType.PRODUCTION;
33+
public static final ApplicationType APPLICATION_TYPE = ApplicationType.NIGHTLY;
3434
public static final String MACOS_OFFICIAL_APP = "OSX_OFFICIAL_APP";
3535

3636
public static final String FORMAT_ZIP = ".zip";

src/main/java/mediathek/daten/DatenFilm.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package mediathek.daten;
22

3+
import com.google.common.hash.HashCode;
4+
import com.google.common.hash.Hashing;
35
import mediathek.config.Config;
46
import mediathek.daten.abo.DatenAbo;
57
import mediathek.javafx.bookmark.BookmarkData;
@@ -409,10 +411,15 @@ public String getFileSizeForUrl(@NotNull String url) {
409411
/**
410412
* Return a unique index for comparison during updating the filmlist from diff.
411413
*
412-
* @return a unique "hash" string
414+
* @return a unique hash
413415
*/
414-
public String getUniqueHash() {
415-
return (getSender() + getThema()).toLowerCase() + getUrlNormalQuality() + getWebsiteUrl();
416+
public HashCode getSha256() {
417+
return Hashing.sha256().newHasher()
418+
.putUnencodedChars(getSender())
419+
.putUnencodedChars(getThema())
420+
.putUnencodedChars(getUrlNormalQuality())
421+
.putUnencodedChars(getWebsiteUrl())
422+
.hash();
416423
}
417424

418425
/**

src/main/java/mediathek/daten/ListeFilme.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package mediathek.daten;
22

3+
import com.google.common.hash.HashCode;
34
import mediathek.config.Konstanten;
45
import mediathek.tool.GermanStringSorter;
56
import org.jetbrains.annotations.NotNull;
@@ -84,10 +85,10 @@ public List<String> getThemenUnprocessed(String sender) {
8485
public synchronized void updateFromFilmList(@NotNull ListeFilme newFilmsList) {
8586
// In die vorhandene Liste soll eine andere Filmliste einsortiert werden
8687
// es werden nur Filme, die noch nicht vorhanden sind, einsortiert
87-
final HashSet<String> hashNewFilms = new HashSet<>(newFilmsList.size() + 1, 1);
88+
var hashNewFilms = new HashSet<HashCode>(newFilmsList.size() + 1, 1);
89+
newFilmsList.forEach(newFilm -> hashNewFilms.add(newFilm.getSha256()));
8890

89-
newFilmsList.forEach(newFilm -> hashNewFilms.add(newFilm.getUniqueHash()));
90-
this.removeIf(currentFilm -> hashNewFilms.contains(currentFilm.getUniqueHash()));
91+
this.removeIf(currentFilm -> hashNewFilms.contains(currentFilm.getSha256()));
9192

9293
hashNewFilms.clear();
9394

@@ -115,7 +116,8 @@ public synchronized DatenFilm getFilmByUrlAndSender(@NotNull String url, @NotNul
115116
* Find movie with given url
116117
* @param url String wiht URL
117118
* @return DatenFilm object if found or null
118-
*/public synchronized DatenFilm getFilmByUrl(@NotNull String url) {
119+
*/
120+
public synchronized DatenFilm getFilmByUrl(@NotNull String url) {
119121
return parallelStream()
120122
.filter(f -> f.getUrlNormalQuality().equalsIgnoreCase(url))
121123
.findAny()

src/main/java/mediathek/gui/tabs/tab_film/GuiFilme.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -757,7 +757,7 @@ public void actionPerformed(ActionEvent e) {
757757
updateBookmarkListAndRefresh(list);
758758
}
759759
//delete leftover items which have no corresponding DatenFilm objects anymore -> outdated
760-
daten.getListeBookmarkList().clear();
760+
daten.getListeBookmarkList().getObervableList().clear();
761761
JOptionPane.showMessageDialog(mediathekGui, "Merkliste wurde gelöscht.", Konstanten.PROGRAMMNAME, JOptionPane.INFORMATION_MESSAGE);
762762
} }
763763
}

src/main/java/mediathek/javafx/bookmark/BookmarkDataList.java

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package mediathek.javafx.bookmark;
22

33
import com.fasterxml.jackson.annotation.JsonGetter;
4-
import com.fasterxml.jackson.annotation.JsonIgnore;
54
import com.fasterxml.jackson.databind.ObjectMapper;
65
import javafx.beans.Observable;
76
import javafx.collections.FXCollections;
@@ -54,23 +53,6 @@ public ObservableList<BookmarkData> getObervableList() {
5453
return bookmarks;
5554
}
5655

57-
/**
58-
* Get size of bookmark list
59-
*
60-
* @return number of stored movies
61-
*/
62-
@JsonIgnore
63-
public int getNbOfEntries() {
64-
return bookmarks.size();
65-
}
66-
67-
/**
68-
* Delete Bookmarklist
69-
*/
70-
public void clear() {
71-
bookmarks.clear();
72-
}
73-
7456
/**
7557
* Add given film(s) to List if not yet in list
7658
* otherwise remove them from list

src/main/java/mediathek/javafx/bookmark/BookmarkWindowController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -635,7 +635,7 @@ private void scheduleBookmarkSave() {
635635

636636
private void updateDisplay() {
637637
lblCount.setText(String.format("Einträge: %d / %d", filteredBookmarkList.size(),
638-
Daten.getInstance().getListeBookmarkList().getNbOfEntries()));
638+
Daten.getInstance().getListeBookmarkList().getObervableList().size()));
639639
btnSaveList.setDisable(!listUpdated);
640640
if (listUpdated) {
641641
scheduleBookmarkSave();

src/main/java/mediathek/tool/cellrenderer/CellRendererFilme.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public CellRendererFilme() {
5151
selectedBookmarkIcon.setColorFilter(whiteColorFilter);
5252

5353
selectedBookmarkIconHighlighted = SVGIconUtilities.createSVGIcon("icons/fontawesome/bookmark.svg");
54-
selectedBookmarkIconHighlighted.setColorFilter(new FlatSVGIcon.ColorFilter(color -> Color.ORANGE));
54+
selectedBookmarkIconHighlighted.setColorFilter(new FlatSVGIcon.ColorFilter(_ -> Color.ORANGE));
5555

5656
normalBookmarkIcon = SVGIconUtilities.createSVGIcon("icons/fontawesome/bookmark.svg");
5757
}

0 commit comments

Comments
 (0)