fixed issue #6

This commit is contained in:
Jannik 2018-11-19 22:49:09 +01:00
parent 079f15cd59
commit 9f8c19ab8e
1 changed files with 31 additions and 2 deletions

View File

@ -161,6 +161,7 @@ public class DBController {
String path = source.asObject().getString("path", "");
String mode = source.asObject().getString("mode", "");
mainWindowController.addSourceToTable(path, mode); // add source to source-table
if (mode.equals("local")) {
for (File file : new File(path).listFiles()) {
if (file.isFile() && isVideoFile(file.getPath())) {
@ -350,11 +351,11 @@ public class DBController {
int sn = 1;
for (File season : file.listFiles()) {
if (season.isDirectory()) {
int ep = 1;
int ep = getLastEpisode(cutOffEnd(file.getName()), Integer.toString(sn)) + 1;
for (File episode : season.listFiles()) {
if (!filmsdbStreamURL.contains(episode.getPath())) {
ps.setString(1, episode.getPath().replace("'", "''"));
ps.setString(2, cutOffEnd(file.getName()));
ps.setString(2, cutOffEnd(file.getName())); // the title is the series root folder's name
ps.setString(3, Integer.toString(sn));
ps.setString(4, Integer.toString(ep));
ps.setInt(5, 0);
@ -406,6 +407,34 @@ public class DBController {
}
}
/**
* gets the last episode of a season of a given series
* @param seriesTitle the actual series
* @param season the actual season
* @return the last episode number
*/
private int getLastEpisode(String seriesTitle, String season) {
int lastEpisode = 0;
try {
Statement stmt = connection.createStatement();
PreparedStatement ps = connection.prepareStatement("SELECT * FROM films WHERE title = ? AND season = ?");
ps.setString(1, seriesTitle);
ps.setString(2, season);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
if (Integer.parseInt(rs.getString("episode")) > lastEpisode)
lastEpisode = Integer.parseInt(rs.getString("episode"));
}
stmt.close();
rs.close();
} catch (SQLException e) {
LOGGER.error("An error occured, while printing all entries", e);
}
return lastEpisode;
}
/**
* DEBUG
* prints all entries from the database to the console