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 @@
-
+