From 5e0fd8063db5178551396f89511d55e3fc7afed9 Mon Sep 17 00:00:00 2001 From: Seil0 Date: Wed, 22 Apr 2020 18:29:39 +0200 Subject: [PATCH] use try with resourcess * rename package kellerkinder.HomeFlix to org.mosad.homeflix --- pom.xml | 6 +- .../homeflix}/application/FilmDetailView.java | 39 +- .../homeflix}/application/JavaFX11Main.java | 2 +- .../mosad/homeflix}/application/Main.java | 14 +- .../application/MainWindowController.java | 14 +- .../application/SeriesDetailView.java | 29 +- .../homeflix}/application/SettingsView.java | 10 +- .../homeflix}/controller/DBController.java | 465 ++++++++++-------- .../controller/OMDbAPIController.java | 7 +- .../controller/SourcesController.java | 9 +- .../controller/UpdateController.java | 5 +- .../homeflix}/controller/XMLController.java | 2 +- .../homeflix}/datatypes/DatabaseDataType.java | 2 +- .../datatypes/FilmTabelDataType.java | 2 +- .../datatypes/OMDbAPIResponseDataType.java | 88 ++-- .../datatypes/PosterModeElement.java | 2 +- .../homeflix}/datatypes/SeriresDVEpisode.java | 5 +- .../homeflix}/datatypes/SourceDataType.java | 2 +- .../player/HFMediaPlayerEventListener.java | 2 +- .../mosad/homeflix}/player/Player.java | 4 +- .../homeflix}/player/PlayerController.java | 9 +- src/main/resources/fxml/FilmDetailView.fxml | 2 +- src/main/resources/fxml/MainWindow.fxml | 2 +- src/main/resources/fxml/SeriesDetailView.fxml | 2 +- src/main/resources/fxml/SettingsView.fxml | 2 +- 25 files changed, 386 insertions(+), 340 deletions(-) rename src/main/java/{kellerkinder/HomeFlix => org/mosad/homeflix}/application/FilmDetailView.java (84%) rename src/main/java/{kellerkinder/HomeFlix => org/mosad/homeflix}/application/JavaFX11Main.java (71%) rename src/main/java/{kellerkinder/HomeFlix => org/mosad/homeflix}/application/Main.java (91%) rename src/main/java/{kellerkinder/HomeFlix => org/mosad/homeflix}/application/MainWindowController.java (97%) rename src/main/java/{kellerkinder/HomeFlix => org/mosad/homeflix}/application/SeriesDetailView.java (89%) rename src/main/java/{kellerkinder/HomeFlix => org/mosad/homeflix}/application/SettingsView.java (97%) rename src/main/java/{kellerkinder/HomeFlix => org/mosad/homeflix}/controller/DBController.java (59%) rename src/main/java/{kellerkinder/HomeFlix => org/mosad/homeflix}/controller/OMDbAPIController.java (98%) rename src/main/java/{kellerkinder/HomeFlix => org/mosad/homeflix}/controller/SourcesController.java (95%) rename src/main/java/{kellerkinder/HomeFlix => org/mosad/homeflix}/controller/UpdateController.java (98%) rename src/main/java/{kellerkinder/HomeFlix => org/mosad/homeflix}/controller/XMLController.java (99%) rename src/main/java/{kellerkinder/HomeFlix => org/mosad/homeflix}/datatypes/DatabaseDataType.java (98%) rename src/main/java/{kellerkinder/HomeFlix => org/mosad/homeflix}/datatypes/FilmTabelDataType.java (97%) rename src/main/java/{kellerkinder/HomeFlix => org/mosad/homeflix}/datatypes/OMDbAPIResponseDataType.java (68%) rename src/main/java/{kellerkinder/HomeFlix => org/mosad/homeflix}/datatypes/PosterModeElement.java (98%) rename src/main/java/{kellerkinder/HomeFlix => org/mosad/homeflix}/datatypes/SeriresDVEpisode.java (94%) rename src/main/java/{kellerkinder/HomeFlix => org/mosad/homeflix}/datatypes/SourceDataType.java (97%) rename src/main/java/{kellerkinder/HomeFlix => org/mosad/homeflix}/player/HFMediaPlayerEventListener.java (99%) rename src/main/java/{kellerkinder/HomeFlix => org/mosad/homeflix}/player/Player.java (98%) rename src/main/java/{kellerkinder/HomeFlix => org/mosad/homeflix}/player/PlayerController.java (98%) diff --git a/pom.xml b/pom.xml index 000963b..6687e32 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - org.kellerkinder + org.mosad Project-HomeFlix 0.8.0 jar @@ -113,7 +113,7 @@ - kellerkinder.HomeFlix.application.Main + org.mosad.homeflix.application.Main @@ -127,7 +127,7 @@ - kellerkinder.HomeFlix.application.JavaFX11Main + org.mosad.homeflix.application.JavaFX11Main diff --git a/src/main/java/kellerkinder/HomeFlix/application/FilmDetailView.java b/src/main/java/org/mosad/homeflix/application/FilmDetailView.java similarity index 84% rename from src/main/java/kellerkinder/HomeFlix/application/FilmDetailView.java rename to src/main/java/org/mosad/homeflix/application/FilmDetailView.java index 8c02475..a4d9c37 100644 --- a/src/main/java/kellerkinder/HomeFlix/application/FilmDetailView.java +++ b/src/main/java/org/mosad/homeflix/application/FilmDetailView.java @@ -20,7 +20,7 @@ * */ -package kellerkinder.HomeFlix.application; +package org.mosad.homeflix.application; import java.awt.Desktop; import java.io.File; @@ -28,6 +28,10 @@ import java.io.IOException; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.mosad.homeflix.controller.DBController; +import org.mosad.homeflix.controller.XMLController; +import org.mosad.homeflix.datatypes.OMDbAPIResponseDataType; +import org.mosad.homeflix.player.Player; import com.jfoenix.controls.JFXButton; @@ -39,9 +43,6 @@ import javafx.scene.image.ImageView; import javafx.scene.layout.AnchorPane; import javafx.scene.text.Text; import javafx.util.Duration; -import kellerkinder.HomeFlix.controller.DBController; -import kellerkinder.HomeFlix.controller.XMLController; -import kellerkinder.HomeFlix.player.Player; public class FilmDetailView { @@ -136,29 +137,29 @@ public class FilmDetailView { */ public void setFilm(String streamURL) { currentStreamURL = streamURL; - String[] cacheInfo = dbController.readCache(streamURL); // get the cache data from the database + OMDbAPIResponseDataType cacheInfo = dbController.readCache(streamURL); // get the cache data from the database // add the cache data to the GUI - lblTitle.setText(cacheInfo[0]); - lblYear.setText("(" + cacheInfo[1] + ")"); - lblScore.setText(XMLController.getLocalBundle().getString("score") + ": " + cacheInfo[15] + "%"); + lblTitle.setText(cacheInfo.getTitle()); + lblYear.setText("(" + cacheInfo.getYear() + ")"); + lblScore.setText(XMLController.getLocalBundle().getString("score") + ": " + cacheInfo.getMetascore() + "%"); - textPlot.setText(cacheInfo[11]); + textPlot.setText(cacheInfo.getPlot()); - lblDirectors.setText(cacheInfo[8]); - lblWriters.setText(cacheInfo[9]); - lblActors.setText(cacheInfo[10]); + lblDirectors.setText(cacheInfo.getDirector()); + lblWriters.setText(cacheInfo.getWriter()); + lblActors.setText(cacheInfo.getActors()); - lblRuntime.setText(cacheInfo[6]); - lblLanguage.setText(cacheInfo[12]); - lblRevenue.setText(cacheInfo[18]); - lblRating.setText(cacheInfo[2]); + lblRuntime.setText(cacheInfo.getRuntime()); + lblLanguage.setText(cacheInfo.getLanguage()); + lblRevenue.setText(cacheInfo.getBoxOffice()); + lblRating.setText(cacheInfo.getRated()); try { - if (new File(cacheInfo[20]).isFile()) { - imgPoster.setImage(new Image(new File(cacheInfo[20]).toURI().toString())); + if (new File(cacheInfo.getPoster()).isFile()) { + imgPoster.setImage(new Image(new File(cacheInfo.getPoster()).toURI().toString())); } else { - imgPoster.setImage(new Image(cacheInfo[20])); + imgPoster.setImage(new Image(cacheInfo.getPoster())); } } catch (Exception e) { imgPoster.setImage(new Image("icons/Homeflix_Poster.png")); diff --git a/src/main/java/kellerkinder/HomeFlix/application/JavaFX11Main.java b/src/main/java/org/mosad/homeflix/application/JavaFX11Main.java similarity index 71% rename from src/main/java/kellerkinder/HomeFlix/application/JavaFX11Main.java rename to src/main/java/org/mosad/homeflix/application/JavaFX11Main.java index 1b2bc01..686e64c 100644 --- a/src/main/java/kellerkinder/HomeFlix/application/JavaFX11Main.java +++ b/src/main/java/org/mosad/homeflix/application/JavaFX11Main.java @@ -1,4 +1,4 @@ -package kellerkinder.HomeFlix.application; +package org.mosad.homeflix.application; public class JavaFX11Main { diff --git a/src/main/java/kellerkinder/HomeFlix/application/Main.java b/src/main/java/org/mosad/homeflix/application/Main.java similarity index 91% rename from src/main/java/kellerkinder/HomeFlix/application/Main.java rename to src/main/java/org/mosad/homeflix/application/Main.java index d9051f1..ffe8215 100644 --- a/src/main/java/kellerkinder/HomeFlix/application/Main.java +++ b/src/main/java/org/mosad/homeflix/application/Main.java @@ -20,13 +20,15 @@ * */ -package kellerkinder.HomeFlix.application; +package org.mosad.homeflix.application; import java.io.File; import java.io.IOException; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.mosad.homeflix.controller.DBController; +import org.mosad.homeflix.controller.XMLController; import javafx.application.Application; import javafx.fxml.FXMLLoader; @@ -34,7 +36,6 @@ import javafx.scene.Scene; import javafx.scene.image.Image; import javafx.scene.layout.AnchorPane; import javafx.stage.Stage; -import kellerkinder.HomeFlix.controller.XMLController; public class Main extends Application { @@ -62,7 +63,10 @@ public class Main extends Application { //primaryStage.setResizable(false); primaryStage.setTitle("Project HomeFlix"); primaryStage.getIcons().add(new Image(Main.class.getResourceAsStream("/icons/Homeflix_Icon_64x64.png"))); //adds application icon - primaryStage.setOnCloseRequest(event -> System.exit(0)); + primaryStage.setOnCloseRequest(event -> { + DBController.getInstance().closeDBConnection(); + System.exit(0); + }); // generate window scene = new Scene(pane); // create new scene, append pane to scene @@ -100,7 +104,9 @@ public class Main extends Application { LOGGER.info("Java: " + XMLController.getJavaVend() + " " + XMLController.getJavaVers()); LOGGER.info("User: " + XMLController.getUserName() + " " + XMLController.getUserHome()); - xmlController = new XMLController(); + xmlController = new XMLController(); // Initialize the XMLController + + // TODO run Migrations if (!XMLController.getConfigFile().exists()) { xmlController.saveSettings(); // save the settings file with default values if it doesn't exist diff --git a/src/main/java/kellerkinder/HomeFlix/application/MainWindowController.java b/src/main/java/org/mosad/homeflix/application/MainWindowController.java similarity index 97% rename from src/main/java/kellerkinder/HomeFlix/application/MainWindowController.java rename to src/main/java/org/mosad/homeflix/application/MainWindowController.java index f5688c2..00e9bd2 100644 --- a/src/main/java/kellerkinder/HomeFlix/application/MainWindowController.java +++ b/src/main/java/org/mosad/homeflix/application/MainWindowController.java @@ -20,7 +20,7 @@ * */ -package kellerkinder.HomeFlix.application; +package org.mosad.homeflix.application; import java.io.File; import java.io.FileReader; @@ -39,6 +39,12 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.kellerkinder.Alerts.JFX2BtnCancelAlert; import org.kellerkinder.Alerts.JFXInfoAlert; +import org.mosad.homeflix.controller.DBController; +import org.mosad.homeflix.controller.OMDbAPIController; +import org.mosad.homeflix.controller.UpdateController; +import org.mosad.homeflix.controller.XMLController; +import org.mosad.homeflix.datatypes.FilmTabelDataType; +import org.mosad.homeflix.datatypes.PosterModeElement; import com.eclipsesource.json.Json; import com.eclipsesource.json.JsonArray; @@ -63,12 +69,6 @@ import javafx.stage.DirectoryChooser; import javafx.stage.FileChooser; import javafx.stage.Stage; import javafx.util.Duration; -import kellerkinder.HomeFlix.controller.DBController; -import kellerkinder.HomeFlix.controller.OMDbAPIController; -import kellerkinder.HomeFlix.controller.UpdateController; -import kellerkinder.HomeFlix.controller.XMLController; -import kellerkinder.HomeFlix.datatypes.FilmTabelDataType; -import kellerkinder.HomeFlix.datatypes.PosterModeElement; public class MainWindowController { diff --git a/src/main/java/kellerkinder/HomeFlix/application/SeriesDetailView.java b/src/main/java/org/mosad/homeflix/application/SeriesDetailView.java similarity index 89% rename from src/main/java/kellerkinder/HomeFlix/application/SeriesDetailView.java rename to src/main/java/org/mosad/homeflix/application/SeriesDetailView.java index 018dab3..a1c3a53 100644 --- a/src/main/java/kellerkinder/HomeFlix/application/SeriesDetailView.java +++ b/src/main/java/org/mosad/homeflix/application/SeriesDetailView.java @@ -20,7 +20,7 @@ * */ -package kellerkinder.HomeFlix.application; +package org.mosad.homeflix.application; import java.awt.Desktop; import java.io.File; @@ -28,6 +28,11 @@ import java.io.IOException; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.mosad.homeflix.controller.DBController; +import org.mosad.homeflix.controller.XMLController; +import org.mosad.homeflix.datatypes.OMDbAPIResponseDataType; +import org.mosad.homeflix.datatypes.SeriresDVEpisode; +import org.mosad.homeflix.player.Player; import com.jfoenix.controls.JFXButton; @@ -45,10 +50,6 @@ import javafx.scene.layout.AnchorPane; import javafx.scene.layout.HBox; import javafx.scene.text.Text; import javafx.util.Duration; -import kellerkinder.HomeFlix.controller.DBController; -import kellerkinder.HomeFlix.controller.XMLController; -import kellerkinder.HomeFlix.datatypes.SeriresDVEpisode; -import kellerkinder.HomeFlix.player.Player; public class SeriesDetailView { @@ -144,21 +145,21 @@ public class SeriesDetailView { */ public void setSeries(String streamURL) { currentStreamURL = streamURL; - String[] cacheInfo = dbController.readCache(streamURL); // get the cache data from the database + OMDbAPIResponseDataType cacheInfo = dbController.readCache(streamURL); // get the cache data from the database // add the cache data to the GUI - lblTitle.setText(cacheInfo[0]); - lblYear.setText("(" + cacheInfo[1] + ")"); - lblScore.setText(XMLController.getLocalBundle().getString("score") + ": " + cacheInfo[15] + "%"); + lblTitle.setText(cacheInfo.getTitle()); + lblYear.setText("(" + cacheInfo.getYear() + ")"); + lblScore.setText(XMLController.getLocalBundle().getString("score") + ": " + cacheInfo.getMetascore() + "%"); - textPlot.setText(cacheInfo[11]); + textPlot.setText(cacheInfo.getPlot()); - lblDirectors.setText(cacheInfo[8]); - lblWriters.setText(cacheInfo[9]); - lblActors.setText(cacheInfo[10]); + lblDirectors.setText(cacheInfo.getDirector()); + lblWriters.setText(cacheInfo.getWriter()); + lblActors.setText(cacheInfo.getActors()); try { - imgPoster.setImage(new Image(new File(cacheInfo[20]).toURI().toString())); + imgPoster.setImage(new Image(new File(cacheInfo.getPoster()).toURI().toString())); } catch (Exception e) { imgPoster.setImage(new Image("icons/Homeflix_Poster.png")); LOGGER.error("No Poster found, useing default."); diff --git a/src/main/java/kellerkinder/HomeFlix/application/SettingsView.java b/src/main/java/org/mosad/homeflix/application/SettingsView.java similarity index 97% rename from src/main/java/kellerkinder/HomeFlix/application/SettingsView.java rename to src/main/java/org/mosad/homeflix/application/SettingsView.java index 5ff26e8..b44541a 100644 --- a/src/main/java/kellerkinder/HomeFlix/application/SettingsView.java +++ b/src/main/java/org/mosad/homeflix/application/SettingsView.java @@ -20,7 +20,7 @@ * */ -package kellerkinder.HomeFlix.application; +package org.mosad.homeflix.application; import java.io.File; import java.io.FileReader; @@ -30,6 +30,10 @@ import java.io.Writer; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.mosad.homeflix.controller.DBController; +import org.mosad.homeflix.controller.UpdateController; +import org.mosad.homeflix.controller.XMLController; +import org.mosad.homeflix.datatypes.SourceDataType; import com.eclipsesource.json.Json; import com.eclipsesource.json.JsonArray; @@ -54,10 +58,6 @@ import javafx.scene.layout.AnchorPane; import javafx.scene.paint.Color; import javafx.stage.DirectoryChooser; import javafx.stage.FileChooser; -import kellerkinder.HomeFlix.controller.DBController; -import kellerkinder.HomeFlix.controller.UpdateController; -import kellerkinder.HomeFlix.controller.XMLController; -import kellerkinder.HomeFlix.datatypes.SourceDataType; public class SettingsView { diff --git a/src/main/java/kellerkinder/HomeFlix/controller/DBController.java b/src/main/java/org/mosad/homeflix/controller/DBController.java similarity index 59% rename from src/main/java/kellerkinder/HomeFlix/controller/DBController.java rename to src/main/java/org/mosad/homeflix/controller/DBController.java index 1f7fa5e..9b70cde 100644 --- a/src/main/java/kellerkinder/HomeFlix/controller/DBController.java +++ b/src/main/java/org/mosad/homeflix/controller/DBController.java @@ -19,7 +19,7 @@ * MA 02110-1301, USA. */ -package kellerkinder.HomeFlix.controller; +package org.mosad.homeflix.controller; import java.io.File; import java.io.FileNotFoundException; @@ -38,14 +38,14 @@ import java.util.List; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.mosad.homeflix.datatypes.DatabaseDataType; +import org.mosad.homeflix.datatypes.FilmTabelDataType; +import org.mosad.homeflix.datatypes.OMDbAPIResponseDataType; +import org.mosad.homeflix.datatypes.PosterModeElement; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.scene.image.Image; -import kellerkinder.HomeFlix.datatypes.DatabaseDataType; -import kellerkinder.HomeFlix.datatypes.FilmTabelDataType; -import kellerkinder.HomeFlix.datatypes.OMDbAPIResponseDataType; -import kellerkinder.HomeFlix.datatypes.PosterModeElement; public class DBController { @@ -103,15 +103,13 @@ public class DBController { * cache table: streamUrl is primary key */ private void createDatabase() { - try { - Statement stmt = connection.createStatement(); + try (Statement stmt = connection.createStatement();) { stmt.executeUpdate("create table if not exists films (streamUrl, title, season, episode, favorite, cached, currentTime)"); stmt.executeUpdate("create table if not exists cache (" + "streamUrl, Title, Year, Rated, Released, Season, Episode ,Runtime, Genre, Director, Writer," + " Actors, Plot, Language, Country, Awards, Poster, Metascore, imdbRating, imdbVotes," + " imdbID, Type, dvd, BoxOffice, Website, Response)"); connection.commit(); - stmt.close(); } catch (SQLException e) { LOGGER.error(e); } @@ -122,16 +120,16 @@ public class DBController { */ private void loadDatabase() { // get all entries from the table - try { - Statement stmt = connection.createStatement(); - ResultSet rs = stmt.executeQuery("SELECT * FROM films"); - while (rs.next()) { - databaseStreams.add(new DatabaseDataType(rs.getString("streamUrl"), - rs.getString("title"), rs.getString("season"), rs.getString("episode"), - rs.getInt("favorite"), rs.getDouble("currentTime"))); + try (Statement stmt = connection.createStatement();) { + + try (ResultSet rs = stmt.executeQuery("SELECT * FROM films");) { + while (rs.next()) { + databaseStreams.add(new DatabaseDataType(rs.getString("streamUrl"), + rs.getString("title"), rs.getString("season"), rs.getString("episode"), + rs.getInt("favorite"), rs.getDouble("currentTime"))); + } } - stmt.close(); - rs.close(); + } catch (SQLException e) { LOGGER.error("Ups! an error occured!", e); } @@ -145,6 +143,18 @@ public class DBController { sourceStreams = sourcesController.loadSources(); } + /** + * try to close the databse connection + */ + public void closeDBConnection( ) { + try { + connection.commit(); + connection.close(); + } catch (SQLException e) { + LOGGER.error("Error while trying to close the databse connection", e); + } + } + /** * load all streams from the database to a ObservableList, order entries by title * @return a ObservableList that contains all streams from the database @@ -152,17 +162,17 @@ public class DBController { public ObservableList getStreamsList() { ObservableList filmsList = FXCollections.observableArrayList(); LOGGER.info("loading data from database ..."); - try { - //load local Data - Statement stmt = connection.createStatement(); - ResultSet rs = stmt.executeQuery("SELECT * FROM films ORDER BY title"); + + //load local Data + try (Statement stmt = connection.createStatement(); ) { - while (rs.next()) { - filmsList.add(new FilmTabelDataType(rs.getString("streamUrl"), - rs.getString("title"), rs.getString("season"), rs.getString("episode"))); + try (ResultSet rs = stmt.executeQuery("SELECT * FROM films ORDER BY title");) { + while (rs.next()) { + filmsList.add(new FilmTabelDataType(rs.getString("streamUrl"), + rs.getString("title"), rs.getString("season"), rs.getString("episode"))); + } } - stmt.close(); - rs.close(); + } catch (SQLException e) { LOGGER.error("Ups! an error occured!", e); } @@ -178,17 +188,16 @@ public class DBController { public FilmTabelDataType getStream(String streamUrl) { FilmTabelDataType film = null; LOGGER.info("refresh data for " + streamUrl); - try { - PreparedStatement ps = connection.prepareStatement("SELECT * FROM films WHERE streamUrl = ?"); + try (PreparedStatement ps = connection.prepareStatement("SELECT * FROM films WHERE streamUrl = ?");) { ps.setString(1, streamUrl); - ResultSet rs = ps.executeQuery(); - while (rs.next()) { - film = new FilmTabelDataType(rs.getString("streamUrl"), - rs.getString("title"), rs.getString("season"), rs.getString("episode")); + try (ResultSet rs = ps.executeQuery();) { + while (rs.next()) { + film = new FilmTabelDataType(rs.getString("streamUrl"), + rs.getString("title"), rs.getString("season"), rs.getString("episode")); + } } - rs.close(); - ps.close(); + } catch (Exception e) { LOGGER.error("Ups! error while refreshing mwc!", e); } @@ -201,25 +210,24 @@ public class DBController { * @return a ObservableList of PosterModeElements */ public ObservableList getPosterElementsList() { - ObservableList posterElementsList = FXCollections.observableArrayList(); LOGGER.info("loading data from database ..."); - try { - //load local Data - Statement stmt = connection.createStatement(); - ResultSet rs = stmt.executeQuery("SELECT * FROM films WHERE season = '' OR season = '0' ORDER BY title"); + + //load local Data + try (Statement stmt = connection.createStatement();) { - while (rs.next()) { - String[] cacheData = readCache(rs.getString("streamUrl")); // get from the cache table - - if(cacheData[20] != null && cacheData[20].length() > 0) { - posterElementsList.add(new PosterModeElement(rs.getString("streamUrl"), cacheData[0], new Image(new File(cacheData[20]).toURI().toString()))); - } else { - posterElementsList.add(new PosterModeElement(rs.getString("streamUrl"), cacheData[0], new Image("icons/Homeflix_Poster.png"))); + try (ResultSet rs = stmt.executeQuery("SELECT * FROM films WHERE season = '' OR season = '0' ORDER BY title");) { + while (rs.next()) { + String[] cacheData = readCacheLegacy(rs.getString("streamUrl")); // get from the cache table + + if(cacheData[20] != null && cacheData[20].length() > 0) { + posterElementsList.add(new PosterModeElement(rs.getString("streamUrl"), cacheData[0], new Image(new File(cacheData[20]).toURI().toString()))); + } else { + posterElementsList.add(new PosterModeElement(rs.getString("streamUrl"), cacheData[0], new Image("icons/Homeflix_Poster.png"))); + } } } - stmt.close(); - rs.close(); + } catch (SQLException e) { LOGGER.error("An error occured while getting all PosterElements!", e); } @@ -256,69 +264,71 @@ public class DBController { * check if there are any entries that have been removed from the film-directory * @throws SQLException */ - private void checkRemoveEntry() throws SQLException { - PreparedStatement ps = connection.prepareStatement("DELETE FROM films WHERE streamUrl = ?"); + private void checkRemoveEntry() { LOGGER.info("checking for entrys to remove to DB ..."); - for (DatabaseDataType dbStreamEntry : databaseStreams) { - // if the directory doen't contain the entry form the database, remove it - - // if sourceStreams has a item where StreamUrl equals dbStreamEntry.getStreamUrl() return it, else null - DatabaseDataType result = sourceStreams.stream() - .filter(x -> dbStreamEntry.getStreamUrl().equals(x.getStreamUrl())) - .findAny() - .orElse(null); - - // if the result is null, the file is missing, remove it from the database - if (result == null) { - ps.setString(1, dbStreamEntry.getStreamUrl()); - ps.addBatch(); - LOGGER.info("removed \"" + dbStreamEntry.getTitle() + "\" from database"); + try (PreparedStatement ps = connection.prepareStatement("DELETE FROM films WHERE streamUrl = ?");) { + for (DatabaseDataType dbStreamEntry : databaseStreams) { + // if the directory doen't contain the entry form the database, remove it + + // if sourceStreams has a item where StreamUrl equals dbStreamEntry.getStreamUrl() return it, else null + DatabaseDataType result = sourceStreams.stream() + .filter(x -> dbStreamEntry.getStreamUrl().equals(x.getStreamUrl())) + .findAny() + .orElse(null); + + // if the result is null, the file is missing, remove it from the database + if (result == null) { + ps.setString(1, dbStreamEntry.getStreamUrl()); + ps.addBatch(); + LOGGER.info("removed \"" + dbStreamEntry.getTitle() + "\" from database"); + } } + + ps.executeBatch(); + connection.commit(); + } catch (SQLException e) { + LOGGER.error("An error occured, while cheking for media to remove", e); } - - ps.executeBatch(); - connection.commit(); - ps.close(); } /** - * check if there are new films in the film-directory - * @throws SQLException + * check for new media in the source directories * @throws FileNotFoundException * @throws IOException */ - private void checkAddEntry() throws SQLException, FileNotFoundException, IOException { - PreparedStatement ps = connection.prepareStatement("insert into films values (?, ?, ?, ?, ?, ?, ?)"); + private void checkAddEntry() throws FileNotFoundException, IOException { LOGGER.info("checking for entrys to add to DB ..."); - // new - for (DatabaseDataType sourceStreamEntry : sourceStreams) { - - // if databaseStream has a item where StreamUrl equals sourceStreamEntry.getStreamUrl() return it, else null - DatabaseDataType result = databaseStreams.stream() - .filter(x -> sourceStreamEntry.getStreamUrl().equals(x.getStreamUrl())) - .findAny() - .orElse(null); - - // if the result is null, the entry is missing, add it to the database - if (result == null) { - ps.setString(1, sourceStreamEntry.getStreamUrl()); - ps.setString(2, sourceStreamEntry.getTitle()); - ps.setString(3, sourceStreamEntry.getSeason()); - ps.setString(4, sourceStreamEntry.getEpisode()); - ps.setInt(5, sourceStreamEntry.getFavorite()); - ps.setDate(6, new Date(0)); - ps.setDouble(7, sourceStreamEntry.getCurrentTime()); - ps.addBatch(); // adds the entry - LOGGER.info("Added \"" + sourceStreamEntry.getTitle() + "\" to database"); - databaseStreams.add(sourceStreamEntry); + try (PreparedStatement ps = connection.prepareStatement("insert into films values (?, ?, ?, ?, ?, ?, ?)");) { + for (DatabaseDataType sourceStreamEntry : sourceStreams) { + + // if databaseStream has a item where StreamUrl equals sourceStreamEntry.getStreamUrl() return it, else null + DatabaseDataType result = databaseStreams.stream() + .filter(x -> sourceStreamEntry.getStreamUrl().equals(x.getStreamUrl())) + .findAny() + .orElse(null); + + // if the result is null, the entry is missing, add it to the database + if (result == null) { + ps.setString(1, sourceStreamEntry.getStreamUrl()); + ps.setString(2, sourceStreamEntry.getTitle()); + ps.setString(3, sourceStreamEntry.getSeason()); + ps.setString(4, sourceStreamEntry.getEpisode()); + ps.setInt(5, sourceStreamEntry.getFavorite()); + ps.setDate(6, new Date(0)); + ps.setDouble(7, sourceStreamEntry.getCurrentTime()); + ps.addBatch(); // adds the entry + LOGGER.info("Added \"" + sourceStreamEntry.getTitle() + "\" to database"); + databaseStreams.add(sourceStreamEntry); + } } + + ps.executeBatch(); + connection.commit(); + } catch (SQLException e) { + LOGGER.error("An error occured, while cheking for new media", e); } - - ps.executeBatch(); - connection.commit(); - ps.close(); } /** @@ -327,44 +337,42 @@ public class DBController { */ public void printAllDBEntriesDEBUG() { System.out.println("Outputting all entries ... \n"); - try { - Statement stmt = connection.createStatement(); - ResultSet rs = stmt.executeQuery("SELECT * FROM films"); - while (rs.next()) { - System.out.println(rs.getString("streamUrl")); - System.out.println(rs.getString("title")); - System.out.println(rs.getString("season")); - System.out.println(rs.getString("episode")); - System.out.println(rs.getString("rating")); - System.out.println(rs.getString("cached")); - System.out.println(rs.getString("currentTime") + "\n"); + try (Statement stmt = connection.createStatement();) { + + try (ResultSet rs = stmt.executeQuery("SELECT * FROM films");) { + while (rs.next()) { + System.out.println(rs.getString("streamUrl")); + System.out.println(rs.getString("title")); + System.out.println(rs.getString("season")); + System.out.println(rs.getString("episode")); + System.out.println(rs.getString("rating")); + System.out.println(rs.getString("cached")); + System.out.println(rs.getString("currentTime") + "\n"); + } } - rs.close(); - stmt.close(); + } catch (SQLException e) { LOGGER.error("An error occured, while printing all entries", e); } } /** - * return the favorite state for a stream - * @param streamURL URL of the stream + * return the favorite status of a media entry + * @param mediaURL URL of the media * @return 0 if it's not a favorite, else 1 */ - public int getFavoriteState(String streamURL) { + public int getFavoriteState(String mediaURL) { int favoriteState = 0; - PreparedStatement ps; - try { - ps = connection.prepareStatement("SELECT favorite FROM films WHERE streamUrl = ?"); - ps.setString(1, streamURL); - ResultSet rs = ps.executeQuery(); + + try (PreparedStatement ps = connection.prepareStatement("SELECT favorite FROM films WHERE streamUrl = ?");) { + ps.setString(1, mediaURL); - while (rs.next()) { - favoriteState = rs.getInt("favorite"); + try (ResultSet rs = ps.executeQuery();) { + while (rs.next()) { + favoriteState = rs.getInt("favorite"); + } } - rs.close(); - ps.close(); } catch (SQLException e) { LOGGER.error("Ups! an error occured!", e); } @@ -373,18 +381,13 @@ public class DBController { } public void toggleFavoriteState(String streamURL) { - PreparedStatement ps; - try { - if (getFavoriteState(streamURL) == 0) { - ps = connection.prepareStatement("UPDATE films SET favorite = 1 WHERE streamUrl = ?"); - } else { - ps = connection.prepareStatement("UPDATE films SET favorite = 0 WHERE streamUrl = ?"); - } - - ps.setString(1, streamURL); + int fav = getFavoriteState(streamURL) == 0 ? 1 : 0; + + try (PreparedStatement ps = connection.prepareStatement("UPDATE films SET favorite = ? WHERE streamUrl = ?");) { + ps.setInt(1, fav); + ps.setString(2, streamURL); ps.executeUpdate(); connection.commit(); - ps.close(); } catch (SQLException e) { LOGGER.error("Ups! an error occured!", e); } @@ -396,12 +399,11 @@ public class DBController { */ public void dislike(String streamUrl) { LOGGER.info("dislike " + streamUrl); - try { - PreparedStatement ps = connection.prepareStatement("UPDATE films SET favorite = 0 WHERE streamUrl = ?"); + + try (PreparedStatement ps = connection.prepareStatement("UPDATE films SET favorite = 0 WHERE streamUrl = ?");){ ps.setString(1, streamUrl); ps.executeUpdate(); connection.commit(); - ps.close(); } catch (SQLException e) { LOGGER.error("Ups! an error occured!", e); } @@ -413,12 +415,11 @@ public class DBController { */ public void like(String streamUrl) { LOGGER.info("like " + streamUrl); - try { - PreparedStatement ps = connection.prepareStatement("UPDATE films SET favorite = 1 WHERE streamUrl = ?"); + + try (PreparedStatement ps = connection.prepareStatement("UPDATE films SET favorite = 1 WHERE streamUrl = ?");) { ps.setString(1, streamUrl); ps.executeUpdate(); connection.commit(); - ps.close(); } catch (SQLException e) { LOGGER.error("Ups! An error occured!", e); } @@ -429,13 +430,11 @@ public class DBController { * @param streamUrl URL of the film */ public void setCached(String streamUrl) { - try { - PreparedStatement ps = connection.prepareStatement("UPDATE films SET cached = ? WHERE streamUrl = ?"); + try (PreparedStatement ps = connection.prepareStatement("UPDATE films SET cached = ? WHERE streamUrl = ?");) { ps.setDate(1, new Date(System.currentTimeMillis())); ps.setString(2, streamUrl); ps.executeUpdate(); connection.commit(); - ps.close(); } catch (SQLException e) { LOGGER.error("Ups! An error occured, while setting cached = DATE for {}.", streamUrl, e); } @@ -447,17 +446,16 @@ public class DBController { */ public LocalDate getCacheDate(String streamUrl) { LocalDate cacheDate = LocalDate.now().minusDays(31); - try { - PreparedStatement ps = connection.prepareStatement("SELECT cached FROM films WHERE streamUrl = ?"); + + try (PreparedStatement ps = connection.prepareStatement("SELECT cached FROM films WHERE streamUrl = ?");){ ps.setString(1, streamUrl); - ResultSet rs = ps.executeQuery(); - while (rs.next()) { - cacheDate = rs.getDate("cached").toLocalDate(); + try (ResultSet rs = ps.executeQuery();) { + while (rs.next()) { + cacheDate = rs.getDate("cached").toLocalDate(); + } } - rs.close(); - ps.close(); } catch (SQLException e) { LOGGER.error("Ups! An error occured, while rerading the cached date for {}.", streamUrl, e); } @@ -471,10 +469,9 @@ public class DBController { * @param omdbResponse the response data from omdbAPI */ public void addCache(String streamUrl, OMDbAPIResponseDataType omdbResponse) { - try { - PreparedStatement ps = connection.prepareStatement("insert into cache values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"); - - LOGGER.info("adding cache for: " + streamUrl); + LOGGER.info("adding cache for: " + streamUrl); + + try (PreparedStatement ps = connection.prepareStatement("insert into cache values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");){ ps.setString(1,streamUrl); ps.setString(2,omdbResponse.getTitle()); ps.setString(3,omdbResponse.getYear()); @@ -505,7 +502,6 @@ public class DBController { ps.addBatch(); ps.executeBatch(); connection.commit(); - ps.close(); } catch (Exception e) { LOGGER.error("Ups! An error while adding cache data for {}.", streamUrl, e); } @@ -518,13 +514,13 @@ public class DBController { */ public boolean searchCacheByURL(String streamUrl) { boolean retValue = false; - try { - PreparedStatement ps = connection.prepareStatement("SELECT * FROM cache WHERE streamUrl = ?"); + try (PreparedStatement ps = connection.prepareStatement("SELECT * FROM cache WHERE streamUrl = ?");) { ps.setString(1, streamUrl); - ResultSet rs = ps.executeQuery(); - retValue = rs.next(); - rs.close(); - ps.close(); + + try (ResultSet rs = ps.executeQuery();) { + retValue = rs.next(); + } + } catch (Exception e) { LOGGER.error("Ups! An error while searching for {} in the cache.", streamUrl, e); } @@ -537,40 +533,38 @@ public class DBController { * @param streamUrl URL of the film * @return a String array (length = 21) with all cached data */ - public String[] readCache(String streamUrl) { + public String[] readCacheLegacy(String streamUrl) { String[] cacheData = new String[21]; - try { - PreparedStatement ps = connection.prepareStatement("SELECT * FROM cache WHERE streamUrl = ?"); + try (PreparedStatement ps = connection.prepareStatement("SELECT * FROM cache WHERE streamUrl = ?");) { ps.setString(1, streamUrl); - ResultSet rs = ps.executeQuery(); - while (rs.next()) { - cacheData[0] = rs.getString("Title"); - cacheData[1] = rs.getString("Year"); - cacheData[2] = rs.getString("Rated"); - cacheData[3] = rs.getString("Released"); - cacheData[4] = rs.getString("Season"); - cacheData[5] = rs.getString("Episode"); - cacheData[6] = rs.getString("Runtime"); - cacheData[7] = rs.getString("Genre"); - cacheData[8] = rs.getString("Director"); - cacheData[9] = rs.getString("Writer"); - cacheData[10] = rs.getString("Actors"); - cacheData[11] = rs.getString("Plot"); - cacheData[12] = rs.getString("Language"); - cacheData[13] = rs.getString("Country"); - cacheData[14] = rs.getString("Awards"); - cacheData[15] = rs.getString("metascore"); - cacheData[16] = rs.getString("imdbRating"); - cacheData[17] = rs.getString("Type"); - cacheData[18] = rs.getString("BoxOffice"); - cacheData[19] = rs.getString("Website"); - cacheData[20] = rs.getString("Poster"); + try (ResultSet rs = ps.executeQuery();) { + while (rs.next()) { + cacheData[0] = rs.getString("Title"); + cacheData[1] = rs.getString("Year"); + cacheData[2] = rs.getString("Rated"); + cacheData[3] = rs.getString("Released"); + cacheData[4] = rs.getString("Season"); + cacheData[5] = rs.getString("Episode"); + cacheData[6] = rs.getString("Runtime"); + cacheData[7] = rs.getString("Genre"); + cacheData[8] = rs.getString("Director"); + cacheData[9] = rs.getString("Writer"); + cacheData[10] = rs.getString("Actors"); + cacheData[11] = rs.getString("Plot"); + cacheData[12] = rs.getString("Language"); + cacheData[13] = rs.getString("Country"); + cacheData[14] = rs.getString("Awards"); + cacheData[15] = rs.getString("metascore"); + cacheData[16] = rs.getString("imdbRating"); + cacheData[17] = rs.getString("Type"); + cacheData[18] = rs.getString("BoxOffice"); + cacheData[19] = rs.getString("Website"); + cacheData[20] = rs.getString("Poster"); + } } - rs.close(); - ps.close(); } catch (SQLException e) { LOGGER.error("Ups! error while getting the current time for {}.", streamUrl, e); } @@ -578,6 +572,50 @@ public class DBController { return cacheData; } + public OMDbAPIResponseDataType readCache(String streamUrl) { + OMDbAPIResponseDataType omdbResponse = new OMDbAPIResponseDataType(); + + try (PreparedStatement ps = connection.prepareStatement("SELECT * FROM cache WHERE streamUrl = ?");) { + ps.setString(1, streamUrl); + + try (ResultSet rs = ps.executeQuery();) { + while (rs.next()) { + omdbResponse.setTitle(rs.getString("Title")); + omdbResponse.setYear(rs.getString("Year")); + omdbResponse.setRated(rs.getString("Rated")); + omdbResponse.setReleased(rs.getString("Released")); + omdbResponse.setSeason(rs.getString("Season")); + omdbResponse.setEpisode(rs.getString("Episode")); + omdbResponse.setRuntime(rs.getString("Runtime")); + omdbResponse.setGenre(rs.getString("Genre")); + omdbResponse.setDirector(rs.getString("Director")); + omdbResponse.setWriter(rs.getString("Writer")); + omdbResponse.setActors(rs.getString("Actors")); + omdbResponse.setPlot(rs.getString("Plot")); + omdbResponse.setLanguage(rs.getString("Language")); + omdbResponse.setCountry(rs.getString("Country")); + omdbResponse.setAwards(rs.getString("Awards")); + omdbResponse.setMetascore(rs.getString("metascore")); + omdbResponse.setImdbRating(rs.getString("imdbRating")); + omdbResponse.setImdbVotes(rs.getString("imdbVotes")); + omdbResponse.setImdbID(rs.getString("imdbID")); + omdbResponse.setType(rs.getString("Type")); + omdbResponse.setDvd(rs.getString("dvd")); + omdbResponse.setBoxOffice(rs.getString("BoxOffice")); + //omdbResponse.setProduction(object.getString("Production", "")); + omdbResponse.setWebsite(rs.getString("Website")); + omdbResponse.setResponse(rs.getString("Response")); + omdbResponse.setPoster(rs.getString("Poster")); + } + } + + } catch (SQLException e) { + LOGGER.error("Ups! error while getting the current time for {}.", streamUrl, e); + } + + return omdbResponse; + } + /** * get all NOT cached entries * @return a {@link ArrayList} of all NOT cached entries @@ -585,15 +623,15 @@ public class DBController { 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"))); + try (Statement stmt = connection.createStatement();) { + + try (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"))); + } } - stmt.close(); - rs.close(); + } catch (SQLException e) { LOGGER.error("An error occured, while getting all NOT cached entries", e); } @@ -610,13 +648,14 @@ public class DBController { public double getCurrentTime(String streamUrl) { LOGGER.info("get currentTime for " + streamUrl); double currentTime = 0; - try { - PreparedStatement ps = connection.prepareStatement("SELECT * FROM films WHERE streamUrl = ?"); + + try (PreparedStatement ps = connection.prepareStatement("SELECT * FROM films WHERE streamUrl = ?");) { ps.setString(1, streamUrl); - ResultSet rs = ps.executeQuery(); - currentTime = rs.getDouble("currentTime"); - rs.close(); - ps.close(); + + try (ResultSet rs = ps.executeQuery();) { + currentTime = rs.getDouble("currentTime"); + } + } catch (Exception e) { LOGGER.error("Ups! error while getting the current time!", e); } @@ -631,13 +670,12 @@ public class DBController { */ public void setCurrentTime(String streamUrl, double currentTime) { LOGGER.info("set currentTime = " + currentTime + " for " + streamUrl); - try { - PreparedStatement ps = connection.prepareStatement("UPDATE films SET currentTime = ? WHERE streamUrl = ?"); + + try (PreparedStatement ps = connection.prepareStatement("UPDATE films SET currentTime = ? WHERE streamUrl = ?");) { ps.setDouble(1, currentTime); ps.setString(2, streamUrl); ps.executeUpdate(); connection.commit(); - ps.close(); } catch (SQLException e) { LOGGER.error("Ups! error while updateing the current time!", e); } @@ -651,18 +689,19 @@ public class DBController { */ public ArrayList getEpisodes(String title, int season) { ArrayList episodePosters =new ArrayList<>(); - try { - // try to get a all episode of one season - PreparedStatement ps = connection.prepareStatement("SELECT streamUrl, episode FROM films WHERE title = ? AND season = ?"); + + // try to get a all episode of one season + try (PreparedStatement ps = connection.prepareStatement("SELECT streamUrl, episode FROM films WHERE title = ? AND season = ?");) { ps.setString(1, title); ps.setString(2, Integer.toString(season)); - ResultSet rs = ps.executeQuery(); - // for each episode load cache data - while (rs.next()) { - String[] cacheData = readCache(rs.getString("streamUrl")); - String[] ret = {rs.getString("streamUrl"), rs.getString("episode"), cacheData[20]}; - episodePosters.add(ret); + try (ResultSet rs = ps.executeQuery();) { + // for each episode load cache data + while (rs.next()) { + String[] cacheData = readCacheLegacy(rs.getString("streamUrl")); + String[] ret = {rs.getString("streamUrl"), rs.getString("episode"), cacheData[20]}; + episodePosters.add(ret); + } } } catch(Exception e) { LOGGER.error("Ups! error while getting episodes of a season!", e); diff --git a/src/main/java/kellerkinder/HomeFlix/controller/OMDbAPIController.java b/src/main/java/org/mosad/homeflix/controller/OMDbAPIController.java similarity index 98% rename from src/main/java/kellerkinder/HomeFlix/controller/OMDbAPIController.java rename to src/main/java/org/mosad/homeflix/controller/OMDbAPIController.java index 54b0852..f1ab5a3 100644 --- a/src/main/java/kellerkinder/HomeFlix/controller/OMDbAPIController.java +++ b/src/main/java/org/mosad/homeflix/controller/OMDbAPIController.java @@ -20,7 +20,7 @@ * */ -package kellerkinder.HomeFlix.controller; +package org.mosad.homeflix.controller; import java.awt.image.BufferedImage; import java.io.BufferedReader; @@ -32,14 +32,13 @@ import javax.imageio.ImageIO; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.mosad.homeflix.datatypes.FilmTabelDataType; +import org.mosad.homeflix.datatypes.OMDbAPIResponseDataType; import com.eclipsesource.json.Json; import com.eclipsesource.json.JsonObject; import com.eclipsesource.json.JsonValue; -import kellerkinder.HomeFlix.datatypes.FilmTabelDataType; -import kellerkinder.HomeFlix.datatypes.OMDbAPIResponseDataType; - public class OMDbAPIController implements Runnable { private DBController dbController; diff --git a/src/main/java/kellerkinder/HomeFlix/controller/SourcesController.java b/src/main/java/org/mosad/homeflix/controller/SourcesController.java similarity index 95% rename from src/main/java/kellerkinder/HomeFlix/controller/SourcesController.java rename to src/main/java/org/mosad/homeflix/controller/SourcesController.java index 76dc8fc..a88b957 100644 --- a/src/main/java/kellerkinder/HomeFlix/controller/SourcesController.java +++ b/src/main/java/org/mosad/homeflix/controller/SourcesController.java @@ -20,7 +20,7 @@ * */ -package kellerkinder.HomeFlix.controller; +package org.mosad.homeflix.controller; import java.io.File; import java.io.FileReader; @@ -31,14 +31,13 @@ import java.util.List; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.mosad.homeflix.datatypes.DatabaseDataType; import com.eclipsesource.json.Json; import com.eclipsesource.json.JsonArray; import com.eclipsesource.json.JsonObject; import com.eclipsesource.json.JsonValue; -import kellerkinder.HomeFlix.datatypes.DatabaseDataType; - public class SourcesController { private List sourceStreams = new ArrayList(); @@ -85,10 +84,10 @@ public class SourcesController { for (File file : new File(path).listFiles()) { // if it's valid file add it to the sourceStreams if (isValidFile(file)) { - sourceStreams.add(new DatabaseDataType(file.getPath(), cutOffEnd(file.getName()), "", "", 0, 0.0)); + sourceStreams.add(new DatabaseDataType(file.getPath(), cutOffEnd(file.getName().replace("_", " ")), "", "", 0, 0.0)); } else if(isValidSeriesRoot(file)) { // get all directories (series), root and season must be directories - sourceStreams.add(new DatabaseDataType(file.getPath(), file.getName(), "0", "0", 0, 0.0)); // add the series root node + sourceStreams.add(new DatabaseDataType(file.getPath(), file.getName().replace("_", " "), "0", "0", 0, 0.0)); // add the series root node int sn = 1; for (File season : file.listFiles()) { if (season.isDirectory()) { diff --git a/src/main/java/kellerkinder/HomeFlix/controller/UpdateController.java b/src/main/java/org/mosad/homeflix/controller/UpdateController.java similarity index 98% rename from src/main/java/kellerkinder/HomeFlix/controller/UpdateController.java rename to src/main/java/org/mosad/homeflix/controller/UpdateController.java index 8608350..772656c 100644 --- a/src/main/java/kellerkinder/HomeFlix/controller/UpdateController.java +++ b/src/main/java/org/mosad/homeflix/controller/UpdateController.java @@ -19,7 +19,7 @@ * MA 02110-1301, USA. */ -package kellerkinder.HomeFlix.controller; +package org.mosad.homeflix.controller; import java.io.BufferedReader; import java.io.File; @@ -34,14 +34,13 @@ import javax.swing.ProgressMonitorInputStream; import org.apache.commons.io.FileUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.mosad.homeflix.application.Main; import com.eclipsesource.json.Json; import com.eclipsesource.json.JsonArray; import com.eclipsesource.json.JsonObject; import com.eclipsesource.json.JsonValue; -import kellerkinder.HomeFlix.application.Main; - public class UpdateController { private static int updateBuildNumber; // tag_name from gitea diff --git a/src/main/java/kellerkinder/HomeFlix/controller/XMLController.java b/src/main/java/org/mosad/homeflix/controller/XMLController.java similarity index 99% rename from src/main/java/kellerkinder/HomeFlix/controller/XMLController.java rename to src/main/java/org/mosad/homeflix/controller/XMLController.java index 098f6db..88dfc7f 100644 --- a/src/main/java/kellerkinder/HomeFlix/controller/XMLController.java +++ b/src/main/java/org/mosad/homeflix/controller/XMLController.java @@ -20,7 +20,7 @@ * */ -package kellerkinder.HomeFlix.controller; +package org.mosad.homeflix.controller; import java.io.BufferedReader; import java.io.File; diff --git a/src/main/java/kellerkinder/HomeFlix/datatypes/DatabaseDataType.java b/src/main/java/org/mosad/homeflix/datatypes/DatabaseDataType.java similarity index 98% rename from src/main/java/kellerkinder/HomeFlix/datatypes/DatabaseDataType.java rename to src/main/java/org/mosad/homeflix/datatypes/DatabaseDataType.java index cabd80e..8dd08e6 100644 --- a/src/main/java/kellerkinder/HomeFlix/datatypes/DatabaseDataType.java +++ b/src/main/java/org/mosad/homeflix/datatypes/DatabaseDataType.java @@ -20,7 +20,7 @@ * */ -package kellerkinder.HomeFlix.datatypes; +package org.mosad.homeflix.datatypes; public class DatabaseDataType { diff --git a/src/main/java/kellerkinder/HomeFlix/datatypes/FilmTabelDataType.java b/src/main/java/org/mosad/homeflix/datatypes/FilmTabelDataType.java similarity index 97% rename from src/main/java/kellerkinder/HomeFlix/datatypes/FilmTabelDataType.java rename to src/main/java/org/mosad/homeflix/datatypes/FilmTabelDataType.java index 53ab588..68f50cc 100644 --- a/src/main/java/kellerkinder/HomeFlix/datatypes/FilmTabelDataType.java +++ b/src/main/java/org/mosad/homeflix/datatypes/FilmTabelDataType.java @@ -18,7 +18,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301, USA. */ -package kellerkinder.HomeFlix.datatypes; +package org.mosad.homeflix.datatypes; public class FilmTabelDataType { private String streamUrl; diff --git a/src/main/java/kellerkinder/HomeFlix/datatypes/OMDbAPIResponseDataType.java b/src/main/java/org/mosad/homeflix/datatypes/OMDbAPIResponseDataType.java similarity index 68% rename from src/main/java/kellerkinder/HomeFlix/datatypes/OMDbAPIResponseDataType.java rename to src/main/java/org/mosad/homeflix/datatypes/OMDbAPIResponseDataType.java index 40d78b0..3e0fb91 100644 --- a/src/main/java/kellerkinder/HomeFlix/datatypes/OMDbAPIResponseDataType.java +++ b/src/main/java/org/mosad/homeflix/datatypes/OMDbAPIResponseDataType.java @@ -20,36 +20,36 @@ * */ -package kellerkinder.HomeFlix.datatypes; +package org.mosad.homeflix.datatypes; public class OMDbAPIResponseDataType { - private String title; - private String year; - private String rated; - private String released; - private String season; - private String episode; - private String runtime; - private String genre; - private String director; - private String writer; - private String actors; - private String plot; - private String language; - private String country; - private String awards; - private String poster; - private String metascore; - private String imdbRating; - private String imdbVotes; - private String imdbID; - private String type; - private String dvd; - private String boxOffice; - private String production; - private String website; - private String response; + private String title = ""; + private String year = ""; + private String rated = ""; + private String released = ""; + private String season = ""; + private String episode = ""; + private String runtime = ""; + private String genre = ""; + private String director = ""; + private String writer = ""; + private String actors = ""; + private String plot = ""; + private String language = ""; + private String country = ""; + private String awards = ""; + private String poster = ""; + private String metascore = ""; + private String imdbRating = ""; + private String imdbVotes = ""; + private String imdbID = ""; + private String type = ""; + private String dvd = ""; + private String boxOffice = ""; + private String production = ""; + private String website = ""; + private String response = ""; /** * OMDbAPIResponseDataType is the data-type for the omdbAPI response @@ -71,7 +71,7 @@ public class OMDbAPIResponseDataType { } public void setYear(String year) { - this.year = year; + this.year = year == null ? "N/A" : year; } public String getRated() { @@ -79,7 +79,7 @@ public class OMDbAPIResponseDataType { } public void setRated(String rated) { - this.rated = rated; + this.rated = rated == null ? "N/A" : rated; } public String getReleased() { @@ -87,7 +87,7 @@ public class OMDbAPIResponseDataType { } public void setReleased(String released) { - this.released = released; + this.released = released == null ? "N/A" : released; } public String getSeason() { @@ -127,7 +127,7 @@ public class OMDbAPIResponseDataType { } public void setDirector(String director) { - this.director = director; + this.director = director == null ? "N/A" : director; } public String getWriter() { @@ -135,7 +135,7 @@ public class OMDbAPIResponseDataType { } public void setWriter(String writer) { - this.writer = writer; + this.writer = writer == null ? "N/A" : writer; } public String getActors() { @@ -143,7 +143,7 @@ public class OMDbAPIResponseDataType { } public void setActors(String actors) { - this.actors = actors; + this.actors = actors == null ? "N/A" : actors; } public String getPlot() { @@ -151,7 +151,7 @@ public class OMDbAPIResponseDataType { } public void setPlot(String plot) { - this.plot = plot; + this.plot = plot == null ? "N/A" : plot; } public String getLanguage() { @@ -159,7 +159,7 @@ public class OMDbAPIResponseDataType { } public void setLanguage(String language) { - this.language = language; + this.language = language == null ? "N/A" : language; } public String getCountry() { @@ -167,7 +167,7 @@ public class OMDbAPIResponseDataType { } public void setCountry(String country) { - this.country = country; + this.country = country == null ? "N/A" : country; } public String getAwards() { @@ -175,7 +175,7 @@ public class OMDbAPIResponseDataType { } public void setAwards(String awards) { - this.awards = awards; + this.awards = awards == null ? "N/A" : awards; } public String getPoster() { @@ -191,7 +191,7 @@ public class OMDbAPIResponseDataType { } public void setMetascore(String metascore) { - this.metascore = metascore; + this.metascore = metascore == null ? "N/A" : metascore; } public String getImdbRating() { @@ -199,7 +199,7 @@ public class OMDbAPIResponseDataType { } public void setImdbRating(String imdbRating) { - this.imdbRating = imdbRating; + this.imdbRating = imdbRating == null ? "N/A" : imdbRating; } public String getImdbVotes() { @@ -207,7 +207,7 @@ public class OMDbAPIResponseDataType { } public void setImdbVotes(String imdbVotes) { - this.imdbVotes = imdbVotes; + this.imdbVotes = imdbVotes == null ? "N/A" : imdbVotes; } public String getImdbID() { @@ -231,7 +231,7 @@ public class OMDbAPIResponseDataType { } public void setDvd(String dvd) { - this.dvd = dvd; + this.dvd = dvd == null ? "N/A" : dvd; } public String getBoxOffice() { @@ -239,7 +239,7 @@ public class OMDbAPIResponseDataType { } public void setBoxOffice(String boxOffice) { - this.boxOffice = boxOffice; + this.boxOffice = boxOffice == null ? "N/A" : boxOffice; } public String getProduction() { @@ -247,7 +247,7 @@ public class OMDbAPIResponseDataType { } public void setProduction(String production) { - this.production = production; + this.production = production == null ? "N/A" : production; } public String getWebsite() { @@ -255,7 +255,7 @@ public class OMDbAPIResponseDataType { } public void setWebsite(String website) { - this.website = website; + this.website = website == null ? "N/A" : website; } public String getResponse() { diff --git a/src/main/java/kellerkinder/HomeFlix/datatypes/PosterModeElement.java b/src/main/java/org/mosad/homeflix/datatypes/PosterModeElement.java similarity index 98% rename from src/main/java/kellerkinder/HomeFlix/datatypes/PosterModeElement.java rename to src/main/java/org/mosad/homeflix/datatypes/PosterModeElement.java index 621d350..bbe6a75 100644 --- a/src/main/java/kellerkinder/HomeFlix/datatypes/PosterModeElement.java +++ b/src/main/java/org/mosad/homeflix/datatypes/PosterModeElement.java @@ -20,7 +20,7 @@ * */ -package kellerkinder.HomeFlix.datatypes; +package org.mosad.homeflix.datatypes; import com.jfoenix.controls.JFXButton; diff --git a/src/main/java/kellerkinder/HomeFlix/datatypes/SeriresDVEpisode.java b/src/main/java/org/mosad/homeflix/datatypes/SeriresDVEpisode.java similarity index 94% rename from src/main/java/kellerkinder/HomeFlix/datatypes/SeriresDVEpisode.java rename to src/main/java/org/mosad/homeflix/datatypes/SeriresDVEpisode.java index a181884..73de7c7 100644 --- a/src/main/java/kellerkinder/HomeFlix/datatypes/SeriresDVEpisode.java +++ b/src/main/java/org/mosad/homeflix/datatypes/SeriresDVEpisode.java @@ -1,11 +1,12 @@ -package kellerkinder.HomeFlix.datatypes; +package org.mosad.homeflix.datatypes; + +import org.mosad.homeflix.player.Player; import javafx.scene.control.Label; import javafx.scene.image.Image; import javafx.scene.image.ImageView; import javafx.scene.input.MouseEvent; import javafx.scene.layout.AnchorPane; -import kellerkinder.HomeFlix.player.Player; public class SeriresDVEpisode extends AnchorPane { diff --git a/src/main/java/kellerkinder/HomeFlix/datatypes/SourceDataType.java b/src/main/java/org/mosad/homeflix/datatypes/SourceDataType.java similarity index 97% rename from src/main/java/kellerkinder/HomeFlix/datatypes/SourceDataType.java rename to src/main/java/org/mosad/homeflix/datatypes/SourceDataType.java index 7f16265..6ffedec 100644 --- a/src/main/java/kellerkinder/HomeFlix/datatypes/SourceDataType.java +++ b/src/main/java/org/mosad/homeflix/datatypes/SourceDataType.java @@ -18,7 +18,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301, USA. */ -package kellerkinder.HomeFlix.datatypes; +package org.mosad.homeflix.datatypes; import javafx.beans.property.SimpleStringProperty; import javafx.beans.property.StringProperty; diff --git a/src/main/java/kellerkinder/HomeFlix/player/HFMediaPlayerEventListener.java b/src/main/java/org/mosad/homeflix/player/HFMediaPlayerEventListener.java similarity index 99% rename from src/main/java/kellerkinder/HomeFlix/player/HFMediaPlayerEventListener.java rename to src/main/java/org/mosad/homeflix/player/HFMediaPlayerEventListener.java index 0bd74fb..6828556 100644 --- a/src/main/java/kellerkinder/HomeFlix/player/HFMediaPlayerEventListener.java +++ b/src/main/java/org/mosad/homeflix/player/HFMediaPlayerEventListener.java @@ -20,7 +20,7 @@ * */ -package kellerkinder.HomeFlix.player; +package org.mosad.homeflix.player; import uk.co.caprica.vlcj.media.MediaRef; import uk.co.caprica.vlcj.media.TrackType; diff --git a/src/main/java/kellerkinder/HomeFlix/player/Player.java b/src/main/java/org/mosad/homeflix/player/Player.java similarity index 98% rename from src/main/java/kellerkinder/HomeFlix/player/Player.java rename to src/main/java/org/mosad/homeflix/player/Player.java index b608df6..a03ac2c 100644 --- a/src/main/java/kellerkinder/HomeFlix/player/Player.java +++ b/src/main/java/org/mosad/homeflix/player/Player.java @@ -20,7 +20,7 @@ * */ -package kellerkinder.HomeFlix.player; +package org.mosad.homeflix.player; import java.awt.Desktop; import java.io.BufferedReader; @@ -31,6 +31,7 @@ import java.net.URLConnection; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.mosad.homeflix.application.Main; import javafx.fxml.FXMLLoader; import javafx.scene.Scene; @@ -38,7 +39,6 @@ import javafx.scene.image.Image; import javafx.scene.layout.AnchorPane; import javafx.scene.layout.Pane; import javafx.stage.Stage; -import kellerkinder.HomeFlix.application.Main; public class Player { diff --git a/src/main/java/kellerkinder/HomeFlix/player/PlayerController.java b/src/main/java/org/mosad/homeflix/player/PlayerController.java similarity index 98% rename from src/main/java/kellerkinder/HomeFlix/player/PlayerController.java rename to src/main/java/org/mosad/homeflix/player/PlayerController.java index d08cd67..a4712bf 100644 --- a/src/main/java/kellerkinder/HomeFlix/player/PlayerController.java +++ b/src/main/java/org/mosad/homeflix/player/PlayerController.java @@ -20,13 +20,17 @@ * */ -package kellerkinder.HomeFlix.player; +package org.mosad.homeflix.player; import java.nio.ByteBuffer; import java.util.Timer; import java.util.TimerTask; import java.util.concurrent.TimeUnit; +import org.mosad.homeflix.controller.DBController; +import org.mosad.homeflix.controller.XMLController; +import org.mosad.homeflix.datatypes.FilmTabelDataType; + import com.jfoenix.controls.JFXButton; import com.jfoenix.controls.JFXSlider; @@ -47,9 +51,6 @@ import javafx.scene.input.MouseEvent; import javafx.scene.layout.HBox; import javafx.scene.layout.VBox; import javafx.scene.media.MediaView; -import kellerkinder.HomeFlix.controller.DBController; -import kellerkinder.HomeFlix.controller.XMLController; -import kellerkinder.HomeFlix.datatypes.FilmTabelDataType; import uk.co.caprica.vlcj.factory.MediaPlayerFactory; import uk.co.caprica.vlcj.player.base.MediaPlayer; import uk.co.caprica.vlcj.player.embedded.EmbeddedMediaPlayer; diff --git a/src/main/resources/fxml/FilmDetailView.fxml b/src/main/resources/fxml/FilmDetailView.fxml index 8034899..4584853 100644 --- a/src/main/resources/fxml/FilmDetailView.fxml +++ b/src/main/resources/fxml/FilmDetailView.fxml @@ -12,7 +12,7 @@ - + diff --git a/src/main/resources/fxml/MainWindow.fxml b/src/main/resources/fxml/MainWindow.fxml index a8b5461..88f6d1b 100644 --- a/src/main/resources/fxml/MainWindow.fxml +++ b/src/main/resources/fxml/MainWindow.fxml @@ -10,7 +10,7 @@ - + diff --git a/src/main/resources/fxml/SeriesDetailView.fxml b/src/main/resources/fxml/SeriesDetailView.fxml index be1a12b..0258a1a 100644 --- a/src/main/resources/fxml/SeriesDetailView.fxml +++ b/src/main/resources/fxml/SeriesDetailView.fxml @@ -14,7 +14,7 @@ - + diff --git a/src/main/resources/fxml/SettingsView.fxml b/src/main/resources/fxml/SettingsView.fxml index 62f05e6..079a922 100644 --- a/src/main/resources/fxml/SettingsView.fxml +++ b/src/main/resources/fxml/SettingsView.fxml @@ -16,7 +16,7 @@ - +