use try with resourcess
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
* rename package kellerkinder.HomeFlix to org.mosad.homeflix
This commit is contained in:
parent
0d57127d64
commit
5e0fd8063d
6
pom.xml
6
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">
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
<groupId>org.kellerkinder</groupId>
|
<groupId>org.mosad</groupId>
|
||||||
<artifactId>Project-HomeFlix</artifactId>
|
<artifactId>Project-HomeFlix</artifactId>
|
||||||
<version>0.8.0</version>
|
<version>0.8.0</version>
|
||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
@ -113,7 +113,7 @@
|
|||||||
</execution>
|
</execution>
|
||||||
</executions>
|
</executions>
|
||||||
<configuration>
|
<configuration>
|
||||||
<mainClass>kellerkinder.HomeFlix.application.Main</mainClass>
|
<mainClass>org.mosad.homeflix.application.Main</mainClass>
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
|
|
||||||
@ -127,7 +127,7 @@
|
|||||||
<transformers>
|
<transformers>
|
||||||
<transformer
|
<transformer
|
||||||
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
|
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
|
||||||
<mainClass>kellerkinder.HomeFlix.application.JavaFX11Main</mainClass>
|
<mainClass>org.mosad.homeflix.application.JavaFX11Main</mainClass>
|
||||||
</transformer>
|
</transformer>
|
||||||
</transformers>
|
</transformers>
|
||||||
</configuration>
|
</configuration>
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package kellerkinder.HomeFlix.application;
|
package org.mosad.homeflix.application;
|
||||||
|
|
||||||
import java.awt.Desktop;
|
import java.awt.Desktop;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@ -28,6 +28,10 @@ import java.io.IOException;
|
|||||||
|
|
||||||
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.LogManager;
|
||||||
import org.apache.logging.log4j.Logger;
|
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;
|
import com.jfoenix.controls.JFXButton;
|
||||||
|
|
||||||
@ -39,9 +43,6 @@ import javafx.scene.image.ImageView;
|
|||||||
import javafx.scene.layout.AnchorPane;
|
import javafx.scene.layout.AnchorPane;
|
||||||
import javafx.scene.text.Text;
|
import javafx.scene.text.Text;
|
||||||
import javafx.util.Duration;
|
import javafx.util.Duration;
|
||||||
import kellerkinder.HomeFlix.controller.DBController;
|
|
||||||
import kellerkinder.HomeFlix.controller.XMLController;
|
|
||||||
import kellerkinder.HomeFlix.player.Player;
|
|
||||||
|
|
||||||
public class FilmDetailView {
|
public class FilmDetailView {
|
||||||
|
|
||||||
@ -136,29 +137,29 @@ public class FilmDetailView {
|
|||||||
*/
|
*/
|
||||||
public void setFilm(String streamURL) {
|
public void setFilm(String streamURL) {
|
||||||
currentStreamURL = 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
|
// add the cache data to the GUI
|
||||||
lblTitle.setText(cacheInfo[0]);
|
lblTitle.setText(cacheInfo.getTitle());
|
||||||
lblYear.setText("(" + cacheInfo[1] + ")");
|
lblYear.setText("(" + cacheInfo.getYear() + ")");
|
||||||
lblScore.setText(XMLController.getLocalBundle().getString("score") + ": " + cacheInfo[15] + "%");
|
lblScore.setText(XMLController.getLocalBundle().getString("score") + ": " + cacheInfo.getMetascore() + "%");
|
||||||
|
|
||||||
textPlot.setText(cacheInfo[11]);
|
textPlot.setText(cacheInfo.getPlot());
|
||||||
|
|
||||||
lblDirectors.setText(cacheInfo[8]);
|
lblDirectors.setText(cacheInfo.getDirector());
|
||||||
lblWriters.setText(cacheInfo[9]);
|
lblWriters.setText(cacheInfo.getWriter());
|
||||||
lblActors.setText(cacheInfo[10]);
|
lblActors.setText(cacheInfo.getActors());
|
||||||
|
|
||||||
lblRuntime.setText(cacheInfo[6]);
|
lblRuntime.setText(cacheInfo.getRuntime());
|
||||||
lblLanguage.setText(cacheInfo[12]);
|
lblLanguage.setText(cacheInfo.getLanguage());
|
||||||
lblRevenue.setText(cacheInfo[18]);
|
lblRevenue.setText(cacheInfo.getBoxOffice());
|
||||||
lblRating.setText(cacheInfo[2]);
|
lblRating.setText(cacheInfo.getRated());
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (new File(cacheInfo[20]).isFile()) {
|
if (new File(cacheInfo.getPoster()).isFile()) {
|
||||||
imgPoster.setImage(new Image(new File(cacheInfo[20]).toURI().toString()));
|
imgPoster.setImage(new Image(new File(cacheInfo.getPoster()).toURI().toString()));
|
||||||
} else {
|
} else {
|
||||||
imgPoster.setImage(new Image(cacheInfo[20]));
|
imgPoster.setImage(new Image(cacheInfo.getPoster()));
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
imgPoster.setImage(new Image("icons/Homeflix_Poster.png"));
|
imgPoster.setImage(new Image("icons/Homeflix_Poster.png"));
|
@ -1,4 +1,4 @@
|
|||||||
package kellerkinder.HomeFlix.application;
|
package org.mosad.homeflix.application;
|
||||||
|
|
||||||
public class JavaFX11Main {
|
public class JavaFX11Main {
|
||||||
|
|
@ -20,13 +20,15 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package kellerkinder.HomeFlix.application;
|
package org.mosad.homeflix.application;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.LogManager;
|
||||||
import org.apache.logging.log4j.Logger;
|
import org.apache.logging.log4j.Logger;
|
||||||
|
import org.mosad.homeflix.controller.DBController;
|
||||||
|
import org.mosad.homeflix.controller.XMLController;
|
||||||
|
|
||||||
import javafx.application.Application;
|
import javafx.application.Application;
|
||||||
import javafx.fxml.FXMLLoader;
|
import javafx.fxml.FXMLLoader;
|
||||||
@ -34,7 +36,6 @@ import javafx.scene.Scene;
|
|||||||
import javafx.scene.image.Image;
|
import javafx.scene.image.Image;
|
||||||
import javafx.scene.layout.AnchorPane;
|
import javafx.scene.layout.AnchorPane;
|
||||||
import javafx.stage.Stage;
|
import javafx.stage.Stage;
|
||||||
import kellerkinder.HomeFlix.controller.XMLController;
|
|
||||||
|
|
||||||
public class Main extends Application {
|
public class Main extends Application {
|
||||||
|
|
||||||
@ -62,7 +63,10 @@ public class Main extends Application {
|
|||||||
//primaryStage.setResizable(false);
|
//primaryStage.setResizable(false);
|
||||||
primaryStage.setTitle("Project HomeFlix");
|
primaryStage.setTitle("Project HomeFlix");
|
||||||
primaryStage.getIcons().add(new Image(Main.class.getResourceAsStream("/icons/Homeflix_Icon_64x64.png"))); //adds application icon
|
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
|
// generate window
|
||||||
scene = new Scene(pane); // create new scene, append pane to scene
|
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("Java: " + XMLController.getJavaVend() + " " + XMLController.getJavaVers());
|
||||||
LOGGER.info("User: " + XMLController.getUserName() + " " + XMLController.getUserHome());
|
LOGGER.info("User: " + XMLController.getUserName() + " " + XMLController.getUserHome());
|
||||||
|
|
||||||
xmlController = new XMLController();
|
xmlController = new XMLController(); // Initialize the XMLController
|
||||||
|
|
||||||
|
// TODO run Migrations
|
||||||
|
|
||||||
if (!XMLController.getConfigFile().exists()) {
|
if (!XMLController.getConfigFile().exists()) {
|
||||||
xmlController.saveSettings(); // save the settings file with default values if it doesn't exist
|
xmlController.saveSettings(); // save the settings file with default values if it doesn't exist
|
@ -20,7 +20,7 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package kellerkinder.HomeFlix.application;
|
package org.mosad.homeflix.application;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileReader;
|
import java.io.FileReader;
|
||||||
@ -39,6 +39,12 @@ import org.apache.logging.log4j.LogManager;
|
|||||||
import org.apache.logging.log4j.Logger;
|
import org.apache.logging.log4j.Logger;
|
||||||
import org.kellerkinder.Alerts.JFX2BtnCancelAlert;
|
import org.kellerkinder.Alerts.JFX2BtnCancelAlert;
|
||||||
import org.kellerkinder.Alerts.JFXInfoAlert;
|
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.Json;
|
||||||
import com.eclipsesource.json.JsonArray;
|
import com.eclipsesource.json.JsonArray;
|
||||||
@ -63,12 +69,6 @@ import javafx.stage.DirectoryChooser;
|
|||||||
import javafx.stage.FileChooser;
|
import javafx.stage.FileChooser;
|
||||||
import javafx.stage.Stage;
|
import javafx.stage.Stage;
|
||||||
import javafx.util.Duration;
|
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 {
|
public class MainWindowController {
|
||||||
|
|
@ -20,7 +20,7 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package kellerkinder.HomeFlix.application;
|
package org.mosad.homeflix.application;
|
||||||
|
|
||||||
import java.awt.Desktop;
|
import java.awt.Desktop;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@ -28,6 +28,11 @@ import java.io.IOException;
|
|||||||
|
|
||||||
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.LogManager;
|
||||||
import org.apache.logging.log4j.Logger;
|
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;
|
import com.jfoenix.controls.JFXButton;
|
||||||
|
|
||||||
@ -45,10 +50,6 @@ import javafx.scene.layout.AnchorPane;
|
|||||||
import javafx.scene.layout.HBox;
|
import javafx.scene.layout.HBox;
|
||||||
import javafx.scene.text.Text;
|
import javafx.scene.text.Text;
|
||||||
import javafx.util.Duration;
|
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 {
|
public class SeriesDetailView {
|
||||||
|
|
||||||
@ -144,21 +145,21 @@ public class SeriesDetailView {
|
|||||||
*/
|
*/
|
||||||
public void setSeries(String streamURL) {
|
public void setSeries(String streamURL) {
|
||||||
currentStreamURL = 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
|
// add the cache data to the GUI
|
||||||
lblTitle.setText(cacheInfo[0]);
|
lblTitle.setText(cacheInfo.getTitle());
|
||||||
lblYear.setText("(" + cacheInfo[1] + ")");
|
lblYear.setText("(" + cacheInfo.getYear() + ")");
|
||||||
lblScore.setText(XMLController.getLocalBundle().getString("score") + ": " + cacheInfo[15] + "%");
|
lblScore.setText(XMLController.getLocalBundle().getString("score") + ": " + cacheInfo.getMetascore() + "%");
|
||||||
|
|
||||||
textPlot.setText(cacheInfo[11]);
|
textPlot.setText(cacheInfo.getPlot());
|
||||||
|
|
||||||
lblDirectors.setText(cacheInfo[8]);
|
lblDirectors.setText(cacheInfo.getDirector());
|
||||||
lblWriters.setText(cacheInfo[9]);
|
lblWriters.setText(cacheInfo.getWriter());
|
||||||
lblActors.setText(cacheInfo[10]);
|
lblActors.setText(cacheInfo.getActors());
|
||||||
|
|
||||||
try {
|
try {
|
||||||
imgPoster.setImage(new Image(new File(cacheInfo[20]).toURI().toString()));
|
imgPoster.setImage(new Image(new File(cacheInfo.getPoster()).toURI().toString()));
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
imgPoster.setImage(new Image("icons/Homeflix_Poster.png"));
|
imgPoster.setImage(new Image("icons/Homeflix_Poster.png"));
|
||||||
LOGGER.error("No Poster found, useing default.");
|
LOGGER.error("No Poster found, useing default.");
|
@ -20,7 +20,7 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package kellerkinder.HomeFlix.application;
|
package org.mosad.homeflix.application;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileReader;
|
import java.io.FileReader;
|
||||||
@ -30,6 +30,10 @@ import java.io.Writer;
|
|||||||
|
|
||||||
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.LogManager;
|
||||||
import org.apache.logging.log4j.Logger;
|
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.Json;
|
||||||
import com.eclipsesource.json.JsonArray;
|
import com.eclipsesource.json.JsonArray;
|
||||||
@ -54,10 +58,6 @@ import javafx.scene.layout.AnchorPane;
|
|||||||
import javafx.scene.paint.Color;
|
import javafx.scene.paint.Color;
|
||||||
import javafx.stage.DirectoryChooser;
|
import javafx.stage.DirectoryChooser;
|
||||||
import javafx.stage.FileChooser;
|
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 {
|
public class SettingsView {
|
||||||
|
|
@ -19,7 +19,7 @@
|
|||||||
* MA 02110-1301, USA.
|
* MA 02110-1301, USA.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package kellerkinder.HomeFlix.controller;
|
package org.mosad.homeflix.controller;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileNotFoundException;
|
import java.io.FileNotFoundException;
|
||||||
@ -38,14 +38,14 @@ import java.util.List;
|
|||||||
|
|
||||||
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.LogManager;
|
||||||
import org.apache.logging.log4j.Logger;
|
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.FXCollections;
|
||||||
import javafx.collections.ObservableList;
|
import javafx.collections.ObservableList;
|
||||||
import javafx.scene.image.Image;
|
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 {
|
public class DBController {
|
||||||
|
|
||||||
@ -103,15 +103,13 @@ public class DBController {
|
|||||||
* cache table: streamUrl is primary key
|
* cache table: streamUrl is primary key
|
||||||
*/
|
*/
|
||||||
private void createDatabase() {
|
private void createDatabase() {
|
||||||
try {
|
try (Statement stmt = connection.createStatement();) {
|
||||||
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 films (streamUrl, title, season, episode, favorite, cached, currentTime)");
|
||||||
stmt.executeUpdate("create table if not exists cache ("
|
stmt.executeUpdate("create table if not exists cache ("
|
||||||
+ "streamUrl, Title, Year, Rated, Released, Season, Episode ,Runtime, Genre, Director, Writer,"
|
+ "streamUrl, Title, Year, Rated, Released, Season, Episode ,Runtime, Genre, Director, Writer,"
|
||||||
+ " Actors, Plot, Language, Country, Awards, Poster, Metascore, imdbRating, imdbVotes,"
|
+ " Actors, Plot, Language, Country, Awards, Poster, Metascore, imdbRating, imdbVotes,"
|
||||||
+ " imdbID, Type, dvd, BoxOffice, Website, Response)");
|
+ " imdbID, Type, dvd, BoxOffice, Website, Response)");
|
||||||
connection.commit();
|
connection.commit();
|
||||||
stmt.close();
|
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
LOGGER.error(e);
|
LOGGER.error(e);
|
||||||
}
|
}
|
||||||
@ -122,16 +120,16 @@ public class DBController {
|
|||||||
*/
|
*/
|
||||||
private void loadDatabase() {
|
private void loadDatabase() {
|
||||||
// get all entries from the table
|
// get all entries from the table
|
||||||
try {
|
try (Statement stmt = connection.createStatement();) {
|
||||||
Statement stmt = connection.createStatement();
|
|
||||||
ResultSet rs = stmt.executeQuery("SELECT * FROM films");
|
try (ResultSet rs = stmt.executeQuery("SELECT * FROM films");) {
|
||||||
while (rs.next()) {
|
while (rs.next()) {
|
||||||
databaseStreams.add(new DatabaseDataType(rs.getString("streamUrl"),
|
databaseStreams.add(new DatabaseDataType(rs.getString("streamUrl"),
|
||||||
rs.getString("title"), rs.getString("season"), rs.getString("episode"),
|
rs.getString("title"), rs.getString("season"), rs.getString("episode"),
|
||||||
rs.getInt("favorite"), rs.getDouble("currentTime")));
|
rs.getInt("favorite"), rs.getDouble("currentTime")));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
stmt.close();
|
|
||||||
rs.close();
|
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
LOGGER.error("Ups! an error occured!", e);
|
LOGGER.error("Ups! an error occured!", e);
|
||||||
}
|
}
|
||||||
@ -145,6 +143,18 @@ public class DBController {
|
|||||||
sourceStreams = sourcesController.loadSources();
|
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
|
* load all streams from the database to a ObservableList, order entries by title
|
||||||
* @return a ObservableList that contains all streams from the database
|
* @return a ObservableList that contains all streams from the database
|
||||||
@ -152,17 +162,17 @@ public class DBController {
|
|||||||
public ObservableList<FilmTabelDataType> getStreamsList() {
|
public ObservableList<FilmTabelDataType> getStreamsList() {
|
||||||
ObservableList<FilmTabelDataType> filmsList = FXCollections.observableArrayList();
|
ObservableList<FilmTabelDataType> filmsList = FXCollections.observableArrayList();
|
||||||
LOGGER.info("loading data from database ...");
|
LOGGER.info("loading data from database ...");
|
||||||
try {
|
|
||||||
//load local Data
|
//load local Data
|
||||||
Statement stmt = connection.createStatement();
|
try (Statement stmt = connection.createStatement(); ) {
|
||||||
ResultSet rs = stmt.executeQuery("SELECT * FROM films ORDER BY title");
|
|
||||||
|
|
||||||
while (rs.next()) {
|
try (ResultSet rs = stmt.executeQuery("SELECT * FROM films ORDER BY title");) {
|
||||||
filmsList.add(new FilmTabelDataType(rs.getString("streamUrl"),
|
while (rs.next()) {
|
||||||
rs.getString("title"), rs.getString("season"), rs.getString("episode")));
|
filmsList.add(new FilmTabelDataType(rs.getString("streamUrl"),
|
||||||
|
rs.getString("title"), rs.getString("season"), rs.getString("episode")));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
stmt.close();
|
|
||||||
rs.close();
|
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
LOGGER.error("Ups! an error occured!", e);
|
LOGGER.error("Ups! an error occured!", e);
|
||||||
}
|
}
|
||||||
@ -178,17 +188,16 @@ public class DBController {
|
|||||||
public FilmTabelDataType getStream(String streamUrl) {
|
public FilmTabelDataType getStream(String streamUrl) {
|
||||||
FilmTabelDataType film = null;
|
FilmTabelDataType film = null;
|
||||||
LOGGER.info("refresh data for " + streamUrl);
|
LOGGER.info("refresh data for " + streamUrl);
|
||||||
try {
|
try (PreparedStatement ps = connection.prepareStatement("SELECT * FROM films WHERE streamUrl = ?");) {
|
||||||
PreparedStatement ps = connection.prepareStatement("SELECT * FROM films WHERE streamUrl = ?");
|
|
||||||
ps.setString(1, streamUrl);
|
ps.setString(1, streamUrl);
|
||||||
ResultSet rs = ps.executeQuery();
|
|
||||||
|
|
||||||
while (rs.next()) {
|
try (ResultSet rs = ps.executeQuery();) {
|
||||||
film = new FilmTabelDataType(rs.getString("streamUrl"),
|
while (rs.next()) {
|
||||||
rs.getString("title"), rs.getString("season"), rs.getString("episode"));
|
film = new FilmTabelDataType(rs.getString("streamUrl"),
|
||||||
|
rs.getString("title"), rs.getString("season"), rs.getString("episode"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
rs.close();
|
|
||||||
ps.close();
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
LOGGER.error("Ups! error while refreshing mwc!", e);
|
LOGGER.error("Ups! error while refreshing mwc!", e);
|
||||||
}
|
}
|
||||||
@ -201,25 +210,24 @@ public class DBController {
|
|||||||
* @return a ObservableList of PosterModeElements
|
* @return a ObservableList of PosterModeElements
|
||||||
*/
|
*/
|
||||||
public ObservableList<PosterModeElement> getPosterElementsList() {
|
public ObservableList<PosterModeElement> getPosterElementsList() {
|
||||||
|
|
||||||
ObservableList<PosterModeElement> posterElementsList = FXCollections.observableArrayList();
|
ObservableList<PosterModeElement> posterElementsList = FXCollections.observableArrayList();
|
||||||
LOGGER.info("loading data from database ...");
|
LOGGER.info("loading data from database ...");
|
||||||
try {
|
|
||||||
//load local Data
|
//load local Data
|
||||||
Statement stmt = connection.createStatement();
|
try (Statement stmt = connection.createStatement();) {
|
||||||
ResultSet rs = stmt.executeQuery("SELECT * FROM films WHERE season = '' OR season = '0' ORDER BY title");
|
|
||||||
|
|
||||||
while (rs.next()) {
|
try (ResultSet rs = stmt.executeQuery("SELECT * FROM films WHERE season = '' OR season = '0' ORDER BY title");) {
|
||||||
String[] cacheData = readCache(rs.getString("streamUrl")); // get from the cache table
|
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())));
|
if(cacheData[20] != null && cacheData[20].length() > 0) {
|
||||||
} else {
|
posterElementsList.add(new PosterModeElement(rs.getString("streamUrl"), cacheData[0], new Image(new File(cacheData[20]).toURI().toString())));
|
||||||
posterElementsList.add(new PosterModeElement(rs.getString("streamUrl"), cacheData[0], new Image("icons/Homeflix_Poster.png")));
|
} else {
|
||||||
|
posterElementsList.add(new PosterModeElement(rs.getString("streamUrl"), cacheData[0], new Image("icons/Homeflix_Poster.png")));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
stmt.close();
|
|
||||||
rs.close();
|
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
LOGGER.error("An error occured while getting all PosterElements!", 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
|
* check if there are any entries that have been removed from the film-directory
|
||||||
* @throws SQLException
|
* @throws SQLException
|
||||||
*/
|
*/
|
||||||
private void checkRemoveEntry() throws SQLException {
|
private void checkRemoveEntry() {
|
||||||
PreparedStatement ps = connection.prepareStatement("DELETE FROM films WHERE streamUrl = ?");
|
|
||||||
LOGGER.info("checking for entrys to remove to DB ...");
|
LOGGER.info("checking for entrys to remove to DB ...");
|
||||||
|
|
||||||
for (DatabaseDataType dbStreamEntry : databaseStreams) {
|
try (PreparedStatement ps = connection.prepareStatement("DELETE FROM films WHERE streamUrl = ?");) {
|
||||||
// if the directory doen't contain the entry form the database, remove it
|
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()
|
// if sourceStreams has a item where StreamUrl equals dbStreamEntry.getStreamUrl() return it, else null
|
||||||
.filter(x -> dbStreamEntry.getStreamUrl().equals(x.getStreamUrl()))
|
DatabaseDataType result = sourceStreams.stream()
|
||||||
.findAny()
|
.filter(x -> dbStreamEntry.getStreamUrl().equals(x.getStreamUrl()))
|
||||||
.orElse(null);
|
.findAny()
|
||||||
|
.orElse(null);
|
||||||
// if the result is null, the file is missing, remove it from the database
|
|
||||||
if (result == null) {
|
// if the result is null, the file is missing, remove it from the database
|
||||||
ps.setString(1, dbStreamEntry.getStreamUrl());
|
if (result == null) {
|
||||||
ps.addBatch();
|
ps.setString(1, dbStreamEntry.getStreamUrl());
|
||||||
LOGGER.info("removed \"" + dbStreamEntry.getTitle() + "\" from database");
|
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
|
* check for new media in the source directories
|
||||||
* @throws SQLException
|
|
||||||
* @throws FileNotFoundException
|
* @throws FileNotFoundException
|
||||||
* @throws IOException
|
* @throws IOException
|
||||||
*/
|
*/
|
||||||
private void checkAddEntry() throws SQLException, FileNotFoundException, IOException {
|
private void checkAddEntry() throws FileNotFoundException, IOException {
|
||||||
PreparedStatement ps = connection.prepareStatement("insert into films values (?, ?, ?, ?, ?, ?, ?)");
|
|
||||||
LOGGER.info("checking for entrys to add to DB ...");
|
LOGGER.info("checking for entrys to add to DB ...");
|
||||||
|
|
||||||
// new
|
try (PreparedStatement ps = connection.prepareStatement("insert into films values (?, ?, ?, ?, ?, ?, ?)");) {
|
||||||
for (DatabaseDataType sourceStreamEntry : sourceStreams) {
|
for (DatabaseDataType sourceStreamEntry : sourceStreams) {
|
||||||
|
|
||||||
// if databaseStream has a item where StreamUrl equals sourceStreamEntry.getStreamUrl() return it, else null
|
// if databaseStream has a item where StreamUrl equals sourceStreamEntry.getStreamUrl() return it, else null
|
||||||
DatabaseDataType result = databaseStreams.stream()
|
DatabaseDataType result = databaseStreams.stream()
|
||||||
.filter(x -> sourceStreamEntry.getStreamUrl().equals(x.getStreamUrl()))
|
.filter(x -> sourceStreamEntry.getStreamUrl().equals(x.getStreamUrl()))
|
||||||
.findAny()
|
.findAny()
|
||||||
.orElse(null);
|
.orElse(null);
|
||||||
|
|
||||||
// if the result is null, the entry is missing, add it to the database
|
// if the result is null, the entry is missing, add it to the database
|
||||||
if (result == null) {
|
if (result == null) {
|
||||||
ps.setString(1, sourceStreamEntry.getStreamUrl());
|
ps.setString(1, sourceStreamEntry.getStreamUrl());
|
||||||
ps.setString(2, sourceStreamEntry.getTitle());
|
ps.setString(2, sourceStreamEntry.getTitle());
|
||||||
ps.setString(3, sourceStreamEntry.getSeason());
|
ps.setString(3, sourceStreamEntry.getSeason());
|
||||||
ps.setString(4, sourceStreamEntry.getEpisode());
|
ps.setString(4, sourceStreamEntry.getEpisode());
|
||||||
ps.setInt(5, sourceStreamEntry.getFavorite());
|
ps.setInt(5, sourceStreamEntry.getFavorite());
|
||||||
ps.setDate(6, new Date(0));
|
ps.setDate(6, new Date(0));
|
||||||
ps.setDouble(7, sourceStreamEntry.getCurrentTime());
|
ps.setDouble(7, sourceStreamEntry.getCurrentTime());
|
||||||
ps.addBatch(); // adds the entry
|
ps.addBatch(); // adds the entry
|
||||||
LOGGER.info("Added \"" + sourceStreamEntry.getTitle() + "\" to database");
|
LOGGER.info("Added \"" + sourceStreamEntry.getTitle() + "\" to database");
|
||||||
databaseStreams.add(sourceStreamEntry);
|
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() {
|
public void printAllDBEntriesDEBUG() {
|
||||||
System.out.println("Outputting all entries ... \n");
|
System.out.println("Outputting all entries ... \n");
|
||||||
try {
|
try (Statement stmt = connection.createStatement();) {
|
||||||
Statement stmt = connection.createStatement();
|
|
||||||
ResultSet rs = stmt.executeQuery("SELECT * FROM films");
|
try (ResultSet rs = stmt.executeQuery("SELECT * FROM films");) {
|
||||||
while (rs.next()) {
|
while (rs.next()) {
|
||||||
System.out.println(rs.getString("streamUrl"));
|
System.out.println(rs.getString("streamUrl"));
|
||||||
System.out.println(rs.getString("title"));
|
System.out.println(rs.getString("title"));
|
||||||
System.out.println(rs.getString("season"));
|
System.out.println(rs.getString("season"));
|
||||||
System.out.println(rs.getString("episode"));
|
System.out.println(rs.getString("episode"));
|
||||||
System.out.println(rs.getString("rating"));
|
System.out.println(rs.getString("rating"));
|
||||||
System.out.println(rs.getString("cached"));
|
System.out.println(rs.getString("cached"));
|
||||||
System.out.println(rs.getString("currentTime") + "\n");
|
System.out.println(rs.getString("currentTime") + "\n");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
rs.close();
|
|
||||||
stmt.close();
|
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
LOGGER.error("An error occured, while printing all entries", e);
|
LOGGER.error("An error occured, while printing all entries", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* return the favorite state for a stream
|
* return the favorite status of a media entry
|
||||||
* @param streamURL URL of the stream
|
* @param mediaURL URL of the media
|
||||||
* @return 0 if it's not a favorite, else 1
|
* @return 0 if it's not a favorite, else 1
|
||||||
*/
|
*/
|
||||||
public int getFavoriteState(String streamURL) {
|
public int getFavoriteState(String mediaURL) {
|
||||||
int favoriteState = 0;
|
int favoriteState = 0;
|
||||||
PreparedStatement ps;
|
|
||||||
try {
|
try (PreparedStatement ps = connection.prepareStatement("SELECT favorite FROM films WHERE streamUrl = ?");) {
|
||||||
ps = connection.prepareStatement("SELECT favorite FROM films WHERE streamUrl = ?");
|
ps.setString(1, mediaURL);
|
||||||
ps.setString(1, streamURL);
|
|
||||||
ResultSet rs = ps.executeQuery();
|
|
||||||
|
|
||||||
while (rs.next()) {
|
try (ResultSet rs = ps.executeQuery();) {
|
||||||
favoriteState = rs.getInt("favorite");
|
while (rs.next()) {
|
||||||
|
favoriteState = rs.getInt("favorite");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
rs.close();
|
|
||||||
ps.close();
|
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
LOGGER.error("Ups! an error occured!", e);
|
LOGGER.error("Ups! an error occured!", e);
|
||||||
}
|
}
|
||||||
@ -373,18 +381,13 @@ public class DBController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void toggleFavoriteState(String streamURL) {
|
public void toggleFavoriteState(String streamURL) {
|
||||||
PreparedStatement ps;
|
int fav = getFavoriteState(streamURL) == 0 ? 1 : 0;
|
||||||
try {
|
|
||||||
if (getFavoriteState(streamURL) == 0) {
|
try (PreparedStatement ps = connection.prepareStatement("UPDATE films SET favorite = ? WHERE streamUrl = ?");) {
|
||||||
ps = connection.prepareStatement("UPDATE films SET favorite = 1 WHERE streamUrl = ?");
|
ps.setInt(1, fav);
|
||||||
} else {
|
ps.setString(2, streamURL);
|
||||||
ps = connection.prepareStatement("UPDATE films SET favorite = 0 WHERE streamUrl = ?");
|
|
||||||
}
|
|
||||||
|
|
||||||
ps.setString(1, streamURL);
|
|
||||||
ps.executeUpdate();
|
ps.executeUpdate();
|
||||||
connection.commit();
|
connection.commit();
|
||||||
ps.close();
|
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
LOGGER.error("Ups! an error occured!", e);
|
LOGGER.error("Ups! an error occured!", e);
|
||||||
}
|
}
|
||||||
@ -396,12 +399,11 @@ public class DBController {
|
|||||||
*/
|
*/
|
||||||
public void dislike(String streamUrl) {
|
public void dislike(String streamUrl) {
|
||||||
LOGGER.info("dislike " + 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.setString(1, streamUrl);
|
||||||
ps.executeUpdate();
|
ps.executeUpdate();
|
||||||
connection.commit();
|
connection.commit();
|
||||||
ps.close();
|
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
LOGGER.error("Ups! an error occured!", e);
|
LOGGER.error("Ups! an error occured!", e);
|
||||||
}
|
}
|
||||||
@ -413,12 +415,11 @@ public class DBController {
|
|||||||
*/
|
*/
|
||||||
public void like(String streamUrl) {
|
public void like(String streamUrl) {
|
||||||
LOGGER.info("like " + 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.setString(1, streamUrl);
|
||||||
ps.executeUpdate();
|
ps.executeUpdate();
|
||||||
connection.commit();
|
connection.commit();
|
||||||
ps.close();
|
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
LOGGER.error("Ups! An error occured!", e);
|
LOGGER.error("Ups! An error occured!", e);
|
||||||
}
|
}
|
||||||
@ -429,13 +430,11 @@ public class DBController {
|
|||||||
* @param streamUrl URL of the film
|
* @param streamUrl URL of the film
|
||||||
*/
|
*/
|
||||||
public void setCached(String streamUrl) {
|
public void setCached(String streamUrl) {
|
||||||
try {
|
try (PreparedStatement ps = connection.prepareStatement("UPDATE films SET cached = ? WHERE streamUrl = ?");) {
|
||||||
PreparedStatement ps = connection.prepareStatement("UPDATE films SET cached = ? WHERE streamUrl = ?");
|
|
||||||
ps.setDate(1, new Date(System.currentTimeMillis()));
|
ps.setDate(1, new Date(System.currentTimeMillis()));
|
||||||
ps.setString(2, streamUrl);
|
ps.setString(2, streamUrl);
|
||||||
ps.executeUpdate();
|
ps.executeUpdate();
|
||||||
connection.commit();
|
connection.commit();
|
||||||
ps.close();
|
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
LOGGER.error("Ups! An error occured, while setting cached = DATE for {}.", streamUrl, 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) {
|
public LocalDate getCacheDate(String streamUrl) {
|
||||||
LocalDate cacheDate = LocalDate.now().minusDays(31);
|
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);
|
ps.setString(1, streamUrl);
|
||||||
ResultSet rs = ps.executeQuery();
|
|
||||||
|
|
||||||
while (rs.next()) {
|
try (ResultSet rs = ps.executeQuery();) {
|
||||||
cacheDate = rs.getDate("cached").toLocalDate();
|
while (rs.next()) {
|
||||||
|
cacheDate = rs.getDate("cached").toLocalDate();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
rs.close();
|
|
||||||
ps.close();
|
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
LOGGER.error("Ups! An error occured, while rerading the cached date for {}.", streamUrl, 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
|
* @param omdbResponse the response data from omdbAPI
|
||||||
*/
|
*/
|
||||||
public void addCache(String streamUrl, OMDbAPIResponseDataType omdbResponse) {
|
public void addCache(String streamUrl, OMDbAPIResponseDataType omdbResponse) {
|
||||||
try {
|
LOGGER.info("adding cache for: " + streamUrl);
|
||||||
PreparedStatement ps = connection.prepareStatement("insert into cache values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
|
|
||||||
|
try (PreparedStatement ps = connection.prepareStatement("insert into cache values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");){
|
||||||
LOGGER.info("adding cache for: " + streamUrl);
|
|
||||||
ps.setString(1,streamUrl);
|
ps.setString(1,streamUrl);
|
||||||
ps.setString(2,omdbResponse.getTitle());
|
ps.setString(2,omdbResponse.getTitle());
|
||||||
ps.setString(3,omdbResponse.getYear());
|
ps.setString(3,omdbResponse.getYear());
|
||||||
@ -505,7 +502,6 @@ public class DBController {
|
|||||||
ps.addBatch();
|
ps.addBatch();
|
||||||
ps.executeBatch();
|
ps.executeBatch();
|
||||||
connection.commit();
|
connection.commit();
|
||||||
ps.close();
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
LOGGER.error("Ups! An error while adding cache data for {}.", streamUrl, 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) {
|
public boolean searchCacheByURL(String streamUrl) {
|
||||||
boolean retValue = false;
|
boolean retValue = false;
|
||||||
try {
|
try (PreparedStatement ps = connection.prepareStatement("SELECT * FROM cache WHERE streamUrl = ?");) {
|
||||||
PreparedStatement ps = connection.prepareStatement("SELECT * FROM cache WHERE streamUrl = ?");
|
|
||||||
ps.setString(1, streamUrl);
|
ps.setString(1, streamUrl);
|
||||||
ResultSet rs = ps.executeQuery();
|
|
||||||
retValue = rs.next();
|
try (ResultSet rs = ps.executeQuery();) {
|
||||||
rs.close();
|
retValue = rs.next();
|
||||||
ps.close();
|
}
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
LOGGER.error("Ups! An error while searching for {} in the cache.", streamUrl, 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
|
* @param streamUrl URL of the film
|
||||||
* @return a String array (length = 21) with all cached data
|
* @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];
|
String[] cacheData = new String[21];
|
||||||
|
|
||||||
try {
|
try (PreparedStatement ps = connection.prepareStatement("SELECT * FROM cache WHERE streamUrl = ?");) {
|
||||||
PreparedStatement ps = connection.prepareStatement("SELECT * FROM cache WHERE streamUrl = ?");
|
|
||||||
ps.setString(1, streamUrl);
|
ps.setString(1, streamUrl);
|
||||||
ResultSet rs = ps.executeQuery();
|
|
||||||
|
|
||||||
while (rs.next()) {
|
try (ResultSet rs = ps.executeQuery();) {
|
||||||
cacheData[0] = rs.getString("Title");
|
while (rs.next()) {
|
||||||
cacheData[1] = rs.getString("Year");
|
cacheData[0] = rs.getString("Title");
|
||||||
cacheData[2] = rs.getString("Rated");
|
cacheData[1] = rs.getString("Year");
|
||||||
cacheData[3] = rs.getString("Released");
|
cacheData[2] = rs.getString("Rated");
|
||||||
cacheData[4] = rs.getString("Season");
|
cacheData[3] = rs.getString("Released");
|
||||||
cacheData[5] = rs.getString("Episode");
|
cacheData[4] = rs.getString("Season");
|
||||||
cacheData[6] = rs.getString("Runtime");
|
cacheData[5] = rs.getString("Episode");
|
||||||
cacheData[7] = rs.getString("Genre");
|
cacheData[6] = rs.getString("Runtime");
|
||||||
cacheData[8] = rs.getString("Director");
|
cacheData[7] = rs.getString("Genre");
|
||||||
cacheData[9] = rs.getString("Writer");
|
cacheData[8] = rs.getString("Director");
|
||||||
cacheData[10] = rs.getString("Actors");
|
cacheData[9] = rs.getString("Writer");
|
||||||
cacheData[11] = rs.getString("Plot");
|
cacheData[10] = rs.getString("Actors");
|
||||||
cacheData[12] = rs.getString("Language");
|
cacheData[11] = rs.getString("Plot");
|
||||||
cacheData[13] = rs.getString("Country");
|
cacheData[12] = rs.getString("Language");
|
||||||
cacheData[14] = rs.getString("Awards");
|
cacheData[13] = rs.getString("Country");
|
||||||
cacheData[15] = rs.getString("metascore");
|
cacheData[14] = rs.getString("Awards");
|
||||||
cacheData[16] = rs.getString("imdbRating");
|
cacheData[15] = rs.getString("metascore");
|
||||||
cacheData[17] = rs.getString("Type");
|
cacheData[16] = rs.getString("imdbRating");
|
||||||
cacheData[18] = rs.getString("BoxOffice");
|
cacheData[17] = rs.getString("Type");
|
||||||
cacheData[19] = rs.getString("Website");
|
cacheData[18] = rs.getString("BoxOffice");
|
||||||
cacheData[20] = rs.getString("Poster");
|
cacheData[19] = rs.getString("Website");
|
||||||
|
cacheData[20] = rs.getString("Poster");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
rs.close();
|
|
||||||
ps.close();
|
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
LOGGER.error("Ups! error while getting the current time for {}.", streamUrl, e);
|
LOGGER.error("Ups! error while getting the current time for {}.", streamUrl, e);
|
||||||
}
|
}
|
||||||
@ -578,6 +572,50 @@ public class DBController {
|
|||||||
return cacheData;
|
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
|
* get all NOT cached entries
|
||||||
* @return a {@link ArrayList} of all NOT cached entries
|
* @return a {@link ArrayList} of all NOT cached entries
|
||||||
@ -585,15 +623,15 @@ public class DBController {
|
|||||||
public ArrayList<FilmTabelDataType> getAllNotCachedEntries() {
|
public ArrayList<FilmTabelDataType> getAllNotCachedEntries() {
|
||||||
ArrayList<FilmTabelDataType> notCachedEntries = new ArrayList<>();
|
ArrayList<FilmTabelDataType> notCachedEntries = new ArrayList<>();
|
||||||
|
|
||||||
try {
|
try (Statement stmt = connection.createStatement();) {
|
||||||
Statement stmt = connection.createStatement();
|
|
||||||
ResultSet rs = stmt.executeQuery("SELECT * FROM films WHERE cached = 0");
|
try (ResultSet rs = stmt.executeQuery("SELECT * FROM films WHERE cached = 0");) {
|
||||||
while (rs.next()) {
|
while (rs.next()) {
|
||||||
notCachedEntries.add(new FilmTabelDataType(rs.getString("streamUrl"),
|
notCachedEntries.add(new FilmTabelDataType(rs.getString("streamUrl"),
|
||||||
rs.getString("title"), rs.getString("season"), rs.getString("episode")));
|
rs.getString("title"), rs.getString("season"), rs.getString("episode")));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
stmt.close();
|
|
||||||
rs.close();
|
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
LOGGER.error("An error occured, while getting all NOT cached entries", 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) {
|
public double getCurrentTime(String streamUrl) {
|
||||||
LOGGER.info("get currentTime for " + streamUrl);
|
LOGGER.info("get currentTime for " + streamUrl);
|
||||||
double currentTime = 0;
|
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);
|
ps.setString(1, streamUrl);
|
||||||
ResultSet rs = ps.executeQuery();
|
|
||||||
currentTime = rs.getDouble("currentTime");
|
try (ResultSet rs = ps.executeQuery();) {
|
||||||
rs.close();
|
currentTime = rs.getDouble("currentTime");
|
||||||
ps.close();
|
}
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
LOGGER.error("Ups! error while getting the current time!", 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) {
|
public void setCurrentTime(String streamUrl, double currentTime) {
|
||||||
LOGGER.info("set currentTime = " + currentTime + " for " + streamUrl);
|
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.setDouble(1, currentTime);
|
||||||
ps.setString(2, streamUrl);
|
ps.setString(2, streamUrl);
|
||||||
ps.executeUpdate();
|
ps.executeUpdate();
|
||||||
connection.commit();
|
connection.commit();
|
||||||
ps.close();
|
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
LOGGER.error("Ups! error while updateing the current time!", e);
|
LOGGER.error("Ups! error while updateing the current time!", e);
|
||||||
}
|
}
|
||||||
@ -651,18 +689,19 @@ public class DBController {
|
|||||||
*/
|
*/
|
||||||
public ArrayList<String[]> getEpisodes(String title, int season) {
|
public ArrayList<String[]> getEpisodes(String title, int season) {
|
||||||
ArrayList<String[]> episodePosters =new ArrayList<>();
|
ArrayList<String[]> episodePosters =new ArrayList<>();
|
||||||
try {
|
|
||||||
// try to get a all episode of one season
|
// try to get a all episode of one season
|
||||||
PreparedStatement ps = connection.prepareStatement("SELECT streamUrl, episode FROM films WHERE title = ? AND season = ?");
|
try (PreparedStatement ps = connection.prepareStatement("SELECT streamUrl, episode FROM films WHERE title = ? AND season = ?");) {
|
||||||
ps.setString(1, title);
|
ps.setString(1, title);
|
||||||
ps.setString(2, Integer.toString(season));
|
ps.setString(2, Integer.toString(season));
|
||||||
ResultSet rs = ps.executeQuery();
|
|
||||||
|
|
||||||
// for each episode load cache data
|
try (ResultSet rs = ps.executeQuery();) {
|
||||||
while (rs.next()) {
|
// for each episode load cache data
|
||||||
String[] cacheData = readCache(rs.getString("streamUrl"));
|
while (rs.next()) {
|
||||||
String[] ret = {rs.getString("streamUrl"), rs.getString("episode"), cacheData[20]};
|
String[] cacheData = readCacheLegacy(rs.getString("streamUrl"));
|
||||||
episodePosters.add(ret);
|
String[] ret = {rs.getString("streamUrl"), rs.getString("episode"), cacheData[20]};
|
||||||
|
episodePosters.add(ret);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} catch(Exception e) {
|
} catch(Exception e) {
|
||||||
LOGGER.error("Ups! error while getting episodes of a season!", e);
|
LOGGER.error("Ups! error while getting episodes of a season!", e);
|
@ -20,7 +20,7 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package kellerkinder.HomeFlix.controller;
|
package org.mosad.homeflix.controller;
|
||||||
|
|
||||||
import java.awt.image.BufferedImage;
|
import java.awt.image.BufferedImage;
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
@ -32,14 +32,13 @@ import javax.imageio.ImageIO;
|
|||||||
|
|
||||||
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.LogManager;
|
||||||
import org.apache.logging.log4j.Logger;
|
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.Json;
|
||||||
import com.eclipsesource.json.JsonObject;
|
import com.eclipsesource.json.JsonObject;
|
||||||
import com.eclipsesource.json.JsonValue;
|
import com.eclipsesource.json.JsonValue;
|
||||||
|
|
||||||
import kellerkinder.HomeFlix.datatypes.FilmTabelDataType;
|
|
||||||
import kellerkinder.HomeFlix.datatypes.OMDbAPIResponseDataType;
|
|
||||||
|
|
||||||
public class OMDbAPIController implements Runnable {
|
public class OMDbAPIController implements Runnable {
|
||||||
|
|
||||||
private DBController dbController;
|
private DBController dbController;
|
@ -20,7 +20,7 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package kellerkinder.HomeFlix.controller;
|
package org.mosad.homeflix.controller;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileReader;
|
import java.io.FileReader;
|
||||||
@ -31,14 +31,13 @@ import java.util.List;
|
|||||||
|
|
||||||
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.LogManager;
|
||||||
import org.apache.logging.log4j.Logger;
|
import org.apache.logging.log4j.Logger;
|
||||||
|
import org.mosad.homeflix.datatypes.DatabaseDataType;
|
||||||
|
|
||||||
import com.eclipsesource.json.Json;
|
import com.eclipsesource.json.Json;
|
||||||
import com.eclipsesource.json.JsonArray;
|
import com.eclipsesource.json.JsonArray;
|
||||||
import com.eclipsesource.json.JsonObject;
|
import com.eclipsesource.json.JsonObject;
|
||||||
import com.eclipsesource.json.JsonValue;
|
import com.eclipsesource.json.JsonValue;
|
||||||
|
|
||||||
import kellerkinder.HomeFlix.datatypes.DatabaseDataType;
|
|
||||||
|
|
||||||
public class SourcesController {
|
public class SourcesController {
|
||||||
|
|
||||||
private List<DatabaseDataType> sourceStreams = new ArrayList<DatabaseDataType>();
|
private List<DatabaseDataType> sourceStreams = new ArrayList<DatabaseDataType>();
|
||||||
@ -85,10 +84,10 @@ public class SourcesController {
|
|||||||
for (File file : new File(path).listFiles()) {
|
for (File file : new File(path).listFiles()) {
|
||||||
// if it's valid file add it to the sourceStreams
|
// if it's valid file add it to the sourceStreams
|
||||||
if (isValidFile(file)) {
|
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)) {
|
} else if(isValidSeriesRoot(file)) {
|
||||||
// get all directories (series), root and season must be directories
|
// 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;
|
int sn = 1;
|
||||||
for (File season : file.listFiles()) {
|
for (File season : file.listFiles()) {
|
||||||
if (season.isDirectory()) {
|
if (season.isDirectory()) {
|
@ -19,7 +19,7 @@
|
|||||||
* MA 02110-1301, USA.
|
* MA 02110-1301, USA.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package kellerkinder.HomeFlix.controller;
|
package org.mosad.homeflix.controller;
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@ -34,14 +34,13 @@ import javax.swing.ProgressMonitorInputStream;
|
|||||||
import org.apache.commons.io.FileUtils;
|
import org.apache.commons.io.FileUtils;
|
||||||
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.LogManager;
|
||||||
import org.apache.logging.log4j.Logger;
|
import org.apache.logging.log4j.Logger;
|
||||||
|
import org.mosad.homeflix.application.Main;
|
||||||
|
|
||||||
import com.eclipsesource.json.Json;
|
import com.eclipsesource.json.Json;
|
||||||
import com.eclipsesource.json.JsonArray;
|
import com.eclipsesource.json.JsonArray;
|
||||||
import com.eclipsesource.json.JsonObject;
|
import com.eclipsesource.json.JsonObject;
|
||||||
import com.eclipsesource.json.JsonValue;
|
import com.eclipsesource.json.JsonValue;
|
||||||
|
|
||||||
import kellerkinder.HomeFlix.application.Main;
|
|
||||||
|
|
||||||
public class UpdateController {
|
public class UpdateController {
|
||||||
|
|
||||||
private static int updateBuildNumber; // tag_name from gitea
|
private static int updateBuildNumber; // tag_name from gitea
|
@ -20,7 +20,7 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package kellerkinder.HomeFlix.controller;
|
package org.mosad.homeflix.controller;
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
import java.io.File;
|
import java.io.File;
|
@ -20,7 +20,7 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package kellerkinder.HomeFlix.datatypes;
|
package org.mosad.homeflix.datatypes;
|
||||||
|
|
||||||
public class DatabaseDataType {
|
public class DatabaseDataType {
|
||||||
|
|
@ -18,7 +18,7 @@
|
|||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||||
* MA 02110-1301, USA.
|
* MA 02110-1301, USA.
|
||||||
*/
|
*/
|
||||||
package kellerkinder.HomeFlix.datatypes;
|
package org.mosad.homeflix.datatypes;
|
||||||
|
|
||||||
public class FilmTabelDataType {
|
public class FilmTabelDataType {
|
||||||
private String streamUrl;
|
private String streamUrl;
|
@ -20,36 +20,36 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package kellerkinder.HomeFlix.datatypes;
|
package org.mosad.homeflix.datatypes;
|
||||||
|
|
||||||
public class OMDbAPIResponseDataType {
|
public class OMDbAPIResponseDataType {
|
||||||
|
|
||||||
private String title;
|
private String title = "";
|
||||||
private String year;
|
private String year = "";
|
||||||
private String rated;
|
private String rated = "";
|
||||||
private String released;
|
private String released = "";
|
||||||
private String season;
|
private String season = "";
|
||||||
private String episode;
|
private String episode = "";
|
||||||
private String runtime;
|
private String runtime = "";
|
||||||
private String genre;
|
private String genre = "";
|
||||||
private String director;
|
private String director = "";
|
||||||
private String writer;
|
private String writer = "";
|
||||||
private String actors;
|
private String actors = "";
|
||||||
private String plot;
|
private String plot = "";
|
||||||
private String language;
|
private String language = "";
|
||||||
private String country;
|
private String country = "";
|
||||||
private String awards;
|
private String awards = "";
|
||||||
private String poster;
|
private String poster = "";
|
||||||
private String metascore;
|
private String metascore = "";
|
||||||
private String imdbRating;
|
private String imdbRating = "";
|
||||||
private String imdbVotes;
|
private String imdbVotes = "";
|
||||||
private String imdbID;
|
private String imdbID = "";
|
||||||
private String type;
|
private String type = "";
|
||||||
private String dvd;
|
private String dvd = "";
|
||||||
private String boxOffice;
|
private String boxOffice = "";
|
||||||
private String production;
|
private String production = "";
|
||||||
private String website;
|
private String website = "";
|
||||||
private String response;
|
private String response = "";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* OMDbAPIResponseDataType is the data-type for the omdbAPI response
|
* OMDbAPIResponseDataType is the data-type for the omdbAPI response
|
||||||
@ -71,7 +71,7 @@ public class OMDbAPIResponseDataType {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void setYear(String year) {
|
public void setYear(String year) {
|
||||||
this.year = year;
|
this.year = year == null ? "N/A" : year;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getRated() {
|
public String getRated() {
|
||||||
@ -79,7 +79,7 @@ public class OMDbAPIResponseDataType {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void setRated(String rated) {
|
public void setRated(String rated) {
|
||||||
this.rated = rated;
|
this.rated = rated == null ? "N/A" : rated;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getReleased() {
|
public String getReleased() {
|
||||||
@ -87,7 +87,7 @@ public class OMDbAPIResponseDataType {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void setReleased(String released) {
|
public void setReleased(String released) {
|
||||||
this.released = released;
|
this.released = released == null ? "N/A" : released;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getSeason() {
|
public String getSeason() {
|
||||||
@ -127,7 +127,7 @@ public class OMDbAPIResponseDataType {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void setDirector(String director) {
|
public void setDirector(String director) {
|
||||||
this.director = director;
|
this.director = director == null ? "N/A" : director;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getWriter() {
|
public String getWriter() {
|
||||||
@ -135,7 +135,7 @@ public class OMDbAPIResponseDataType {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void setWriter(String writer) {
|
public void setWriter(String writer) {
|
||||||
this.writer = writer;
|
this.writer = writer == null ? "N/A" : writer;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getActors() {
|
public String getActors() {
|
||||||
@ -143,7 +143,7 @@ public class OMDbAPIResponseDataType {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void setActors(String actors) {
|
public void setActors(String actors) {
|
||||||
this.actors = actors;
|
this.actors = actors == null ? "N/A" : actors;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getPlot() {
|
public String getPlot() {
|
||||||
@ -151,7 +151,7 @@ public class OMDbAPIResponseDataType {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void setPlot(String plot) {
|
public void setPlot(String plot) {
|
||||||
this.plot = plot;
|
this.plot = plot == null ? "N/A" : plot;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getLanguage() {
|
public String getLanguage() {
|
||||||
@ -159,7 +159,7 @@ public class OMDbAPIResponseDataType {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void setLanguage(String language) {
|
public void setLanguage(String language) {
|
||||||
this.language = language;
|
this.language = language == null ? "N/A" : language;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getCountry() {
|
public String getCountry() {
|
||||||
@ -167,7 +167,7 @@ public class OMDbAPIResponseDataType {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void setCountry(String country) {
|
public void setCountry(String country) {
|
||||||
this.country = country;
|
this.country = country == null ? "N/A" : country;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getAwards() {
|
public String getAwards() {
|
||||||
@ -175,7 +175,7 @@ public class OMDbAPIResponseDataType {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void setAwards(String awards) {
|
public void setAwards(String awards) {
|
||||||
this.awards = awards;
|
this.awards = awards == null ? "N/A" : awards;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getPoster() {
|
public String getPoster() {
|
||||||
@ -191,7 +191,7 @@ public class OMDbAPIResponseDataType {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void setMetascore(String metascore) {
|
public void setMetascore(String metascore) {
|
||||||
this.metascore = metascore;
|
this.metascore = metascore == null ? "N/A" : metascore;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getImdbRating() {
|
public String getImdbRating() {
|
||||||
@ -199,7 +199,7 @@ public class OMDbAPIResponseDataType {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void setImdbRating(String imdbRating) {
|
public void setImdbRating(String imdbRating) {
|
||||||
this.imdbRating = imdbRating;
|
this.imdbRating = imdbRating == null ? "N/A" : imdbRating;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getImdbVotes() {
|
public String getImdbVotes() {
|
||||||
@ -207,7 +207,7 @@ public class OMDbAPIResponseDataType {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void setImdbVotes(String imdbVotes) {
|
public void setImdbVotes(String imdbVotes) {
|
||||||
this.imdbVotes = imdbVotes;
|
this.imdbVotes = imdbVotes == null ? "N/A" : imdbVotes;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getImdbID() {
|
public String getImdbID() {
|
||||||
@ -231,7 +231,7 @@ public class OMDbAPIResponseDataType {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void setDvd(String dvd) {
|
public void setDvd(String dvd) {
|
||||||
this.dvd = dvd;
|
this.dvd = dvd == null ? "N/A" : dvd;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getBoxOffice() {
|
public String getBoxOffice() {
|
||||||
@ -239,7 +239,7 @@ public class OMDbAPIResponseDataType {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void setBoxOffice(String boxOffice) {
|
public void setBoxOffice(String boxOffice) {
|
||||||
this.boxOffice = boxOffice;
|
this.boxOffice = boxOffice == null ? "N/A" : boxOffice;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getProduction() {
|
public String getProduction() {
|
||||||
@ -247,7 +247,7 @@ public class OMDbAPIResponseDataType {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void setProduction(String production) {
|
public void setProduction(String production) {
|
||||||
this.production = production;
|
this.production = production == null ? "N/A" : production;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getWebsite() {
|
public String getWebsite() {
|
||||||
@ -255,7 +255,7 @@ public class OMDbAPIResponseDataType {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void setWebsite(String website) {
|
public void setWebsite(String website) {
|
||||||
this.website = website;
|
this.website = website == null ? "N/A" : website;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getResponse() {
|
public String getResponse() {
|
@ -20,7 +20,7 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package kellerkinder.HomeFlix.datatypes;
|
package org.mosad.homeflix.datatypes;
|
||||||
|
|
||||||
import com.jfoenix.controls.JFXButton;
|
import com.jfoenix.controls.JFXButton;
|
||||||
|
|
@ -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.control.Label;
|
||||||
import javafx.scene.image.Image;
|
import javafx.scene.image.Image;
|
||||||
import javafx.scene.image.ImageView;
|
import javafx.scene.image.ImageView;
|
||||||
import javafx.scene.input.MouseEvent;
|
import javafx.scene.input.MouseEvent;
|
||||||
import javafx.scene.layout.AnchorPane;
|
import javafx.scene.layout.AnchorPane;
|
||||||
import kellerkinder.HomeFlix.player.Player;
|
|
||||||
|
|
||||||
public class SeriresDVEpisode extends AnchorPane {
|
public class SeriresDVEpisode extends AnchorPane {
|
||||||
|
|
@ -18,7 +18,7 @@
|
|||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||||
* MA 02110-1301, USA.
|
* MA 02110-1301, USA.
|
||||||
*/
|
*/
|
||||||
package kellerkinder.HomeFlix.datatypes;
|
package org.mosad.homeflix.datatypes;
|
||||||
|
|
||||||
import javafx.beans.property.SimpleStringProperty;
|
import javafx.beans.property.SimpleStringProperty;
|
||||||
import javafx.beans.property.StringProperty;
|
import javafx.beans.property.StringProperty;
|
@ -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.MediaRef;
|
||||||
import uk.co.caprica.vlcj.media.TrackType;
|
import uk.co.caprica.vlcj.media.TrackType;
|
@ -20,7 +20,7 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package kellerkinder.HomeFlix.player;
|
package org.mosad.homeflix.player;
|
||||||
|
|
||||||
import java.awt.Desktop;
|
import java.awt.Desktop;
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
@ -31,6 +31,7 @@ import java.net.URLConnection;
|
|||||||
|
|
||||||
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.LogManager;
|
||||||
import org.apache.logging.log4j.Logger;
|
import org.apache.logging.log4j.Logger;
|
||||||
|
import org.mosad.homeflix.application.Main;
|
||||||
|
|
||||||
import javafx.fxml.FXMLLoader;
|
import javafx.fxml.FXMLLoader;
|
||||||
import javafx.scene.Scene;
|
import javafx.scene.Scene;
|
||||||
@ -38,7 +39,6 @@ import javafx.scene.image.Image;
|
|||||||
import javafx.scene.layout.AnchorPane;
|
import javafx.scene.layout.AnchorPane;
|
||||||
import javafx.scene.layout.Pane;
|
import javafx.scene.layout.Pane;
|
||||||
import javafx.stage.Stage;
|
import javafx.stage.Stage;
|
||||||
import kellerkinder.HomeFlix.application.Main;
|
|
||||||
|
|
||||||
public class Player {
|
public class Player {
|
||||||
|
|
@ -20,13 +20,17 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package kellerkinder.HomeFlix.player;
|
package org.mosad.homeflix.player;
|
||||||
|
|
||||||
import java.nio.ByteBuffer;
|
import java.nio.ByteBuffer;
|
||||||
import java.util.Timer;
|
import java.util.Timer;
|
||||||
import java.util.TimerTask;
|
import java.util.TimerTask;
|
||||||
import java.util.concurrent.TimeUnit;
|
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.JFXButton;
|
||||||
import com.jfoenix.controls.JFXSlider;
|
import com.jfoenix.controls.JFXSlider;
|
||||||
|
|
||||||
@ -47,9 +51,6 @@ import javafx.scene.input.MouseEvent;
|
|||||||
import javafx.scene.layout.HBox;
|
import javafx.scene.layout.HBox;
|
||||||
import javafx.scene.layout.VBox;
|
import javafx.scene.layout.VBox;
|
||||||
import javafx.scene.media.MediaView;
|
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.factory.MediaPlayerFactory;
|
||||||
import uk.co.caprica.vlcj.player.base.MediaPlayer;
|
import uk.co.caprica.vlcj.player.base.MediaPlayer;
|
||||||
import uk.co.caprica.vlcj.player.embedded.EmbeddedMediaPlayer;
|
import uk.co.caprica.vlcj.player.embedded.EmbeddedMediaPlayer;
|
@ -12,7 +12,7 @@
|
|||||||
<?import javafx.scene.text.Text?>
|
<?import javafx.scene.text.Text?>
|
||||||
<?import javafx.scene.text.TextFlow?>
|
<?import javafx.scene.text.TextFlow?>
|
||||||
|
|
||||||
<AnchorPane fx:id="filmDVPane" prefHeight="568.0" prefWidth="1130.0" style="-fx-background-color: #595959;" visible="false" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="kellerkinder.HomeFlix.application.FilmDetailView">
|
<AnchorPane fx:id="filmDVPane" prefHeight="568.0" prefWidth="1130.0" style="-fx-background-color: #595959;" visible="false" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="org.mosad.homeflix.application.FilmDetailView">
|
||||||
<children>
|
<children>
|
||||||
<HBox layoutX="22.0" layoutY="21.0" prefWidth="808.0" spacing="10.0" AnchorPane.leftAnchor="22.0" AnchorPane.rightAnchor="300.0" AnchorPane.topAnchor="22.0">
|
<HBox layoutX="22.0" layoutY="21.0" prefWidth="808.0" spacing="10.0" AnchorPane.leftAnchor="22.0" AnchorPane.rightAnchor="300.0" AnchorPane.topAnchor="22.0">
|
||||||
<children>
|
<children>
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
<?import javafx.scene.layout.VBox?>
|
<?import javafx.scene.layout.VBox?>
|
||||||
<?import javafx.scene.text.Font?>
|
<?import javafx.scene.text.Font?>
|
||||||
|
|
||||||
<AnchorPane fx:id="mainAnchorPane" prefHeight="600.0" prefWidth="1130.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="kellerkinder.HomeFlix.application.MainWindowController">
|
<AnchorPane fx:id="mainAnchorPane" prefHeight="600.0" prefWidth="1130.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="org.mosad.homeflix.application.MainWindowController">
|
||||||
<children>
|
<children>
|
||||||
<ScrollPane fx:id="posterModeScrollPane" fitToWidth="true" layoutX="10.0" layoutY="48.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="32.0">
|
<ScrollPane fx:id="posterModeScrollPane" fitToWidth="true" layoutX="10.0" layoutY="48.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="32.0">
|
||||||
<content>
|
<content>
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
<?import javafx.scene.text.Text?>
|
<?import javafx.scene.text.Text?>
|
||||||
<?import javafx.scene.text.TextFlow?>
|
<?import javafx.scene.text.TextFlow?>
|
||||||
|
|
||||||
<AnchorPane fx:id="seriesDVPane" prefHeight="568.0" prefWidth="1130.0" style="-fx-background-color: #595959;" visible="false" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="kellerkinder.HomeFlix.application.SeriesDetailView">
|
<AnchorPane fx:id="seriesDVPane" prefHeight="568.0" prefWidth="1130.0" style="-fx-background-color: #595959;" visible="false" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="org.mosad.homeflix.application.SeriesDetailView">
|
||||||
<children>
|
<children>
|
||||||
<HBox layoutX="22.0" layoutY="21.0" prefWidth="808.0" spacing="10.0" AnchorPane.leftAnchor="22.0" AnchorPane.rightAnchor="310.0" AnchorPane.topAnchor="22.0">
|
<HBox layoutX="22.0" layoutY="21.0" prefWidth="808.0" spacing="10.0" AnchorPane.leftAnchor="22.0" AnchorPane.rightAnchor="310.0" AnchorPane.topAnchor="22.0">
|
||||||
<children>
|
<children>
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
<?import javafx.scene.layout.VBox?>
|
<?import javafx.scene.layout.VBox?>
|
||||||
<?import javafx.scene.text.Font?>
|
<?import javafx.scene.text.Font?>
|
||||||
|
|
||||||
<ScrollPane fx:id="settingsScrollPane" fitToHeight="true" fitToWidth="true" prefHeight="568.0" prefWidth="980.0" style="-fx-background-color: #ffffff;" visible="false" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="kellerkinder.HomeFlix.application.SettingsView">
|
<ScrollPane fx:id="settingsScrollPane" fitToHeight="true" fitToWidth="true" prefHeight="568.0" prefWidth="980.0" style="-fx-background-color: #ffffff;" visible="false" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="org.mosad.homeflix.application.SettingsView">
|
||||||
<content>
|
<content>
|
||||||
<AnchorPane fx:id="settingsAnchorPane" style="-fx-background-color: #ffffff;">
|
<AnchorPane fx:id="settingsAnchorPane" style="-fx-background-color: #ffffff;">
|
||||||
<children>
|
<children>
|
||||||
|
Loading…
Reference in New Issue
Block a user