From 814bb001584520967442ed5b21e198db799544e9 Mon Sep 17 00:00:00 2001 From: Jannik Date: Mon, 13 Aug 2018 23:56:16 +0200 Subject: [PATCH] added getAllNotCachedEntries() * added a method to get all not cached entries from the films db --- .../application/MainWindowController.java | 18 +++++++++++++ .../HomeFlix/controller/DBController.java | 25 ++++++++++++++++++- 2 files changed, 42 insertions(+), 1 deletion(-) diff --git a/src/main/java/kellerkinder/HomeFlix/application/MainWindowController.java b/src/main/java/kellerkinder/HomeFlix/application/MainWindowController.java index efc61c7..7bacad9 100644 --- a/src/main/java/kellerkinder/HomeFlix/application/MainWindowController.java +++ b/src/main/java/kellerkinder/HomeFlix/application/MainWindowController.java @@ -213,6 +213,8 @@ public class MainWindowController { initUI(); initActions(); dbController.init(); + + checkAllPosters(); // TODO testing } // Initialize general UI elements @@ -801,6 +803,22 @@ public class MainWindowController { String mimeType = URLConnection.guessContentTypeFromName(film.getStreamUrl()); return mimeType != null && (mimeType.contains("mp4") || mimeType.contains("vp6")); } + + private void posterModeStartup() { + checkAllPosters(); + } + + /** + * check if all posters are cached, if not cache the missing ones + */ + private void checkAllPosters() { + // get all not cached entries, none of them should have a cached poster + for (FilmTabelDataType entry : dbController.getAllNotCachedEntries()) { + System.out.println(entry.getStreamUrl() + " is NOT cached!"); + // TODO get all needed posters eg cache all not cached entries + // TODO for entries not available show homeflix logo + } + } // getter and setter diff --git a/src/main/java/kellerkinder/HomeFlix/controller/DBController.java b/src/main/java/kellerkinder/HomeFlix/controller/DBController.java index 02edc09..74e0d41 100644 --- a/src/main/java/kellerkinder/HomeFlix/controller/DBController.java +++ b/src/main/java/kellerkinder/HomeFlix/controller/DBController.java @@ -465,7 +465,7 @@ public class DBController { public void setCached(String streamUrl) { try { Statement stmt = connection.createStatement(); - stmt.executeUpdate("UPDATE films SET cached=1 WHERE streamUrl=\"" + streamUrl + "\";"); + stmt.executeUpdate("UPDATE films SET cached = 1 WHERE streamUrl = \"" + streamUrl + "\";"); connection.commit(); stmt.close(); } catch (SQLException e) { @@ -623,6 +623,29 @@ public class DBController { } } + /** + * get all NOT cached entries + * @return a {@link ArrayList} of all NOT cached entries + */ + public ArrayList getAllNotCachedEntries() { + ArrayList notCachedEntries = new ArrayList<>(); + + try { + Statement stmt = connection.createStatement(); + ResultSet rs = stmt.executeQuery("SELECT * FROM films WHERE cached = 0"); + while (rs.next()) { + notCachedEntries.add(new FilmTabelDataType(rs.getString("streamUrl"), + rs.getString("title"), rs.getString("season"), rs.getString("episode"), rs.getBoolean("favorite"), + rs.getBoolean("cached"), new ImageView(favorite_border_black))); + } + stmt.close(); + rs.close(); + } catch (SQLException e) { + LOGGER.error("An error occured, while getting all NOT cached entries", e); + } + return notCachedEntries; + } + /** * return the currentTime in ms saved in the database * @param streamUrl URL of the film