2016-12-13 19:28:44 +01:00
/ * *
* DBController for Project HomeFlix
2016-12-18 20:11:50 +01:00
* connection is in manual commit !
2017-01-11 20:24:29 +01:00
* TODO arraylists not string - > streamUIData
2016-12-13 19:28:44 +01:00
* /
2016-08-14 15:17:14 +02:00
package application ;
2017-01-06 00:04:07 +01:00
import java.io.File ;
2017-01-11 20:24:29 +01:00
import java.io.FileNotFoundException ;
2017-01-06 00:04:07 +01:00
import java.io.FileReader ;
import java.io.IOException ;
import java.sql.Connection ;
import java.sql.DriverManager ;
import java.sql.PreparedStatement ;
import java.sql.ResultSet ;
import java.sql.SQLException ;
import java.sql.Statement ;
import java.util.ArrayList ;
import java.util.List ;
2016-08-14 15:17:14 +02:00
2016-12-13 19:28:44 +01:00
import com.eclipsesource.json.Json ;
import com.eclipsesource.json.JsonArray ;
import com.eclipsesource.json.JsonObject ;
import com.eclipsesource.json.JsonValue ;
2017-02-02 20:41:38 +01:00
import javafx.scene.image.Image ;
import javafx.scene.image.ImageView ;
2016-12-18 20:11:50 +01:00
public class DBController {
public DBController ( MainWindowController m ) {
mainWindowController = m ;
2016-12-13 19:28:44 +01:00
}
2016-12-18 20:11:50 +01:00
2016-08-14 15:17:14 +02:00
private MainWindowController mainWindowController ;
2017-02-04 16:15:47 +01:00
private String DB_PATH = System . getProperty ( " user.home " ) + " \\ Documents \\ HomeFlix " + " \\ " + " Homeflix.db " ; //path to database file
private Image favorite_black = new Image ( " recources/icons/ic_favorite_black_18dp_1x.png " ) ;
private Image favorite_border_black = new Image ( " recources/icons/ic_favorite_border_black_18dp_1x.png " ) ;
2017-01-11 20:24:29 +01:00
private List < String > filmsdbAll = new ArrayList < String > ( ) ;
private List < String > filmsdbLocal = new ArrayList < String > ( ) ;
private List < String > filmsdbStream = new ArrayList < String > ( ) ;
private List < String > filmsdbStreamURL = new ArrayList < String > ( ) ;
2017-01-06 00:04:07 +01:00
private List < String > filmsAll = new ArrayList < String > ( ) ;
private List < String > filmsDir = new ArrayList < String > ( ) ;
private List < String > filmsStream = new ArrayList < String > ( ) ;
2017-01-11 20:24:29 +01:00
private List < String > filmsStreamURL = new ArrayList < String > ( ) ;
private List < String > filmsStreamData = new ArrayList < String > ( ) ;
2016-12-18 20:11:50 +01:00
Connection connection = null ;
public void main ( ) {
2017-02-05 17:14:34 +01:00
if ( System . getProperty ( " os.name " ) . equals ( " Linux " ) ) {
DB_PATH = System . getProperty ( " user.home " ) + " /HomeFlix/Homeflix.db " ;
} else {
DB_PATH = System . getProperty ( " user.home " ) + " \\ Documents \\ HomeFlix " + " \\ " + " Homeflix.db " ;
}
2016-12-18 20:11:50 +01:00
try {
// create a database connection
connection = DriverManager . getConnection ( " jdbc:sqlite: " + DB_PATH ) ;
// Statement statement = connection.createStatement();
2017-02-04 16:15:47 +01:00
// statement.setQueryTimeout(30); // set timeout to 30 sec. TODO don't know what to do with this
2016-12-18 20:11:50 +01:00
2017-02-04 16:15:47 +01:00
connection . setAutoCommit ( false ) ; //AutoCommit to false -> manual commit is active
2017-01-06 00:04:07 +01:00
// fuelleDatenbank();
2016-12-18 20:11:50 +01:00
} catch ( SQLException e ) {
// if the error message is "out of memory", it probably means no database file is found
System . err . println ( e . getMessage ( ) ) ;
}
// finally {
// try {
// if (connection != null)
// connection.close();
// } catch (SQLException e) {
// // connection close failed.
// System.err.println(e);
// }
// }
}
2016-12-13 19:28:44 +01:00
2017-01-06 00:04:07 +01:00
void createDatabase ( ) {
2017-02-02 20:41:38 +01:00
System . out . println ( " <==========starting loading sql==========> " ) ;
2017-01-06 00:04:07 +01:00
PreparedStatement ps ;
PreparedStatement psS ;
try {
2016-12-13 19:28:44 +01:00
Statement stmt = connection . createStatement ( ) ;
2017-02-02 20:41:38 +01:00
stmt . executeUpdate ( " create table if not exists film_local (rating, titel, streamUrl, favIcon) " ) ;
stmt . executeUpdate ( " create table if not exists film_streaming (year, season, episode, rating, resolution, titel, streamUrl, favIcon) " ) ;
2017-01-06 00:04:07 +01:00
stmt . close ( ) ;
} catch ( SQLException e1 ) {
e1 . printStackTrace ( ) ;
}
try {
Statement stmt = connection . createStatement ( ) ;
ResultSet rs = stmt . executeQuery ( " SELECT * FROM film_local " ) ;
while ( rs . next ( ) ) {
2017-01-11 20:24:29 +01:00
filmsdbLocal . add ( rs . getString ( 2 ) ) ;
2017-01-06 00:04:07 +01:00
}
stmt . close ( ) ;
rs . close ( ) ;
2016-12-13 19:28:44 +01:00
2017-01-06 00:04:07 +01:00
rs = stmt . executeQuery ( " SELECT * FROM film_streaming; " ) ;
while ( rs . next ( ) ) {
2017-01-11 20:24:29 +01:00
filmsdbStream . add ( rs . getString ( 6 ) ) ;
filmsdbStreamURL . add ( rs . getString ( 7 ) ) ;
2017-01-06 00:04:07 +01:00
}
stmt . close ( ) ;
rs . close ( ) ;
} catch ( SQLException ea ) {
2017-01-11 20:24:29 +01:00
System . err . println ( " Ups! an error occured! " ) ;
ea . printStackTrace ( ) ;
2016-08-14 15:17:14 +02:00
}
2017-01-11 20:24:29 +01:00
String [ ] entries = new File ( mainWindowController . getPath ( ) ) . list ( ) ;
2017-02-09 16:27:52 +01:00
if ( mainWindowController . getPath ( ) . equals ( " " ) | | mainWindowController . getPath ( ) = = null ) {
System . out . println ( " Kein Pfad angegeben " ) ; //if path == null or ""
} else {
System . out . println ( entries . length ) ;
for ( int i = 0 ; i ! = entries . length ; i + + ) {
filmsDir . add ( cutOffEnd ( entries [ i ] ) ) ;
}
2017-01-06 00:04:07 +01:00
}
for ( int v = 0 ; v < mainWindowController . streamingData . size ( ) ; v + + ) {
String fileName = mainWindowController . getStreamingPath ( ) + " / " + mainWindowController . streamingData . get ( v ) . getStreamUrl ( ) ;
2016-12-13 19:28:44 +01:00
try {
JsonObject object = Json . parse ( new FileReader ( fileName ) ) . asObject ( ) ;
JsonArray items = object . get ( " entries " ) . asArray ( ) ;
for ( JsonValue item : items ) {
2017-01-06 00:04:07 +01:00
filmsStream . add ( item . asObject ( ) . getString ( " titel " , " " ) ) ;
2017-01-11 20:24:29 +01:00
filmsStreamURL . add ( item . asObject ( ) . getString ( " streamUrl " , " " ) ) ;
filmsStreamData . add ( fileName ) ;
2016-12-13 19:28:44 +01:00
}
} catch ( IOException e ) {
e . printStackTrace ( ) ;
}
2017-01-06 00:04:07 +01:00
}
filmsAll . addAll ( filmsDir ) ;
filmsAll . addAll ( filmsStream ) ;
2017-01-11 20:24:29 +01:00
filmsdbAll . addAll ( filmsdbLocal ) ;
filmsdbAll . addAll ( filmsdbStream ) ;
2017-01-06 00:04:07 +01:00
System . out . println ( " films in directory: " + filmsAll . size ( ) ) ;
2017-01-11 20:24:29 +01:00
System . out . println ( " filme in db: " + filmsdbAll . size ( ) ) ;
2017-01-06 00:04:07 +01:00
2017-01-11 20:24:29 +01:00
if ( filmsdbAll . size ( ) = = 0 ) {
2017-01-06 00:04:07 +01:00
System . out . println ( " creating entries ... " ) ;
try {
2017-02-02 20:41:38 +01:00
ps = connection . prepareStatement ( " insert into film_local values (?, ?, ?, ?) " ) ;
psS = connection . prepareStatement ( " insert into film_streaming values (?, ?, ?, ?, ?, ?, ?, ?) " ) ;
2017-02-09 16:27:52 +01:00
if ( mainWindowController . getPath ( ) . equals ( " " ) | | mainWindowController . getPath ( ) = = null ) {
System . out . println ( " Kein Pfad angegeben " ) ; //if path == null or ""
} else {
for ( int j = 0 ; j ! = entries . length ; j + + ) //goes through all the files in the directory
{
ps . setInt ( 1 , 0 ) ; //rating as integer 1. column
ps . setString ( 2 , cutOffEnd ( entries [ j ] ) ) ; //name as String without ending 2. column
ps . setString ( 3 , entries [ j ] ) ; //path as String 3. column
ps . setString ( 4 , " favorite_border_black " ) ;
ps . addBatch ( ) ; // add command to prepared statement
}
2017-01-06 00:04:07 +01:00
}
if ( mainWindowController . getStreamingPath ( ) . equals ( " " ) | | mainWindowController . getStreamingPath ( ) . equals ( null ) ) {
2017-02-04 16:15:47 +01:00
System . out . println ( " Kein Pfad angegeben " ) ; //if path == null or ""
2017-02-09 16:27:52 +01:00
} else {
2017-01-06 00:04:07 +01:00
for ( int i = 0 ; i < mainWindowController . streamingData . size ( ) ; i + + ) {
String fileNamea = mainWindowController . getStreamingPath ( ) + " / " + mainWindowController . streamingData . get ( i ) . getStreamUrl ( ) ;
try {
JsonObject object = Json . parse ( new FileReader ( fileNamea ) ) . asObject ( ) ;
JsonArray items = object . get ( " entries " ) . asArray ( ) ;
for ( JsonValue item : items ) {
psS . setInt ( 1 , item . asObject ( ) . getInt ( " year " , 0 ) ) ;
psS . setInt ( 2 , item . asObject ( ) . getInt ( " season " , 0 ) ) ;
psS . setInt ( 3 , item . asObject ( ) . getInt ( " episode " , 0 ) ) ;
psS . setInt ( 4 , 0 ) ;
psS . setString ( 5 , item . asObject ( ) . getString ( " resolution " , " " ) ) ;
psS . setString ( 6 , item . asObject ( ) . getString ( " titel " , " " ) ) ;
psS . setString ( 7 , item . asObject ( ) . getString ( " streamUrl " , " " ) ) ;
2017-02-02 20:41:38 +01:00
psS . setString ( 8 , " favorite_border_black " ) ;
2017-02-04 16:15:47 +01:00
psS . addBatch ( ) ; // add command to prepared statement
2017-01-06 00:04:07 +01:00
}
} catch ( IOException e ) {
e . printStackTrace ( ) ;
}
}
}
2017-02-04 16:15:47 +01:00
ps . executeBatch ( ) ; //execute statement to write entries into table
2017-01-06 00:04:07 +01:00
psS . executeBatch ( ) ;
connection . commit ( ) ;
ps . close ( ) ;
psS . close ( ) ;
} catch ( SQLException ea ) {
2017-03-05 18:29:24 +01:00
System . err . println ( " Konnte nicht ausgef<65> hrt werden " ) ;
2017-01-06 00:04:07 +01:00
ea . printStackTrace ( ) ;
}
2017-01-11 20:24:29 +01:00
} else {
try {
try {
checkAddEntry ( ) ;
} catch ( IOException e ) {
e . printStackTrace ( ) ;
} //check if added a new file
checkRemoveEntry ( ) ; //check if removed a file
} catch ( SQLException e ) {
e . printStackTrace ( ) ;
2017-01-06 00:04:07 +01:00
}
}
}
//loading data from database to mainWindowController
void loadData ( ) {
System . out . println ( " loading data to mwc ... " ) ;
try {
//load local Data
Statement stmt = connection . createStatement ( ) ;
ResultSet rs = stmt . executeQuery ( " SELECT * FROM film_local " ) ;
while ( rs . next ( ) ) {
2017-02-04 16:15:47 +01:00
if ( rs . getString ( 4 ) . equals ( " favorite_black " ) ) {
2017-02-09 20:39:43 +01:00
mainWindowController . newData . add ( new streamUiData ( 1 , 1 , 1 , rs . getDouble ( 1 ) , " 1 " , rs . getString ( 2 ) , rs . getString ( 3 ) , new ImageView ( favorite_black ) ) ) ;
2017-02-04 16:15:47 +01:00
} else {
2017-02-09 20:39:43 +01:00
mainWindowController . newData . add ( new streamUiData ( 1 , 1 , 1 , rs . getDouble ( 1 ) , " 1 " , rs . getString ( 2 ) , rs . getString ( 3 ) , new ImageView ( favorite_border_black ) ) ) ;
2017-02-04 16:15:47 +01:00
}
2016-12-13 19:28:44 +01:00
}
2017-01-06 00:04:07 +01:00
stmt . close ( ) ;
rs . close ( ) ;
//load streaming Data TODO check if there are streaming data before loading -> maybe there is an issue now
rs = stmt . executeQuery ( " SELECT * FROM film_streaming; " ) ;
while ( rs . next ( ) ) {
2017-02-04 16:15:47 +01:00
if ( rs . getString ( 8 ) . equals ( " favorite_black " ) ) {
mainWindowController . streamData . add ( new streamUiData ( rs . getInt ( 1 ) , rs . getInt ( 2 ) , rs . getInt ( 3 ) , rs . getDouble ( 4 ) , rs . getString ( 5 ) , rs . getString ( 6 ) , rs . getString ( 7 ) , new ImageView ( favorite_black ) ) ) ;
} else {
mainWindowController . streamData . add ( new streamUiData ( rs . getInt ( 1 ) , rs . getInt ( 2 ) , rs . getInt ( 3 ) , rs . getDouble ( 4 ) , rs . getString ( 5 ) , rs . getString ( 6 ) , rs . getString ( 7 ) , new ImageView ( favorite_border_black ) ) ) ;
}
2016-12-13 19:28:44 +01:00
}
2017-01-06 00:04:07 +01:00
stmt . close ( ) ;
rs . close ( ) ;
} catch ( SQLException e ) {
System . err . println ( " Ups! an error occured! " ) ;
e . printStackTrace ( ) ;
}
2017-02-02 20:41:38 +01:00
System . out . println ( " <==========finished loading sql==========> " ) ;
2017-01-06 00:04:07 +01:00
}
2017-02-04 16:15:47 +01:00
//Refreshes the data in mainWindowController.newDaten and mainWindowController.streamData
2017-01-11 20:24:29 +01:00
//TODO it seems that there is an issue at the moment with streaming refreshing wrong entry if there is more than one with the same name
2017-01-06 00:04:07 +01:00
void refresh ( String name , int i ) throws SQLException {
System . out . println ( " refresh ... " ) ;
2017-01-11 20:24:29 +01:00
Statement stmt ;
2017-01-06 00:04:07 +01:00
try {
stmt = connection . createStatement ( ) ;
ResultSet rs = stmt . executeQuery ( " SELECT * FROM film_local WHERE titel = ' " + name + " '; " ) ;
2017-02-02 20:41:38 +01:00
if ( rs . getString ( 4 ) . equals ( " favorite_black " ) ) {
2017-02-09 20:39:43 +01:00
mainWindowController . newData . set ( i , new streamUiData ( 1 , 1 , 1 , rs . getDouble ( 1 ) , " 1 " , rs . getString ( 2 ) , rs . getString ( 3 ) , new ImageView ( favorite_black ) ) ) ;
2017-02-02 20:41:38 +01:00
} else {
2017-02-09 20:39:43 +01:00
mainWindowController . newData . set ( i , new streamUiData ( 1 , 1 , 1 , rs . getDouble ( 1 ) , " 1 " , rs . getString ( 2 ) , rs . getString ( 3 ) , new ImageView ( favorite_border_black ) ) ) ;
2017-02-02 20:41:38 +01:00
}
2017-01-06 00:04:07 +01:00
stmt . close ( ) ;
rs . close ( ) ;
} catch ( SQLException e ) {
try {
stmt = connection . createStatement ( ) ;
ResultSet rs = stmt . executeQuery ( " SELECT * FROM film_streaming WHERE titel = ' " + name + " '; " ) ;
2017-02-02 20:41:38 +01:00
if ( rs . getString ( 8 ) . equals ( " favorite_black " ) ) {
2017-02-04 16:15:47 +01:00
mainWindowController . streamData . set ( i , new streamUiData ( rs . getInt ( 1 ) , rs . getInt ( 2 ) , rs . getInt ( 3 ) , rs . getDouble ( 4 ) , rs . getString ( 5 ) , rs . getString ( 6 ) , rs . getString ( 7 ) , new ImageView ( favorite_black ) ) ) ;
2017-02-02 20:41:38 +01:00
} else {
2017-02-04 16:15:47 +01:00
mainWindowController . streamData . set ( i , new streamUiData ( rs . getInt ( 1 ) , rs . getInt ( 2 ) , rs . getInt ( 3 ) , rs . getDouble ( 4 ) , rs . getString ( 5 ) , rs . getString ( 6 ) , rs . getString ( 7 ) , new ImageView ( favorite_border_black ) ) ) ;
2017-02-02 20:41:38 +01:00
}
2017-01-06 00:04:07 +01:00
stmt . close ( ) ;
rs . close ( ) ;
} catch ( SQLException e1 ) {
System . err . println ( " Ups! an error occured! " ) ;
e1 . printStackTrace ( ) ;
}
2016-08-14 15:17:14 +02:00
}
2016-12-13 19:28:44 +01:00
}
2016-08-14 15:17:14 +02:00
2017-01-11 20:24:29 +01:00
private void checkRemoveEntry ( ) throws SQLException {
System . out . println ( " checking for entrys to remove to DB ... " ) ;
Statement stmt = connection . createStatement ( ) ;
for ( int a = 0 ; a < filmsdbLocal . size ( ) ; a + + ) {
if ( filmsDir . contains ( filmsdbLocal . get ( a ) ) ) {
} else {
stmt . executeUpdate ( " delete from film_local where titel = ' " + filmsdbLocal . get ( a ) + " ' " ) ;
2017-01-06 00:04:07 +01:00
connection . commit ( ) ;
stmt . close ( ) ;
2017-01-11 20:24:29 +01:00
System . out . println ( " removed \" " + filmsdbLocal . get ( a ) + " \" from databsae " ) ;
2017-01-06 00:04:07 +01:00
}
}
2017-01-11 20:24:29 +01:00
for ( int b = 0 ; b < filmsdbStreamURL . size ( ) ; b + + ) {
if ( filmsStreamURL . contains ( filmsdbStreamURL . get ( b ) ) ) {
} else {
stmt . executeUpdate ( " delete from film_streaming where titel = ' " + filmsdbStream . get ( b ) + " ' " ) ;
connection . commit ( ) ;
stmt . close ( ) ;
System . out . println ( " removed \" " + filmsdbStream . get ( b ) + " \" from databsae " ) ;
}
}
2017-01-06 00:04:07 +01:00
}
2017-02-04 16:15:47 +01:00
private void checkAddEntry ( ) throws SQLException , FileNotFoundException , IOException { //TODO sort alphabetical
2017-01-11 20:24:29 +01:00
System . out . println ( " checking for entrys to add to DB ... " ) ;
String [ ] entries = new File ( mainWindowController . getPath ( ) ) . list ( ) ;
Statement stmt = connection . createStatement ( ) ;
2017-02-02 20:41:38 +01:00
PreparedStatement ps = connection . prepareStatement ( " insert into film_streaming values (?, ?, ?, ?, ?, ?, ?, ?) " ) ; ;
2017-01-11 20:24:29 +01:00
int i = 0 ;
for ( int a = 0 ; a < filmsDir . size ( ) ; a + + ) {
if ( filmsdbLocal . contains ( filmsDir . get ( a ) ) ) {
} else {
2017-02-02 20:41:38 +01:00
stmt . executeUpdate ( " insert into film_local values (0, ' " + cutOffEnd ( entries [ a ] ) + " ', ' " + entries [ a ] + " ','favorite_border_black') " ) ;
2017-01-11 20:24:29 +01:00
connection . commit ( ) ;
stmt . close ( ) ;
System . out . println ( " added \" " + filmsDir . get ( a ) + " \" to databsae " ) ;
}
}
for ( int b = 0 ; b < filmsStreamURL . size ( ) ; b + + ) {
if ( filmsdbStreamURL . contains ( filmsStreamURL . get ( b ) ) ) {
} else {
JsonObject object = Json . parse ( new FileReader ( filmsStreamData . get ( b ) ) ) . asObject ( ) ;
JsonArray items = object . get ( " entries " ) . asArray ( ) ;
System . out . println ( items . size ( ) + " , " + i ) ;
String streamURL = items . get ( i ) . asObject ( ) . getString ( " streamUrl " , " " ) ;
String titel = items . get ( i ) . asObject ( ) . getString ( " titel " , " " ) ;
if ( streamURL . equals ( filmsStreamURL . get ( b ) ) ) {
2017-02-05 17:14:34 +01:00
System . out . println ( " hinzuf<EFBFBD> gen \" " + titel + " \" " ) ;
2017-01-11 20:24:29 +01:00
ps . setInt ( 1 , items . get ( i ) . asObject ( ) . getInt ( " year " , 0 ) ) ;
ps . setInt ( 2 , items . get ( i ) . asObject ( ) . getInt ( " season " , 0 ) ) ;
ps . setInt ( 3 , items . get ( i ) . asObject ( ) . getInt ( " episode " , 0 ) ) ;
ps . setInt ( 4 , 0 ) ;
ps . setString ( 5 , items . get ( i ) . asObject ( ) . getString ( " resolution " , " " ) ) ;
ps . setString ( 6 , items . get ( i ) . asObject ( ) . getString ( " titel " , " " ) ) ;
ps . setString ( 7 , items . get ( i ) . asObject ( ) . getString ( " streamUrl " , " " ) ) ;
2017-02-02 20:41:38 +01:00
ps . setString ( 8 , " favorite_border_black " ) ;
2017-01-11 20:24:29 +01:00
ps . addBatch ( ) ; // adds the entry
// stmt.executeUpdate("insert into film_streaming values ("+items.get(i).asObject().getInt("year", 0)+", "+items.get(i).asObject().getInt("season", 0)+", "+items.get(i).asObject().getInt("episode", 0)+", 0, '"+items.get(i).asObject().getString("resolution", ""+"', '"+items.get(i).asObject().getString("titel","")+"', '"+items.get(i).asObject().getString("streamUrl", "")+"')"));
}
i + + ;
}
}
ps . executeBatch ( ) ;
connection . commit ( ) ;
ps . close ( ) ;
2017-01-06 00:04:07 +01:00
}
void ausgeben ( ) {
2017-02-09 20:39:43 +01:00
System . out . println ( " Eintraege ausgeben ... \ n " ) ;
2016-12-13 19:28:44 +01:00
try {
Statement stmt = connection . createStatement ( ) ;
ResultSet rs = stmt . executeQuery ( " SELECT * FROM film_local " ) ;
while ( rs . next ( ) ) {
System . out . println ( rs . getString ( 1 ) ) ;
System . out . println ( rs . getString ( 2 ) ) ;
2017-02-02 20:41:38 +01:00
System . out . println ( rs . getString ( 3 ) ) ;
System . out . println ( rs . getString ( 4 ) + " \ n " ) ;
2017-01-03 23:29:45 +01:00
}
stmt . close ( ) ;
2016-12-13 19:28:44 +01:00
rs . close ( ) ;
System . out . println ( " Streaming Entries: \ n " ) ;
2017-01-06 00:04:07 +01:00
rs = stmt . executeQuery ( " SELECT * FROM film_streaming; " ) ;
while ( rs . next ( ) ) {
System . out . println ( rs . getString ( 1 ) ) ;
System . out . println ( rs . getString ( 2 ) ) ;
System . out . println ( rs . getString ( 3 ) ) ;
System . out . println ( rs . getString ( 4 ) ) ;
System . out . println ( rs . getString ( 5 ) ) ;
System . out . println ( rs . getString ( 6 ) ) ;
2017-02-02 20:41:38 +01:00
System . out . println ( rs . getString ( 7 ) ) ;
System . out . println ( rs . getString ( 8 ) + " \ n " ) ;
2017-01-03 23:29:45 +01:00
}
stmt . close ( ) ;
2017-01-06 00:04:07 +01:00
rs . close ( ) ;
2016-12-13 19:28:44 +01:00
} catch ( SQLException e ) {
2017-01-11 20:24:29 +01:00
System . err . println ( " Ups! an error occured! " ) ;
2016-12-13 19:28:44 +01:00
e . printStackTrace ( ) ;
2016-08-14 15:17:14 +02:00
}
2016-12-13 19:28:44 +01:00
}
2017-01-06 00:04:07 +01:00
//gibt die Favorisierung eines bestimmten Films
void getFavStatus ( String name ) {
2016-12-13 19:28:44 +01:00
try {
2017-01-06 00:04:07 +01:00
Statement stmt = connection . createStatement ( ) ;
2017-02-02 20:41:38 +01:00
ResultSet rs = stmt . executeQuery ( " SELECT titel, rating, favIcon FROM film_local WHERE titel = ' " + name + " '; " ) ; //SQL Befehl
System . out . println ( " local: " + rs . getString ( " rating " ) + " , " + rs . getString ( " titel " ) + " , " + rs . getString ( " favIcon " ) ) ;
2017-01-06 00:04:07 +01:00
stmt . close ( ) ;
2017-01-03 23:29:45 +01:00
rs . close ( ) ;
2016-12-13 19:28:44 +01:00
} catch ( SQLException e ) {
try {
2017-01-06 00:04:07 +01:00
Statement stmtS = connection . createStatement ( ) ;
2017-02-02 20:41:38 +01:00
ResultSet rsS = stmtS . executeQuery ( " SELECT titel, rating, favIcon FROM film_streaming WHERE titel = ' " + name + " '; " ) ;
System . out . println ( " streaming: " + rsS . getString ( " rating " ) + " , " + rsS . getString ( " titel " ) + " , " + rsS . getString ( " favIcon " ) ) ;
2017-01-06 00:04:07 +01:00
stmtS . close ( ) ;
2017-01-03 23:29:45 +01:00
rsS . close ( ) ;
2016-12-13 19:28:44 +01:00
} catch ( SQLException e1 ) {
2017-01-06 00:04:07 +01:00
System . out . println ( " Ups! an error occured! " ) ;
2016-12-13 19:28:44 +01:00
e1 . printStackTrace ( ) ;
2016-08-14 15:17:14 +02:00
}
2016-12-13 19:28:44 +01:00
}
2017-01-03 23:29:45 +01:00
2016-08-14 15:17:14 +02:00
}
2017-01-06 00:04:07 +01:00
//setzt die Defavorisierung eines bestimmten Films
2017-01-11 20:24:29 +01:00
void dislike ( String name , String streamUrl ) {
2016-12-13 19:28:44 +01:00
System . out . println ( " defavorisieren ... " ) ;
try {
2016-08-14 15:17:14 +02:00
Statement stmt = connection . createStatement ( ) ;
2017-02-02 20:41:38 +01:00
stmt . executeUpdate ( " UPDATE film_local SET rating=0,favIcon='favorite_border_black' WHERE titel=' " + name + " '; " ) ;
2016-12-18 20:11:50 +01:00
connection . commit ( ) ;
2017-01-06 00:04:07 +01:00
stmt . close ( ) ;
2016-12-18 20:11:50 +01:00
} catch ( SQLException e ) {
System . out . println ( " Ups! an error occured! " ) ;
e . printStackTrace ( ) ;
}
try {
2017-01-06 00:04:07 +01:00
Statement stmt = connection . createStatement ( ) ;
2017-02-02 20:41:38 +01:00
stmt . executeUpdate ( " UPDATE film_streaming SET rating=0,favIcon='favorite_border_black' WHERE streamUrl=' " + streamUrl + " '; " ) ;
2016-12-18 20:11:50 +01:00
connection . commit ( ) ;
2017-01-06 00:04:07 +01:00
stmt . close ( ) ;
2016-12-18 20:11:50 +01:00
} catch ( SQLException e1 ) {
System . out . println ( " Ups! an error occured! " ) ;
e1 . printStackTrace ( ) ;
2016-12-13 19:28:44 +01:00
}
2016-08-14 15:17:14 +02:00
}
2017-01-06 00:04:07 +01:00
//setzt die Favorisierung eines bestimmten Films
2017-01-11 20:24:29 +01:00
void like ( String name , String streamUrl ) {
2016-12-13 19:28:44 +01:00
System . out . println ( " favorisieren ... " ) ;
try {
2016-08-14 15:17:14 +02:00
Statement stmt = connection . createStatement ( ) ;
2017-02-02 20:41:38 +01:00
stmt . executeUpdate ( " UPDATE film_local SET rating=1,favIcon='favorite_black' WHERE titel=' " + name + " '; " ) ;
2016-12-18 20:11:50 +01:00
connection . commit ( ) ;
2017-01-06 00:04:07 +01:00
stmt . close ( ) ;
2016-12-18 20:11:50 +01:00
} catch ( SQLException e ) {
System . out . println ( " Ups! an error occured! " ) ;
e . printStackTrace ( ) ;
}
try {
2017-01-06 00:04:07 +01:00
Statement stmt = connection . createStatement ( ) ;
2017-02-02 20:41:38 +01:00
stmt . executeUpdate ( " UPDATE film_streaming SET rating=1,favIcon='favorite_black' WHERE streamUrl=' " + streamUrl + " '; " ) ;
2016-12-18 20:11:50 +01:00
connection . commit ( ) ;
2017-01-06 00:04:07 +01:00
stmt . close ( ) ;
2016-12-18 20:11:50 +01:00
} catch ( SQLException e1 ) {
System . out . println ( " Ups! an error occured! " ) ;
e1 . printStackTrace ( ) ;
2016-08-14 15:17:14 +02:00
}
}
2016-12-13 19:28:44 +01:00
2017-02-09 20:39:43 +01:00
//removes the ending
2017-01-06 00:04:07 +01:00
private String cutOffEnd ( String str ) {
2016-08-14 15:17:14 +02:00
if ( str = = null ) return null ;
int pos = str . lastIndexOf ( " . " ) ;
if ( pos = = - 1 ) return str ;
return str . substring ( 0 , pos ) ;
}
2016-12-13 19:28:44 +01:00
2016-08-14 15:17:14 +02:00
}
2016-12-13 19:28:44 +01:00