diff --git a/src/main/java/kellerkinder/HomeFlix/controller/DBController.java b/src/main/java/kellerkinder/HomeFlix/controller/DBController.java index 2b5567c..8d6c4b2 100644 --- a/src/main/java/kellerkinder/HomeFlix/controller/DBController.java +++ b/src/main/java/kellerkinder/HomeFlix/controller/DBController.java @@ -68,7 +68,6 @@ public class DBController { private List filmsdbStreamURL = new ArrayList(); // needed private List filmsAll = new ArrayList(); private List filmsStreamURL = new ArrayList(); // needed - private List filmsStreamData = new ArrayList(); private Connection connection = null; private static final Logger LOGGER = LogManager.getLogger(DBController.class.getName()); @@ -172,11 +171,9 @@ public class DBController { for (JsonValue item : items) { filmsAll.add(item.asObject().getString("titel", "")); filmsStreamURL.add(item.asObject().getString("streamUrl", "")); - filmsStreamData.add(path); // TODO check if all this is needed, maybe only use one table! // System.out.println(item.asObject().getString("titel", "")); // System.out.println(item.asObject().getString("streamUrl", "")); -// System.out.println(fileName); } LOGGER.info("added films from: " + path); } catch (IOException e) { @@ -285,7 +282,6 @@ public class DBController { filmsdbStreamURL.removeAll(filmsdbStreamURL); filmsAll.removeAll(filmsAll); filmsStreamURL.removeAll(filmsStreamURL); - filmsStreamData.removeAll(filmsStreamData); loadSources(); // reload all sources loadDatabase(); // reload all films saved in the DB @@ -343,10 +339,8 @@ public class DBController { * @throws SQLException * @throws FileNotFoundException * @throws IOException - * if lastName != filmsStreamData.get(b) then set i = 0, file changed */ private void checkAddEntry() throws SQLException, FileNotFoundException, IOException { - String lastName = ""; Statement stmt = connection.createStatement(); PreparedStatement ps = connection.prepareStatement("insert into film_streaming values (?, ?, ?, ?, ?, ?, ?, ?, ?)"); LOGGER.info("checking for entrys to add to DB ..."); @@ -368,49 +362,42 @@ public class DBController { } } else { // if it's a streaming source check the file for new films - // TODO implement add check for streaming sources + for (String entry : filmsStreamURL) { + if (!filmsdbStreamURL.contains(entry)) { + JsonArray items = Json.parse(new FileReader(source.getTitle())).asObject().get("entries").asArray(); + // for each item, check if it's the needed + for (JsonValue item : items) { + String streamUrl = item.asObject().getString("streamUrl", ""); + String titel = item.asObject().getString("titel", ""); + + // if it's the needed add it to the database + if (streamUrl.equals(entry)) { + ps.setInt(1, items.get(a).asObject().getInt("year", 0)); + ps.setInt(2, items.get(a).asObject().getInt("season", 0)); + ps.setInt(3, items.get(a).asObject().getInt("episode", 0)); + ps.setInt(4, 0); + ps.setString(5, items.get(a).asObject().getString("resolution", "")); + ps.setString(6, titel); + ps.setString(7, streamUrl); + ps.setString(8, "favorite_border_black"); + ps.setBoolean(9, false); + ps.addBatch(); // adds the entry + LOGGER.info("added \"" + titel + "\" to database"); + filmsAll.add(cutOffEnd(titel)); + } + } + } + } + ps.executeBatch(); + connection.commit(); + ps.close(); } } - - // TODO comment and rework - for (int b = 0; b < filmsStreamURL.size(); b++) { - if (filmsdbStreamURL.contains(filmsStreamURL.get(b))) { - } else { - if (lastName != "" && lastName != filmsStreamData.get(b)) { - a = 0; - } - lastName = filmsStreamData.get(b); - JsonObject object = Json.parse(new FileReader(filmsStreamData.get(b))).asObject(); - JsonArray items = object.get("entries").asArray(); - LOGGER.info(items.size() + ", " + a + "; " + b); - String streamURL = items.get(a).asObject().getString("streamUrl", ""); - String titel = items.get(a).asObject().getString("titel", ""); - - if (streamURL.equals(filmsStreamURL.get(b))) { - LOGGER.info("added \"" + titel + "\""); - - ps.setInt(1, items.get(a).asObject().getInt("year", 0)); - ps.setInt(2, items.get(a).asObject().getInt("season", 0)); - ps.setInt(3, items.get(a).asObject().getInt("episode", 0)); - ps.setInt(4, 0); - ps.setString(5, items.get(a).asObject().getString("resolution", "")); - ps.setString(6, items.get(a).asObject().getString("titel", "")); - ps.setString(7, items.get(a).asObject().getString("streamUrl", "")); - ps.setString(8, "favorite_border_black"); - ps.setBoolean(9, false); - ps.addBatch(); // adds the entry - } - a++; - } - } - ps.executeBatch(); - connection.commit(); - ps.close(); } - // TODO only for debugging - void ausgeben() { - LOGGER.info("Outputting all entries ... \n"); + // prints all entries from the database to the console + public void printAllDBEntriesDEBUG() { + System.out.println("Outputting all entries ... \n"); try { Statement stmt = connection.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM film_local"); @@ -424,7 +411,7 @@ public class DBController { stmt.close(); rs.close(); - LOGGER.info("Streaming Entries: \n"); + System.out.println("Streaming Entries: \n"); rs = stmt.executeQuery("SELECT * FROM film_streaming;"); while (rs.next()) { @@ -442,7 +429,7 @@ public class DBController { rs.close(); } catch (SQLException e) { - LOGGER.error("Ups! an error occured!", e); + LOGGER.error("An error occured, while printing all entries", e); } }