From df9675eb1ebb95a07a3a81f07c089ca111130ade Mon Sep 17 00:00:00 2001
From: Robert Goldmann <deadlocker@gmx.de>
Date: Thu, 17 Oct 2019 12:52:23 +0200
Subject: [PATCH] removed old files

---
 .classpath                             |   9 -
 .project                               |  23 --
 .settings/org.eclipse.jdt.core.prefs   |  11 -
 CHANGELOG.txt                          |  27 --
 build.fxbuild                          |   8 -
 src/application/Channel.java           |  41 ---
 src/application/Controller.java        | 140 ---------
 src/application/Main.java              |  55 ----
 src/application/Playlist.java          | 382 -------------------------
 src/application/PlaylistHandler.java   | 103 -------
 src/application/PlaylistItem.java      |  29 --
 src/application/SaveMyPlayListGUI.fxml |  38 ---
 src/application/application.css        |   1 -
 src/application/list.png               | Bin 3771 -> 0 bytes
 14 files changed, 867 deletions(-)
 delete mode 100644 .classpath
 delete mode 100644 .project
 delete mode 100644 .settings/org.eclipse.jdt.core.prefs
 delete mode 100644 CHANGELOG.txt
 delete mode 100644 build.fxbuild
 delete mode 100644 src/application/Channel.java
 delete mode 100644 src/application/Controller.java
 delete mode 100644 src/application/Main.java
 delete mode 100644 src/application/Playlist.java
 delete mode 100644 src/application/PlaylistHandler.java
 delete mode 100644 src/application/PlaylistItem.java
 delete mode 100644 src/application/SaveMyPlayListGUI.fxml
 delete mode 100644 src/application/application.css
 delete mode 100644 src/application/list.png

diff --git a/.classpath b/.classpath
deleted file mode 100644
index 93567b7..0000000
--- a/.classpath
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/controlsfx"/>
-	<classpathentry combineaccessrules="false" kind="src" path="/_Tools"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/GSON"/>
-	<classpathentry kind="output" path="class"/>
-</classpath>
diff --git a/.project b/.project
deleted file mode 100644
index 0f44efa..0000000
--- a/.project
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>SaveMyPlaylist</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 3a21537..0000000
--- a/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,11 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.8
diff --git a/CHANGELOG.txt b/CHANGELOG.txt
deleted file mode 100644
index efb2a3b..0000000
--- a/CHANGELOG.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-[CHANGELOG]
-===========
-
-SaveMyPlaylist
-==============
-
->>> start-date: 2015
->>> status-date: 05.03.17
-____________________________________________________
-
-v.1.1.0 - (2)
-===============
-
--used GSON for JSOn parsing
-
->>> end-work: 05.03.17
-
-v.1.0.0 - (1)
-===============
-
--basic implementation
-
->>> end-work: 2015
-
-____________________________________________________
-
-[/CHANGELOG]
\ No newline at end of file
diff --git a/build.fxbuild b/build.fxbuild
deleted file mode 100644
index c1106de..0000000
--- a/build.fxbuild
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="ASCII"?>
-<anttasks:AntTask xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:anttasks="http://org.eclipse.fx.ide.jdt/1.0" buildDirectory="${project}/build">
-  <deploy>
-    <application name="SaveMyPlaylist"/>
-    <info/>
-  </deploy>
-  <signjar/>
-</anttasks:AntTask>
diff --git a/src/application/Channel.java b/src/application/Channel.java
deleted file mode 100644
index 801f4e0..0000000
--- a/src/application/Channel.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package application;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.net.URL;
-
-import com.google.gson.JsonElement;
-import com.google.gson.JsonObject;
-import com.google.gson.JsonParser;
-
-public class Channel
-{
-	public static String getChannelNameForID(String ID)
-	{
-		String infos = "";
-		try
-		{	
-			URL	url = new URL("http://www.youtube.com/oembed?url=http://www.youtube.com/watch?v="+ ID + "&format=json");					
-			BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
-	        
-	        String inputLine;        
-	        while ((inputLine = in.readLine()) != null)
-	        {
-	        	infos = infos + inputLine;
-	        }
-	        in.close();		        
-
-			JsonElement jsonElement = new JsonParser().parse(infos);
-		    JsonObject jsonObject = jsonElement.getAsJsonObject();
-		    String author = jsonObject.get("author_name").getAsString();  
-		    
-		    return author;
-		}
-		catch(IOException e)
-		{					
-			//video is not available	
-			return "";
-		}
-	}
-}
\ No newline at end of file
diff --git a/src/application/Controller.java b/src/application/Controller.java
deleted file mode 100644
index ad920ac..0000000
--- a/src/application/Controller.java
+++ /dev/null
@@ -1,140 +0,0 @@
-package application;
-
-import java.io.File;
-import java.io.UnsupportedEncodingException;
-import java.net.URL;
-import java.net.URLDecoder;
-import java.util.ResourceBundle;
-
-import javafx.event.ActionEvent;
-import javafx.fxml.FXML;
-import javafx.fxml.Initializable;
-import javafx.scene.control.Alert;
-import javafx.scene.control.Alert.AlertType;
-import javafx.scene.control.Button;
-import javafx.scene.control.ProgressIndicator;
-import javafx.scene.control.TextField;
-import javafx.scene.image.Image;
-import javafx.scene.image.ImageView;
-import javafx.stage.DirectoryChooser;
-import javafx.stage.Stage;
-import tools.Worker;
-
-public class Controller implements Initializable
-{
-	@FXML private TextField textFieldPath;
-	@FXML private TextField textFieldID;
-	@FXML public Button buttonPath;
-	@FXML public Button buttonSave;
-	@FXML private ImageView imageView;
-	@FXML public ProgressIndicator progressIndicator;
-
-	public Stage stage;
-	private boolean pathSelected;
-	private String path;
-	public boolean running;
-	public static File[] files;
-
-	public void setStage(Stage s)
-	{
-		stage = s;
-	}
-
-	@FXML
-	public void buttonPath(ActionEvent e)
-	{
-		DirectoryChooser chooser = new DirectoryChooser();
-		chooser.setTitle("Speicherort ausw�hlen");
-		File file = chooser.showDialog(stage);
-		if(file != null)
-		{
-			path = file.getPath() + "\\";
-			textFieldPath.setText(path);
-			pathSelected = true;
-
-			files = file.listFiles();
-		}
-	}
-
-	@FXML
-	public void buttonSave(ActionEvent e)
-	{
-		if(pathSelected)
-		{
-			String ID = textFieldID.getText();
-			if(ID.equals(""))
-			{
-				Alert alert = new Alert(AlertType.WARNING);
-				alert.setTitle("Achtung");
-				alert.setHeaderText("");
-				alert.getDialogPane().setPrefSize(350, 120);
-				alert.setContentText("Bitte eine Playlist-ID eingeben!");
-				alert.initOwner(stage);
-				alert.showAndWait();
-			}
-			else
-			{
-				progressIndicator.setVisible(true);
-				buttonPath.setDisable(true);
-				buttonSave.setDisable(true);
-				imageView.requestFocus();
-				running = true;
-
-				Playlist playlist = new Playlist(ID);
-				PlaylistHandler handler = new PlaylistHandler(path, playlist, this);
-				Worker.runLater(()->{
-					handler.run();
-				});				
-			}
-		}
-		else
-		{
-			Alert alert = new Alert(AlertType.WARNING);
-			alert.setTitle("Achtung");
-			alert.setHeaderText("");
-			alert.getDialogPane().setPrefSize(350, 120);
-			alert.setContentText("Bitte einen Speicherort ausw�hlen!");
-			alert.initOwner(stage);
-			alert.showAndWait();
-		}
-	}
-
-	@Override
-	public void initialize(URL arg0, ResourceBundle arg1)
-	{
-		pathSelected = false;
-
-		Image icon = new Image("/application/list.png");
-		imageView.setImage(icon);
-		progressIndicator.setVisible(false);
-		running = false;
-
-		try
-		{
-			String jarPath = Controller.class.getProtectionDomain().getCodeSource().getLocation().getPath();
-			String decodedPath = URLDecoder.decode(jarPath, "UTF-8");
-			decodedPath = decodedPath.substring(1, decodedPath.length());
-			int start = decodedPath.lastIndexOf("/");
-			decodedPath = decodedPath.substring(0, start + 1);
-			textFieldPath.setText(decodedPath);
-			path = decodedPath;
-			pathSelected = true;
-			refreshFiles();
-		}
-		catch(UnsupportedEncodingException e)
-		{
-			e.printStackTrace();
-		}
-	}
-
-	public void refreshFiles()
-	{
-		File newFile = new File(path);
-		files = newFile.listFiles();
-	}
-	
-	public Stage getStage()
-	{
-		return stage;
-	}
-}
\ No newline at end of file
diff --git a/src/application/Main.java b/src/application/Main.java
deleted file mode 100644
index fefe20f..0000000
--- a/src/application/Main.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package application;
-
-import javafx.application.Application;
-import javafx.application.Platform;
-import javafx.event.EventHandler;
-import javafx.fxml.FXMLLoader;
-import javafx.scene.Parent;
-import javafx.scene.Scene;
-import javafx.scene.image.Image;
-import javafx.stage.Stage;
-import javafx.stage.WindowEvent;
-import tools.Worker;
-
-public class Main extends Application
-{
-	@Override
-	public void start(Stage stage)
-	{
-		try
-		{
-			FXMLLoader loader = new FXMLLoader(getClass().getClassLoader().getResource("application/SaveMyPlayListGUI.fxml"));
-			Parent root = (Parent)loader.load();
-
-			Scene scene = new Scene(root, 600, 290);
-			stage.setResizable(false);			
-			stage.getIcons().add(new Image("/application/list.png"));
-			Controller controller = ((Controller)loader.getController());
-			controller.setStage(stage);
-
-			Platform.runLater(() -> {
-
-				stage.setOnCloseRequest(new EventHandler<WindowEvent>()
-				{
-					public void handle(WindowEvent we)
-					{
-						Worker.shutdown();
-					}
-				});
-			});
-
-			stage.setTitle("SaveMyPlaylist - v1.1.0 (2)");
-			stage.setScene(scene);
-			stage.show();
-		}
-		catch(Exception e)
-		{
-			e.printStackTrace();
-		}
-	}
-
-	public static void main(String[] args)
-	{
-		launch(args);
-	}
-}
\ No newline at end of file
diff --git a/src/application/Playlist.java b/src/application/Playlist.java
deleted file mode 100644
index a535d18..0000000
--- a/src/application/Playlist.java
+++ /dev/null
@@ -1,382 +0,0 @@
-package application;
-
-import java.io.BufferedReader;
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.net.URL;
-import java.text.DateFormat;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Date;
-
-import com.google.gson.JsonArray;
-import com.google.gson.JsonElement;
-import com.google.gson.JsonObject;
-import com.google.gson.JsonParser;
-
-public class Playlist
-{
-	private String playlistID;
-	private final String API_KEY = "AIzaSyBomwTB7zr2Kn6FhSE05U0opKJX4YJBLas";
-	private boolean compared;
-	private int missing;
-	private final String PLAYLIST_ITEM_IDENTIFIER = "youtube#playlistItem";	
-	
-	public Playlist(String playlistID)
-	{		
-		this.playlistID = playlistID;
-	}
-
-	private String getJSON(String pageToken, String playlistID) throws IOException
-	{			
-		URL url;
-		if(!pageToken.equals(""))
-		{
-			url = new URL("https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=50&playlistId=" + playlistID + "&pageToken=" + pageToken + "&key=" + API_KEY);	
-		}
-		else
-		{
-			url = new URL("https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=50&playlistId=" + playlistID + "&key=" + API_KEY);	
-		}					
-
-		BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
-
-       	String infos = "";
-        
-        String inputLine;        
-        while ((inputLine = in.readLine()) != null)
-        {
-        	infos = infos + inputLine;
-        }
-        in.close();
-       
-        return infos;			
-	}
-	
-	private JsonObject getCompleteJSON(String playlistID) throws IOException
-	{
-		ArrayList<String> allJSON = new ArrayList<String>();
-		
-		String json = getJSON("",playlistID);			
-		allJSON.add(json);
-		int lastIndex = 0;
-		
-		while(allJSON.get(lastIndex).contains("nextPageToken"))
-		{
-			JsonElement jsonElement = new JsonParser().parse(allJSON.get(lastIndex));
-		    JsonObject jsonObject = jsonElement.getAsJsonObject();
-		    String nextPageToken = jsonObject.get("nextPageToken").getAsString();
-			
-			allJSON.add(getJSON(nextPageToken, playlistID));			
-			lastIndex++;			
-		}
-		
-		JsonArray resultArray = new JsonArray();	
-		
-		for(String currentString : allJSON)
-		{
-			JsonElement currentElement = new  JsonParser().parse(currentString);			
-			resultArray.add(currentElement);		
-		}
-		
-		JsonObject resultObject = new JsonObject();
-		resultObject.add("pages", resultArray);
-		
-		return resultObject;		
-	}
-	
-	private ArrayList<PlaylistItem> getPlaylistItems(JsonObject json)
-	{
-		ArrayList<PlaylistItem> playlistItems = new ArrayList<>();		
-	
-	    JsonArray jsonArray = json.getAsJsonArray("pages");	
-	    
-	    for(int i = 0; i < jsonArray.size(); i++)
-	    {
-	    	JsonObject currentPage = jsonArray.get(i).getAsJsonObject();    	
-	    	JsonArray itemsArray = currentPage.getAsJsonArray("items");		    
-
-	    	for(int k = 0; k < itemsArray.size(); k++)
-		    {
-		    	JsonObject currentItem = itemsArray.get(k).getAsJsonObject();    
-		    	
-		    	if(currentItem.get("kind").getAsString().equalsIgnoreCase(PLAYLIST_ITEM_IDENTIFIER))
-		    	{		    		
-		    		String channelName = Channel.getChannelNameForID(currentItem.getAsJsonObject("snippet").getAsJsonObject("resourceId").get("videoId").getAsString());	    		
-	    			String title = currentItem.get("snippet").getAsJsonObject().get("title").getAsString();
-	    			playlistItems.add(new PlaylistItem(channelName, title));		    		
-		    	}
-		    }
-	    }
-		
-		return playlistItems;	
-	}
-	
-	private int getLongestChannelCharacterCount(ArrayList<PlaylistItem> playlistItems)
-	{
-		int longest = 0;
-		for(PlaylistItem currentItem : playlistItems)
-		{
-			if(currentItem.getChannel().length() > longest)
-			{
-				longest = currentItem.getChannel().length();
-			}
-		}
-		
-		return longest;
-	}
-	
-	@SuppressWarnings("static-access")
-	private void writeToFile(String path, ArrayList<PlaylistItem> playlistItems, String playlistID) throws IOException
-	{		
-		String date = getDate();
-		File datei = null;
-					
-		datei = new File (path + playlistID + "-" + date + ".txt");
-		datei.createNewFile();			
-		
-		int longest = getLongestChannelCharacterCount(playlistItems) + 15;
-		
-		BufferedWriter out = null;
-					
-		out = new BufferedWriter(new FileWriter(datei, true));		
-		out.write("Playlist-ID = " + playlistID);
-        out.newLine();
-        out.newLine();	
-        String headline = "";
-        headline = headline.format("%-10s %-" + longest +"s %s", "Nummer", "Kanal", "Video");		
-        out.write(headline);
-        out.newLine();
-        out.newLine();	
-		
-		
-		for(int i = 0; i < playlistItems.size(); i++)
-		{
-			String formatted = "";
-			
-			formatted = formatted.format("%-10s %-" + longest +"s %s", i+1, playlistItems.get(i).getChannel(), playlistItems.get(i).getVideoName());		
-			
-		    out.write(formatted);
-            out.newLine();	        
-		}
-		
-		ArrayList<String> removedLines = comparePlaylists(readLogFile(checkForPreviousLogs(Controller.files, playlistID)), playlistItems);
-		
-		if(removedLines.size() > 0)
-		{
-			out.newLine();
-			out.write("Fehlende Videos:");
-	        out.newLine();
-	        out.newLine();	        
-			for(int j = 0; j < removedLines.size(); j++)
-			{	
-				String line = removedLines.get(j);				
-				out.write(line);
-		        out.newLine();	   
-			}
-		}		
-		out.close();		
-	}
-	
-	private String getDate()
-	{
-		Calendar cal = Calendar.getInstance();
-		SimpleDateFormat ausgabe = new SimpleDateFormat("dd.MM.yyyy_HH-mm-ss");			
-		return ausgabe.format(cal.getTime());
-	}
-	
-	private boolean playlistExists(String playlistID)
-	{
-		try
-		{			
-			URL url = new URL("https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=50&playlistId=" + playlistID + "&key=" + API_KEY);				
-			BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
-			in.close();
-			
-	       	return true;
-		}	       
-		catch(IOException e)
-		{		
-			return false;
-		}	
-	}
-	
-	public void savePlaylist(String path) throws IllegalArgumentException, IOException
-	{
-		if(playlistExists(playlistID))
-		{
-			JsonObject json = getCompleteJSON(playlistID);				
-			ArrayList<PlaylistItem> playlistItems = getPlaylistItems(json);
-			writeToFile(path, playlistItems, playlistID);	
-		}
-		else
-		{
-			throw new IllegalArgumentException();
-		}		
-	}
-	
-	private File checkForPreviousLogs(File[] files, String playlistID)
-	{	
-		ArrayList<File> logsPaths = new ArrayList<File>();
-		ArrayList<String> logs = new ArrayList<String>();
-		for(int i = 0; i < files.length; i++)
-		{
-			if(files[i].getName().contains(playlistID))
-			{
-				logsPaths.add(files[i]);
-				logs.add(files[i].getName());
-			}
-		}		
-		
-		if(logs.size() == 0)
-		{
-			return null;
-		}
-		else if(logs.size() == 1)
-		{
-			return logsPaths.get(0);
-		}
-		else
-		{
-			ArrayList<Date> dates = new ArrayList<Date>();
-			for(int j = 0; j < logs.size(); j++)
-			{
-				String current = logs.get(j);
-				int start = current.indexOf("-");
-				current = current.substring(start + 1, current.length());
-				logs.set(j, current);
-				DateFormat format = new SimpleDateFormat("dd.MM.yyyy_HH-mm-ss");				
-				
-				try
-				{
-					Date date = format.parse(current);	
-					dates.add(date);
-				}
-				catch(ParseException e)
-				{
-					return null;
-				}					
-			}	
-				
-			
-			int latest = 1;
-			Date latestDate = dates.get(0);
-			
-			for(int k = 1; k < dates.size(); k++)
-			{
-				if(dates.get(k).after(latestDate))
-				{
-					latestDate = dates.get(k);
-					latest = k;
-				}
-				else
-				{
-					latest = k;
-				}
-			}			
-			return logsPaths.get(latest);
-		}
-	}	
-		
-	private ArrayList<String> readLogFile(File file)
-	{		
-		if(file != null)
-		{
-			try 
-			{			
-				FileInputStream fis = new FileInputStream(file);				
-				BufferedReader reader = new BufferedReader(new InputStreamReader(fis));			
-			
-				ArrayList<String> lines = new ArrayList<>();			
-				String line;				
-				while ((line = reader.readLine()) != null) 
-				{
-					lines.add(line);
-				}			
-			
-				reader.close();			
-				
-				int lineNumber = -1;
-				for(int i = 0; i < lines.size(); i++)
-				{
-					if(lines.get(i).contains("Fehlende Videos:"))
-					{
-						lineNumber = i;
-					}
-				}
-				
-				if(lineNumber != -1)
-				{
-					for(int j = lines.size()-1; j > lineNumber-2; j--)
-					{					
-						lines.remove(j);					
-					}					
-				}
-				
-				return lines;
-			}
-			catch(IOException e)
-			{
-				return null;
-			}
-		}		
-		return null;		
-	}
-	
-	private ArrayList<String> comparePlaylists( ArrayList<String> lines, ArrayList<PlaylistItem> playlistItems)
-	{		
-		ArrayList<String> removedLines = new ArrayList<String>();
-		if(lines != null)
-		{		
-			boolean[] removed = new boolean[lines.size()];	
-			removed[0] = false;
-			removed[1] = false;
-			removed[2] = false;
-			removed[3] = false;
-			
-			for(int i = 4; i < lines.size(); i++)
-			{		
-				removed[i] = true;
-				for(int j = 0; j < playlistItems.size(); j++)
-				{
-					if(lines.get(i).contains(playlistItems.get(j).getChannel()) && lines.get(i).contains(playlistItems.get(j).getVideoName()))
-					{
-						removed[i] = false;
-					}				
-				}			
-			}			
-			
-			missing = 0;
-			for(int k = 0; k < removed.length; k++)
-			{
-				if(removed[k] == true)
-				{		
-					missing ++;
-					removedLines.add(lines.get(k));			
-				}
-			}
-			compared = true;
-		}	
-		else
-		{
-			compared = false;
-		}	
-		return removedLines;
-	}
-	
-	public boolean getCompared()
-	{
-		return compared;
-	}
-	
-	public int getMissing()
-	{
-		return missing;
-	}
-}
\ No newline at end of file
diff --git a/src/application/PlaylistHandler.java b/src/application/PlaylistHandler.java
deleted file mode 100644
index fdb1f03..0000000
--- a/src/application/PlaylistHandler.java
+++ /dev/null
@@ -1,103 +0,0 @@
-package application;
-
-import java.io.IOException;
-
-import javafx.application.Platform;
-import javafx.scene.control.Alert;
-import javafx.scene.control.Alert.AlertType;
-
-public class PlaylistHandler
-{
-	private String path;
-	private Playlist playlist;
-	private Controller controller;
-
-	public PlaylistHandler(String path, Playlist playlist, Controller controller)
-	{
-		this.path = path;
-		this.playlist = playlist;
-		this.controller = controller;
-	}
-
-	public void run() 
-	{ 		
-		try
-		{		
-		
-			try
-			{
-				playlist.savePlaylist(path);
-				controller.refreshFiles();
-			}
-			catch(IOException e)
-			{
-				Platform.runLater(()->{		
-					Alert alert = new Alert(AlertType.WARNING);	
-					alert.setTitle("Fehler");
-					alert.setHeaderText("");
-					alert.getDialogPane().setPrefSize(350, 120);
-					alert.setContentText("Ein Fehler ist aufgetreten!");
-					alert.initOwner(controller.getStage());				
-					alert.showAndWait();	
-				});	
-			}					
-			
-			Platform.runLater(()->{	
-				controller.progressIndicator.setVisible(false);
-				controller.buttonPath.setDisable(false);
-				controller.buttonSave.setDisable(false);
-				controller.running = false;
-			});
-			
-			if(playlist.getCompared())
-			{
-				Platform.runLater(()->{		
-					Alert alert = new Alert(AlertType.INFORMATION);	
-					alert.setTitle("Abgeschlossen");
-					alert.setHeaderText("");
-					alert.getDialogPane().setPrefSize(350, 145);
-					alert.setContentText("Playlist erfolgreich gespeichert. \n"
-										+ "\n"
-										+ "Fehlende Videos:   " + playlist.getMissing() + "\n"
-										+ "Für weitere Informationen siehe Textdatei.");
-					alert.initOwner(controller.getStage());				
-					alert.showAndWait();	
-				});	
-			}
-			else
-			{
-				Platform.runLater(()->{		
-					Alert alert = new Alert(AlertType.INFORMATION);	
-					alert.setTitle("Abgeschlossen");
-					alert.setHeaderText("");
-					alert.getDialogPane().setPrefSize(350, 120);
-					alert.setContentText("Playlist erfolgreich gespeichert. \n"
-										+ "\n"
-										+ "Keine Datei zum Vergleich gefunden.");
-					alert.initOwner(controller.getStage());				
-					alert.showAndWait();	
-				});	
-			}
-		}
-		catch(IllegalArgumentException ex)
-		{
-			ex.printStackTrace();
-			Platform.runLater(()->{	
-				controller.progressIndicator.setVisible(false);
-				controller.buttonPath.setDisable(false);
-				controller.buttonSave.setDisable(false);
-				controller.running = false;
-			});
-			
-			Platform.runLater(()->{		
-				Alert alert = new Alert(AlertType.WARNING);	
-				alert.setTitle("Fehler");
-				alert.setHeaderText("");
-				alert.getDialogPane().setPrefSize(350, 120);
-				alert.setContentText("Keine Playlist zur eingegebenen ID gefunden!");
-				alert.initOwner(controller.getStage());				
-				alert.showAndWait();	
-			});
-		}			
-	}
-}
\ No newline at end of file
diff --git a/src/application/PlaylistItem.java b/src/application/PlaylistItem.java
deleted file mode 100644
index 67972a4..0000000
--- a/src/application/PlaylistItem.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package application;
-
-public class PlaylistItem
-{
-	private String channel;
-	private String videoName;
-		
-	public PlaylistItem(String channel, String videoName)
-	{	
-		this.channel = channel;
-		this.videoName = videoName;
-	}
-	
-	public String getChannel()
-	{
-		return channel;
-	}
-	
-	public String getVideoName()
-	{
-		return videoName;
-	}
-	
-	@Override
-	public String toString()
-	{
-		return "PlaylistItem [channel=" + channel + ", videoName=" + videoName + "]";
-	}
-}
diff --git a/src/application/SaveMyPlayListGUI.fxml b/src/application/SaveMyPlayListGUI.fxml
deleted file mode 100644
index 9ac66df..0000000
--- a/src/application/SaveMyPlayListGUI.fxml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<?import javafx.scene.image.*?>
-<?import javafx.scene.text.*?>
-<?import javafx.scene.control.*?>
-<?import java.lang.*?>
-<?import javafx.scene.layout.*?>
-<?import javafx.scene.layout.AnchorPane?>
-
-<AnchorPane prefHeight="290.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="application.Controller">
-   <children>
-      <Label layoutX="218.0" layoutY="29.0" text="SaveMyPlaylist">
-         <font>
-            <Font name="System Bold" size="25.0" />
-         </font>
-      </Label>
-      <Button fx:id="buttonPath" layoutX="424.0" layoutY="115.0" mnemonicParsing="false" onAction="#buttonPath" text="Speicherort wählen" />
-      <Button fx:id="buttonSave" layoutX="256.0" layoutY="230.0" mnemonicParsing="false" onAction="#buttonSave" text="Speichern">
-         <font>
-            <Font name="System Bold" size="14.0" />
-         </font>
-      </Button>
-      <TextField fx:id="textFieldPath" editable="false" layoutX="173.0" layoutY="115.0" prefHeight="25.0" prefWidth="231.0" />
-      <TextField fx:id="textFieldID" layoutX="173.0" layoutY="175.0" prefHeight="25.0" prefWidth="231.0" />
-      <Label layoutX="69.0" layoutY="175.0" text="Playlist-ID:">
-         <font>
-            <Font name="System Bold" size="16.0" />
-         </font>
-      </Label>
-      <Label layoutX="59.0" layoutY="115.0" text="Speicherort:">
-         <font>
-            <Font name="System Bold" size="16.0" />
-         </font>
-      </Label>
-      <ImageView fx:id="imageView" fitHeight="45.0" fitWidth="45.0" layoutX="164.0" layoutY="25.0" pickOnBounds="true" preserveRatio="true" />
-      <ProgressIndicator fx:id="progressIndicator" layoutX="353.0" layoutY="227.0" prefHeight="36.0" prefWidth="25.0" />
-   </children>
-</AnchorPane>
diff --git a/src/application/application.css b/src/application/application.css
deleted file mode 100644
index 83d6f33..0000000
--- a/src/application/application.css
+++ /dev/null
@@ -1 +0,0 @@
-/* JavaFX CSS - Leave this comment until you have at least create one rule which uses -fx-Property */
\ No newline at end of file
diff --git a/src/application/list.png b/src/application/list.png
deleted file mode 100644
index a1e3eb721f36a0b5b2603c07a4e589fa817721ba..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 3771
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
Z@hj`^#P7NOIUm&e_jL7hS?83{1OUQIiR}OY

-- 
GitLab