aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/Main.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/Main.java')
-rw-r--r--src/main/java/Main.java192
1 files changed, 31 insertions, 161 deletions
diff --git a/src/main/java/Main.java b/src/main/java/Main.java
index a1fc151..ec95ad9 100644
--- a/src/main/java/Main.java
+++ b/src/main/java/Main.java
@@ -2,19 +2,14 @@ import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*;
-import java.net.URL;
import java.util.ArrayList;
-import java.util.regex.Matcher;
import org.jaudiotagger.audio.AudioFile;
import org.jaudiotagger.audio.AudioFileIO;
import org.jaudiotagger.tag.FieldKey;
import org.jaudiotagger.tag.Tag;
import org.jaudiotagger.tag.datatype.Artwork;
-
import javax.swing.*;
-import javax.swing.filechooser.FileNameExtensionFilter;
import javax.swing.text.DefaultCaret;
-import java.util.regex.Pattern;
public class Main extends JFrame {
String textPath = "";
@@ -23,11 +18,22 @@ public class Main extends JFrame {
JScrollPane scrollPane;
JButton editButton = new JButton("Edit Tags");
int progress = 0;
+ FileUtility fileUtil = new FileUtility();
JProgressBar progressBar = new JProgressBar();
JLabel title = new JLabel("SUPER JUICER DOWNLOAD MUSIC COVERS AND TAG NOW 100% SAFE");
JButton startButton = new JButton("Set .txt File");
static JTextArea outputArea = new JTextArea("this is bery bery bery safe no worries no virus malwar ur monies back granteed");
+
public Main(){
+ initializeComponents();
+ initializeActionsListeners();
+ }
+
+ public static void main(String[] args) {
+ new Main().setVisible(true);
+ }
+
+ private void initializeComponents(){
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setLocationRelativeTo(null);
this.add(panel);
@@ -54,13 +60,17 @@ public class Main extends JFrame {
panel.add(scrollPane);
panel.add(Box.createVerticalStrut(5));
panel.add(editButton);
+ this.setSize(550,300);
+ }
+
+ private void initializeActionsListeners(){
startButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if(textPath.equals("")||readyState==false){
outputArea.setText(outputArea.getText()+"\n"+"txt path has not been set. Launching chooserPane");
System.out.println(".txt path has not been set. Launching chooserPane");
- textPath = showFileChooser();
+ textPath = fileUtil.showTextFileChooser();
if(!textPath.equals("")){
showWarning("File has been set.\nMake sure you add a new line for each URL.\nOr else say bye bye to your system32");
readyState = true;
@@ -73,7 +83,7 @@ public class Main extends JFrame {
Runnable runnable = () -> {
outputArea.setText("");
startButton.setEnabled(false);
- downloadLoop();
+ downloadAndTag();
startButton.setEnabled(true);
};
@@ -88,32 +98,29 @@ public class Main extends JFrame {
}
});
- this.setSize(550,300);
-
- }
- public static void main(String[] args) {
- new Main().setVisible(true);
}
- private void downloadLoop(){
- ArrayList<String> songs = readFile(textPath);
+
+ private void downloadAndTag(){
+ ArrayList<String> songs = fileUtil.txtToArrayList(textPath);
progress = 0;
for(int i = 0;i<songs.size();i++) {
try {
- deleteFiles("downloaded");
- downloadYouTube(songs.get(i));
- String info[] = parseJson(readJson(findJsonFile("downloaded"))); //title,uploader
+ fileUtil.deleteAllFilesDir("downloaded");
+ youtubeToMP3(songs.get(i));
+ String info[] = fileUtil.parseJson(fileUtil.jsonToString(fileUtil.findJsonFile("downloaded"))); //title,uploader
String uploader = info[1];
String title = info[0];
- AudioFile f = AudioFileIO.read(findMP3File("downloaded"));
+ AudioFile f = AudioFileIO.read(fileUtil.findMP3File("downloaded"));
Tag tag = f.getTag();
tag.setField(FieldKey.ARTIST, uploader);
tag.setField(FieldKey.TITLE, title);
- downloadImage("https://img.youtube.com/vi/"+info[2]+"/maxresdefault.jpg","img.jpg");
+ fileUtil.downloadImage("https://img.youtube.com/vi/"+info[2]+"/maxresdefault.jpg","img.jpg");
Artwork cover = Artwork.createArtworkFromFile(new File("img.jpg"));
tag.addField(cover);
f.commit();
- clearThumbnail("img.jpg");
- moveFile(findMP3File("downloaded").getAbsolutePath(), "completed/" + removeNonAlphaNumeric(info[0]) + " ["+info[2]+ "].mp3");
+ fileUtil.deleteFile("img.jpg");
+ fileUtil.moveFile(fileUtil.findMP3File("downloaded").getAbsolutePath(), "completed/" + fileUtil.removeNonAlphaNumeric(info[0]) + " ["+info[2]+ "].mp3");
+ outputArea.setText(outputArea.getText()+"\n"+"Moved file to Completed Folder");
progress = i;
System.out.println("Current Progress " + calculatePercentage(i+1,songs.size()));
progressBar.setValue(calculatePercentage(i+1,songs.size()));
@@ -122,130 +129,16 @@ public class Main extends JFrame {
}
}
}
+
private int calculatePercentage(int current, int total){
double currentD = current;
double totalD = total;
return (int)((currentD/totalD)*100);
}
-
-
- public static String showFileChooser() {
- javax.swing.JFileChooser chooser = new javax.swing.JFileChooser();
- FileNameExtensionFilter filter = new FileNameExtensionFilter("Text File", "txt", "text");
- chooser.setFileFilter(filter);
- chooser.setDialogTitle("Select a text file");
- chooser.setFileSelectionMode(javax.swing.JFileChooser.FILES_ONLY);
- chooser.setAcceptAllFileFilterUsed(false);
- if (chooser.showOpenDialog(null) == javax.swing.JFileChooser.APPROVE_OPTION) {
- return chooser.getSelectedFile().getAbsolutePath();
- } else {
- return null;
- }
- }
- public static void clearThumbnail(String fileName) {
- File file = new File(fileName);
- if (file.exists()) {
- file.delete();
- }
- }
- //download image using url
- public static void downloadImage(String url, String fileName) throws IOException {
- FileOutputStream fos = new FileOutputStream(fileName);
- URL urlObj = new URL(url);
- InputStream is = urlObj.openStream();
- byte[] b = new byte[2048];
- int length;
- while ((length = is.read(b)) != -1) {
- fos.write(b, 0, length);
- }
- fos.close();
- is.close();
- }
-
public static void showWarning(String message) {
JOptionPane.showMessageDialog(null, message, "JUST YOUR FRIENDLY NEIGHBORLY REMINDER", JOptionPane.WARNING_MESSAGE);
}
-
- public static String removeNonAlphaNumeric(String str) {
- return str.replaceAll("[^a-zA-Z0-9]", "");
- }
- public static void moveFile(String source, String destination) {
- File sourceFile = new File(source);
- File destinationFile = new File(destination);
- sourceFile.renameTo(destinationFile);
- outputArea.setText(outputArea.getText()+"\n"+"Moved file to Completed Folder");
- System.out.println("Moved file to Completed Folder");
- }
-
- public static File findMP3File(String directory){
- File dir = new File(directory);
- File[] files = dir.listFiles();
- for(File file : files){
- if(file.getName().endsWith(".mp3")){
- return file;
- }
- }
- return null;
- }
-
- public static String findJsonFile(String folderName) {
- File folder = new File(folderName);
- File[] listOfFiles = folder.listFiles();
- for (int i = 0; i < listOfFiles.length; i++) {
- if (listOfFiles[i].isFile()) {
- if (listOfFiles[i].getName().endsWith(".json")) {
- return listOfFiles[i].getAbsolutePath();
- }
- }
- }
- return null;
- }
- private void normalizeAudio(String directory) {
- try {
- Runtime.getRuntime().exec("ffmpeg -i " + directory + " -af volume=volume=0.9 " + directory);
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- public static String readJson(String fileName) {
- String json = "";
- try {
- BufferedReader br = new BufferedReader(new FileReader(fileName));
- StringBuilder sb = new StringBuilder();
- String line = br.readLine();
- while (line != null) {
- sb.append(line);
- line = br.readLine();
- }
- json = sb.toString();
- br.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- return json;
- }
-
- public static String[] parseJson(String json) {
- String title = "";
- String uploader = "";
- String id = "";
- Pattern titlePattern = Pattern.compile("\"fulltitle\": \"(.*?)\",");
- Matcher titleMatcher = titlePattern.matcher(json);
- Pattern uploaderPattern = Pattern.compile("\"uploader\": \"(.*?)\",");
- Matcher uploaderMatcher = uploaderPattern.matcher(json);
- Pattern idPattern = Pattern.compile("\"id\": \"(.*?)\",");
- Matcher idMatcher = idPattern.matcher(json);
- titleMatcher.find();
- idMatcher.find();
- uploaderMatcher.find();
- title = titleMatcher.group(1);
- uploader = uploaderMatcher.group(1);
- id = idMatcher.group(1);
- String[] info = {title,uploader,id};
- return info;
-
- }
- public static void downloadYouTube(String url) {
+ public static void youtubeToMP3(String url) {
try {
ProcessBuilder builder = new ProcessBuilder(
"yt-dlp.exe",
@@ -273,30 +166,7 @@ public class Main extends JFrame {
e.printStackTrace();
}
}
- public static void deleteFiles(String path) {
- File folder = new File(path);
- File[] files = folder.listFiles();
- if (files != null) {
- for (File f : files) {
- f.delete();
- }
- }
- }
- public static ArrayList<String> readFile(String fileName) {
- ArrayList<String> lines = new ArrayList<String>();
- try {
- FileReader fr = new FileReader(fileName);
- BufferedReader br = new BufferedReader(fr);
- String line;
- while ((line = br.readLine()) != null) {
- lines.add(line);
- }
- br.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- return lines;
- }
+
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage