diff --git a/pom.xml b/pom.xml
index 4831a91..6e99497 100644
--- a/pom.xml
+++ b/pom.xml
@@ -18,11 +18,18 @@
- 2.11.2
- 1.7.26
- http://nexus.locusworks.net
+ 6.0.3
+ 2.4.4
+ 5.4.4.Final
+ 5.1.9.RELEASE
+ 2.1.8.RELEASE
+ 2.1.10.RELEASE
+ 2.12.1
+ 1.7.28
+ 3.0.0-M2
5.2.2
3.0
+ http://nexus.locusworks.net
@@ -64,33 +71,18 @@
- org.apache.maven.plugins
- maven-shade-plugin
- 3.2.1
+ org.springframework.boot
+ spring-boot-maven-plugin
+ ${spring.boot.version}
- package
- shade
+ repackage
- EightTrack-${project.version}
-
-
- net.locusworks.discord.eighttrack.main.Entry
-
-
-
-
- *:*
-
- META-INF/*.SF
- META-INF/*.DSA
- META-INF/*.RSA
-
-
-
+ EightTrackApp
+ JAR
+
@@ -118,21 +110,78 @@
+
+ org.flywaydb
+ flyway-maven-plugin
+ ${flyway.version}
+
+ jdbc:mariadb://devops.locusworks.net:3306/
+ false
+
+ eighttrack
+
+
+
+ filesystem:${basedir}/src/main/resources/database/migration
+
+
+
+
+
+ org.mariadb.jdbc
+ mariadb-java-client
+ ${mariadb.version}
+
+
+
-
- net.dv8tion
- JDA
- 4.0.0_46
+ net.locusworks
+ applogger
+ 1.0.3-RELEASE
net.locusworks
- applogger
- 1.0.1-RELEASE
+ crypto
+ 1.0.3-RELEASE
+
+
+
+ org.apache.tika
+ tika-core
+ 1.22
+
+
+
+ org.apache.tika
+ tika-parsers
+ 1.22
+
+
+
+
+ net.dv8tion
+ JDA
+ 4.0.0_47
+
+
+ com.fasterxml.jackson.core
+ jackson-annotations
+
+
+ com.fasterxml.jackson.core
+ jackson-core
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+
+
@@ -141,6 +190,149 @@
1.3.22
+
+
+ org.flywaydb
+ flyway-core
+ ${flyway.version}
+
+
+
+ org.mariadb.jdbc
+ mariadb-java-client
+ ${mariadb.version}
+
+
+
+
+ mysql
+ mysql-connector-java
+ 8.0.17
+
+
+
+ org.hibernate
+ hibernate-entitymanager
+ ${hibernate.version}
+
+
+
+
+ org.apache.commons
+ commons-dbcp2
+ 2.7.0
+
+
+
+
+
+ org.springframework.boot
+ spring-boot
+ ${spring.boot.version}
+
+
+ org.springframework
+ spring-context
+
+
+ org.springframework
+ spring-core
+
+
+ org.hibernate
+ hibernate-core
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-autoconfigure
+ ${spring.boot.version}
+
+
+
+
+ org.springframework
+ spring-core
+ ${spring.version}
+
+
+ org.springframework
+ spring-aop
+ ${spring.version}
+
+
+ org.springframework
+ spring-context
+ ${spring.version}
+
+
+ org.springframework
+ spring-jdbc
+ ${spring.version}
+
+
+ org.springframework
+ spring-tx
+ ${spring.version}
+
+
+ org.springframework.data
+ spring-data-jpa
+ ${spring.data.version}
+
+
+
+
+ javax.annotation
+ javax.annotation-api
+ 1.3.2
+
+
+
+
+ com.fasterxml.jackson.core
+ jackson-core
+ 2.10.0.pr3
+
+
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+ 2.10.0.pr3
+
+
+
+
+ com.fasterxml.jackson.core
+ jackson-annotations
+ 2.10.0.pr3
+
+
+
+ javax.xml.bind
+ jaxb-api
+ 2.2.11
+
+
+ com.sun.xml.bind
+ jaxb-core
+ 2.2.11
+
+
+ com.sun.xml.bind
+ jaxb-impl
+ 2.2.11
+
+
+ javax.activation
+ activation
+ 1.1.1
+
+
diff --git a/src/main/java/net/locusworks/discord/eighttrack/handlers/Mp3UploadHandler.java b/src/main/java/net/locusworks/discord/eighttrack/handlers/Mp3UploadHandler.java
new file mode 100644
index 0000000..294ae90
--- /dev/null
+++ b/src/main/java/net/locusworks/discord/eighttrack/handlers/Mp3UploadHandler.java
@@ -0,0 +1,60 @@
+package net.locusworks.discord.eighttrack.handlers;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+
+import org.apache.tika.exception.TikaException;
+import org.apache.tika.metadata.Metadata;
+import org.apache.tika.parser.ParseContext;
+import org.apache.tika.parser.mp3.LyricsHandler;
+import org.apache.tika.parser.mp3.Mp3Parser;
+import org.apache.tika.sax.BodyContentHandler;
+import org.xml.sax.SAXException;
+
+public class Mp3UploadHandler {
+
+ private Path file;
+
+ public Mp3UploadHandler(Path file) {
+ this.file = file;
+ }
+
+ public void parse() throws IOException, SAXException, TikaException {
+
+ InputStream is = Files.newInputStream(file);
+
+ BodyContentHandler handler = new BodyContentHandler();
+ Metadata metadata = new Metadata();
+ ParseContext context = new ParseContext();
+
+ Mp3Parser parser = new Mp3Parser();
+
+ parser.parse(is, handler, metadata, context);
+
+ LyricsHandler lyrics = new LyricsHandler(is, handler);
+
+ while(lyrics.hasLyrics()) {
+ System.out.println(lyrics.toString());
+ }
+
+ System.out.println("Contents of the document:" + handler.toString());
+ System.out.println("Metadata of the document:");
+ String[] metadataNames = metadata.names();
+
+ for(String name : metadataNames) {
+ System.out.println(name + ": " + metadata.get(name));
+ }
+ }
+
+ public static void main(String args[]) throws IOException, SAXException, TikaException {
+ String file = "S:\\Music\\Alan Walker\\01 Diamond Heart.mp3";
+ Path path = Paths.get(file);
+
+ Mp3UploadHandler fuh = new Mp3UploadHandler(path);
+ fuh.parse();
+ }
+
+}
diff --git a/src/main/java/net/locusworks/discord/eighttrack/handlers/Mp3UploadResults.java b/src/main/java/net/locusworks/discord/eighttrack/handlers/Mp3UploadResults.java
new file mode 100644
index 0000000..138351e
--- /dev/null
+++ b/src/main/java/net/locusworks/discord/eighttrack/handlers/Mp3UploadResults.java
@@ -0,0 +1,15 @@
+package net.locusworks.discord.eighttrack.handlers;
+
+import org.apache.tika.metadata.Metadata;
+
+public class Mp3UploadResults {
+
+ public Mp3UploadResults( Metadata metadata) {
+ parseResults(metadata);
+ }
+
+ private void parseResults(Metadata metadata) {
+
+ }
+
+}
diff --git a/src/main/java/net/locusworks/discord/eighttrack/main/Entry.java b/src/main/java/net/locusworks/discord/eighttrack/main/EightTrackLauncher.java
similarity index 84%
rename from src/main/java/net/locusworks/discord/eighttrack/main/Entry.java
rename to src/main/java/net/locusworks/discord/eighttrack/main/EightTrackLauncher.java
index 259ef27..1f2f2d7 100644
--- a/src/main/java/net/locusworks/discord/eighttrack/main/Entry.java
+++ b/src/main/java/net/locusworks/discord/eighttrack/main/EightTrackLauncher.java
@@ -31,6 +31,10 @@ import java.io.IOException;
import java.nio.file.Paths;
import javax.security.auth.login.LoginException;
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.scheduling.annotation.EnableScheduling;
+
import net.dv8tion.jda.api.AccountType;
import net.dv8tion.jda.api.JDA;
import net.dv8tion.jda.api.JDABuilder;
@@ -38,12 +42,15 @@ import net.locusworks.discord.eighttrack.adaptors.MusicListenerAdaptor;
import net.locusworks.logger.ApplicationLogger;
import net.locusworks.logger.ApplicationLoggerFactory;
-public class Entry {
+@SpringBootApplication(scanBasePackages = {"net.locusworks.discord.pseudobot"})
+@EnableAutoConfiguration
+@EnableScheduling
+public class EightTrackLauncher {
public static void main(String[] args) throws LoginException, IOException {
if (args.length < 1) throw new RuntimeException("no token provided");
- ApplicationLogger logger = ApplicationLoggerFactory.getLogger(Entry.class);
+ ApplicationLogger logger = ApplicationLoggerFactory.getLogger(EightTrackLauncher.class);
logger.info("Starting Eight-Track");
JDA client = new JDABuilder(AccountType.BOT).setToken(args[0]).build();
diff --git a/src/main/resources/database/migration/mariadb/Tables/V01_000_000__initial_tables.sql b/src/main/resources/database/migration/mariadb/Tables/V01_000_000__initial_tables.sql
new file mode 100644
index 0000000..6aa1706
--- /dev/null
+++ b/src/main/resources/database/migration/mariadb/Tables/V01_000_000__initial_tables.sql
@@ -0,0 +1,8 @@
+CREATE TABLE eighttrack.discord_guild (
+ id bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'Auto increment primary key',
+ guild_id bigint(20) NOT NULL COMMENT 'id of the discord guild',
+ guild_name varchar(100) NOT NULL COMMENT 'name of the discord guild',
+ date_joined datetime DEFAULT NULL COMMENT 'date the guild joined',
+ PRIMARY KEY (id),
+ UNIQUE KEY guild_UN (guild_id)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Information about discord guild';
diff --git a/src/main/resources/database/migration/mariadb/afterMigrate.sql b/src/main/resources/database/migration/mariadb/afterMigrate.sql
new file mode 100644
index 0000000..629d102
--- /dev/null
+++ b/src/main/resources/database/migration/mariadb/afterMigrate.sql
@@ -0,0 +1,34 @@
+USE pseudobot;
+
+DELIMITER $$
+CREATE PROCEDURE set_optimizer_switch_on()
+BEGIN
+IF SUBSTRING(@@version,1,3) = '5.7' THEN
+ SET optimizer_switch = 'derived_merge=on';
+END IF;
+END;$$
+
+CREATE PROCEDURE create_user()
+BEGIN
+ DECLARE foo BIGINT DEFAULT 0;
+ SELECT COUNT(*) INTO foo FROM mysql.user WHERE User = 'eighttrackAdmin' and Host = 'localhost';
+ IF foo = 0 THEN
+ CREATE USER 'eighttrackAdmin'@'localhost' IDENTIFIED BY 'eighttrackAdmin2017!';
+ END IF;
+ SELECT COUNT(*) INTO foo FROM mysql.user WHERE User = 'eighttrackAdmin' and Host = '%';
+ IF foo = 0 THEN
+ CREATE USER 'eighttrackAdmin'@'%' IDENTIFIED BY 'eighttrackAdmin2017!';
+ END IF;
+END ;$$
+
+DELIMITER ;
+
+CALL set_optimizer_switch_on();
+DROP PROCEDURE set_optimizer_switch_on;
+
+CALL create_user();
+DROP PROCEDURE create_user;
+
+GRANT SELECT,INSERT,UPDATE,DELETE ON pseudobot.* TO 'eighttrackAdmin'@'localhost';
+GRANT SELECT,INSERT,UPDATE,DELETE ON pseudobot.* TO 'eighttrackAdmin'@'%';
+FLUSH PRIVILEGES;
\ No newline at end of file