diff --git a/ModsListDownloader/.vscode/settings.json b/ModsListDownloader/.vscode/settings.json new file mode 100644 index 0000000..8c0a899 --- /dev/null +++ b/ModsListDownloader/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "java.project.referencedLibraries": [ + "lib/**/*.jar" + ] +} \ No newline at end of file diff --git a/ModsListDownloader/src/downloader/CurseForgeModFile.java b/ModsListDownloader/src/downloader/CurseForgeModFile.java index 2aaf669..e692602 100644 --- a/ModsListDownloader/src/downloader/CurseForgeModFile.java +++ b/ModsListDownloader/src/downloader/CurseForgeModFile.java @@ -1,29 +1,25 @@ package downloader; public class CurseForgeModFile extends ProjectInfo { - private int projectID; - private int fileID; - private boolean clientOnly; - - public CurseForgeModFile(ProjectInfo pj, int projectID, int fileID, boolean clientOnly) { - this(pj.getSlug(), pj.getName(), pj.getDesc(), projectID, fileID, clientOnly); - } - - public CurseForgeModFile(String slug, String name, String desc, int projectID, int fileID, boolean clientOnly) { - super(slug, name, desc); - this.projectID = projectID; - this.fileID = fileID; - this.clientOnly = clientOnly; - } - - public int getFileID() { - return this.fileID; - } - public int getProjectID() { - return this.projectID; - } - - public boolean isClientOnly() { - return this.clientOnly; - } + private int projectID; + private int fileID; + private boolean clientOnly; + public CurseForgeModFile(ProjectInfo pj, int projectID, int fileID, boolean clientOnly) { + this(pj.getSlug(), pj.getName(), pj.getDesc(), projectID, fileID, clientOnly); + } + public CurseForgeModFile(String slug, String name, String desc, int projectID, int fileID, boolean clientOnly) { + super(slug, name, desc); + this.projectID = projectID; + this.fileID = fileID; + this.clientOnly = clientOnly; + } + public int getFileID() { + return this.fileID; + } + public int getProjectID() { + return this.projectID; + } + public boolean isClientOnly() { + return this.clientOnly; + } } diff --git a/ModsListDownloader/src/downloader/Database.java b/ModsListDownloader/src/downloader/Database.java index efd4edd..e7d6b65 100644 --- a/ModsListDownloader/src/downloader/Database.java +++ b/ModsListDownloader/src/downloader/Database.java @@ -13,14 +13,20 @@ import downloader.forgeSvc.ForgeSvcFile; import downloader.helper.HttpHelper; public class Database { - DBConnector connector; + private DBConnector connector; + + private Gson gson; + + private static final String ME = "Db"; - Gson gson; - public Database() { try { + //work around to avoid Class.forName("org.sqlite.JDBC"); - } catch (ClassNotFoundException e1) {} //it will crash anyway + } catch (ClassNotFoundException e1) { + Log.e(ME, "Error sqLite was not found"); + System.exit(1); + } this.connector = new DBConnector(); try { @@ -39,7 +45,7 @@ public class Database { if (rs.next()) { pjId = rs.getInt("projectid"); } else { - Log.e("DB", "not found " + slug); + Log.e(ME, "not found " + slug); return -1; } } catch (SQLException e) { diff --git a/ModsListDownloader/src/downloader/DirectUpdateManager.java b/ModsListDownloader/src/downloader/DirectUpdateManager.java index 1129e69..fe6ef68 100644 --- a/ModsListDownloader/src/downloader/DirectUpdateManager.java +++ b/ModsListDownloader/src/downloader/DirectUpdateManager.java @@ -1,7 +1,6 @@ package downloader; import java.io.File; -import java.io.IOException; import downloader.helper.ArchiveHelper; import downloader.helper.SlugHelper; diff --git a/ModsListDownloader/src/downloader/ModUpdater.java b/ModsListDownloader/src/downloader/ModUpdater.java index 5f65257..dd84662 100644 --- a/ModsListDownloader/src/downloader/ModUpdater.java +++ b/ModsListDownloader/src/downloader/ModUpdater.java @@ -7,24 +7,23 @@ import java.io.IOException; import java.net.MalformedURLException; import java.util.ArrayList; import java.util.List; -import java.util.function.Function; import downloader.forgeSvc.ForgeSvcFile; import downloader.helper.HttpHelper; public class ModUpdater { - private DirectUpdateManager directUpdateManager; - private CurseUpdateManager curseUpdateManager; - private Database db; + private DirectUpdateManager directUpdateManager; + private CurseUpdateManager curseUpdateManager; + private Database db; private final String ME = "ModUpdater"; - - public ModUpdater() { - this.db = new Database(); - this.directUpdateManager = new DirectUpdateManager(); - this.curseUpdateManager = new CurseUpdateManager(); - } - public void update() { + public ModUpdater() { + this.db = new Database(); + this.directUpdateManager = new DirectUpdateManager(); + this.curseUpdateManager = new CurseUpdateManager(); + } + + public void update() { File modsList = new File("modpack.txt"); if(!(modsList.exists() && modsList.isFile())) { @@ -35,8 +34,8 @@ public class ModUpdater { //parse and download List threads = new ArrayList<>(Main.threadNb); try { - BufferedReader in = new BufferedReader(new FileReader(modsList)); - while (in.ready()) { + BufferedReader in = new BufferedReader(new FileReader(modsList)); + while (in.ready()) { String line = in.readLine(); if (!isAComment(line)) { Thread t = new UpdaterThread(line, db, directUpdateManager, curseUpdateManager, threads); @@ -49,13 +48,13 @@ public class ModUpdater { Thread.sleep(10); } catch (InterruptedException e) {} } - } - in.close(); - } catch( IOException e ) { - e.printStackTrace(); - System.exit(1); - } - + } + in.close(); + } catch( IOException e ) { + e.printStackTrace(); + System.exit(1); + } + //on attend la fin des threads while( !threads.isEmpty() ) { try { @@ -64,9 +63,9 @@ public class ModUpdater { } Log.i(ME, "finished"); curseUpdateManager.updateFile(); - } + } - public static boolean isAComment(String line) + public static boolean isAComment(String line) { return line.startsWith("//"); } @@ -112,7 +111,7 @@ final class UpdaterThread extends Thread { } private void handleDirectDownload(String line) { - String url = line.replaceFirst("direct=.*@", ""); + String url = line.replaceFirst("direct=.*@", ""); String filename=extractNameFromLink(line); //le slug est une nom de mods qui se trouve dans le nom du fichier @@ -123,19 +122,19 @@ final class UpdaterThread extends Thread { { Log.i(ME,"downloading "+ filename); try { - HttpHelper.readFileFromUrlToFolder(url,"mods",filename); - Log.i(ME,"done"); - } catch (MalformedURLException e) { - Log.e(ME, "could not update mod, error while downloading"); - } + HttpHelper.readFileFromUrlToFolder(url,"mods",filename); + Log.i(ME,"done"); + } catch (MalformedURLException e) { + Log.e(ME, "could not update mod, error while downloading"); + } } - } + } - private void handleCurseDownload(String line) { - String name = line.split("/")[5]; - int modID = db.findModBySlug(name); + private void handleCurseDownload(String line) { + String name = line.split("/")[5]; + int modID = db.findModBySlug(name); ProjectInfo pj = db.getProjectInfo(modID); - ForgeSvcFile svc = db.fetchMod(pj, modID); + ForgeSvcFile svc = db.fetchMod(pj, modID); if (svc != null) { try {