diff --git a/src/main/java/de/fabianonline/telegram_backup/CommandLineController.java b/src/main/java/de/fabianonline/telegram_backup/CommandLineController.java index 555ccd3..d116172 100644 --- a/src/main/java/de/fabianonline/telegram_backup/CommandLineController.java +++ b/src/main/java/de/fabianonline/telegram_backup/CommandLineController.java @@ -36,45 +36,45 @@ public class CommandLineController { public TelegramApp app; public UserManager user = null; - public CommandLineController(CommandLineOptions options) { - if (options.cmd_version) { + public CommandLineController() { + if (CommandLineOptions.cmd_version) { System.out.println("Telegram_Backup version " + Config.APP_APPVER + ", Copyright (C) 2016 Fabian Schlenz"); System.out.println("Telegram_Backup comes with ABSOLUTELY NO WARRANTY. This is free software, and you are"); System.out.println("welcome to redistribute it under certain conditions; run it with '--license' for details."); System.exit(0); - } else if (options.cmd_help) { + } else if (CommandLineOptions.cmd_help) { this.show_help(); System.exit(0); - } else if (options.cmd_license) { + } else if (CommandLineOptions.cmd_license) { this.show_license(); System.exit(0); } - if (options.target != null) { - Config.FILE_BASE = options.target; + if (CommandLineOptions.val_target != null) { + Config.FILE_BASE = CommandLineOptions.val_target; } System.out.println("Base directory for files: " + Config.FILE_BASE); - if (options.cmd_list_accounts) this.list_accounts(); + if (CommandLineOptions.cmd_list_accounts) this.list_accounts(); app = new TelegramApp(Config.APP_ID, Config.APP_HASH, Config.APP_MODEL, Config.APP_SYSVER, Config.APP_APPVER, Config.APP_LANG); - if (options.cmd_debug) Kotlogram.setDebugLogEnabled(true); + if (CommandLineOptions.cmd_debug) Kotlogram.setDebugLogEnabled(true); String account = null; Vector accounts = Utils.getAccounts(); - if (options.cmd_login) { + if (CommandLineOptions.cmd_login) { // do nothing - } else if (options.account!=null) { + } else if (CommandLineOptions.val_account!=null) { boolean found = false; - for (String acc : accounts) if (acc.equals(options.account)) found=true; + for (String acc : accounts) if (acc.equals(CommandLineOptions.val_account)) found=true; if (!found) { - show_error("Couldn't find account '" + options.account + "'. Maybe you want to use '--login' first?"); + show_error("Couldn't find account '" + CommandLineOptions.val_account + "'. Maybe you want to use '--login' first?"); } - account = options.account; + account = CommandLineOptions.val_account; } else if (accounts.size()==0) { System.out.println("No accounts found. Starting login process..."); - options.cmd_login = true; + CommandLineOptions.cmd_login = true; } else if (accounts.size()==1) { account = accounts.firstElement(); System.out.println("Using only available account: " + account); @@ -92,11 +92,11 @@ public class CommandLineController { try { user = new UserManager(client); - if (options.export != null) { - if (options.export.toLowerCase().equals("html")) { + if (CommandLineOptions.val_export != null) { + if (CommandLineOptions.val_export.toLowerCase().equals("html")) { (new HTMLExporter()).export(user); System.exit(0); - } else if (options.export.toLowerCase().equals("stats")) { + } else if (CommandLineOptions.val_export.toLowerCase().equals("stats")) { (new StatsExporter()).export(user); System.exit(0); } else { @@ -105,7 +105,7 @@ public class CommandLineController { } - if (options.cmd_login) { + if (CommandLineOptions.cmd_login) { cmd_login(); System.exit(0); } @@ -113,14 +113,14 @@ public class CommandLineController { System.out.println("You are logged in as " + user.getUserString()); DownloadManager d = new DownloadManager(user, client, new CommandLineDownloadProgress()); - d.downloadMessages(options.limit_messages); + d.downloadMessages(CommandLineOptions.val_limit_messages); d.downloadMedia(); } catch (RpcErrorException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { - if (options.cmd_daemon) { + if (CommandLineOptions.cmd_daemon) { handler.setUser(user, client); System.out.println("DAEMON mode requested - keeping running."); } else { diff --git a/src/main/java/de/fabianonline/telegram_backup/CommandLineOptions.java b/src/main/java/de/fabianonline/telegram_backup/CommandLineOptions.java index bdd55cd..e4c6376 100644 --- a/src/main/java/de/fabianonline/telegram_backup/CommandLineOptions.java +++ b/src/main/java/de/fabianonline/telegram_backup/CommandLineOptions.java @@ -17,36 +17,36 @@ package de.fabianonline.telegram_backup; class CommandLineOptions { - public boolean cmd_console = false; - public String account = null; - public boolean cmd_help = false; - public boolean cmd_login = false; - public boolean cmd_debug = false; - public boolean cmd_list_accounts = false; - public Integer limit_messages = null; - public String target = null; - public boolean cmd_version = false; - public String export = null; - public boolean cmd_license = false; - public boolean cmd_daemon = false; + public static boolean cmd_console = false; + public static String val_account = null; + public static boolean cmd_help = false; + public static boolean cmd_login = false; + public static boolean cmd_debug = false; + public static boolean cmd_list_accounts = false; + public static Integer val_limit_messages = null; + public static String val_target = null; + public static boolean cmd_version = false; + public static String val_export = null; + public static boolean cmd_license = false; + public static boolean cmd_daemon = false; - public CommandLineOptions(String[] args) { + public static void parseOptions(String[] args) { String last_cmd = null; for (String arg : args) { if (last_cmd != null) { switch (last_cmd) { case "--account": - this.account = arg; + val_account = arg; break; case "--limit-messages": - this.limit_messages = Integer.parseInt(arg); + val_limit_messages = Integer.parseInt(arg); break; case "--target": - this.target = arg; + val_target = arg; break; case "--export": - this.export = arg; + val_export = arg; break; } last_cmd = null; @@ -58,37 +58,37 @@ class CommandLineOptions { last_cmd = "--account"; continue; case "-h": case "--help": - this.cmd_help = true; break; + cmd_help = true; break; case "-l": case "--login": - this.cmd_login = true; break; + cmd_login = true; break; case "--debug": - this.cmd_debug = true; break; + cmd_debug = true; break; case "-A": case "--list-accounts": - this.cmd_list_accounts = true; break; + cmd_list_accounts = true; break; case "--limit-messages": last_cmd = arg; continue; case "--console": - this.cmd_console = true; break; + cmd_console = true; break; case "-t": case "--target": last_cmd = "--target"; continue; case "-V": case "--version": - this.cmd_version = true; break; + cmd_version = true; break; case "-e": case "--export": last_cmd = "--export"; continue; case "--license": - this.cmd_license = true; break; + cmd_license = true; break; case "-d": case "--daemon": - this.cmd_daemon = true; break; + cmd_daemon = true; break; default: throw new RuntimeException("Unknown command " + arg); diff --git a/src/main/java/de/fabianonline/telegram_backup/CommandLineRunner.java b/src/main/java/de/fabianonline/telegram_backup/CommandLineRunner.java index 7ab0309..c004d3d 100644 --- a/src/main/java/de/fabianonline/telegram_backup/CommandLineRunner.java +++ b/src/main/java/de/fabianonline/telegram_backup/CommandLineRunner.java @@ -20,12 +20,12 @@ import de.fabianonline.telegram_backup.CommandLineController; public class CommandLineRunner { public static void main(String[] args) { - CommandLineOptions options = new CommandLineOptions(args); - if (true || options.cmd_console) { + CommandLineOptions.parseOptions(args); + if (true || CommandLineOptions.cmd_console) { // Always use the console for now. - new CommandLineController(options); + new CommandLineController(); } else { - new GUIController(options); + new GUIController(); } } } diff --git a/src/main/java/de/fabianonline/telegram_backup/GUIController.java b/src/main/java/de/fabianonline/telegram_backup/GUIController.java index b64b509..5907573 100644 --- a/src/main/java/de/fabianonline/telegram_backup/GUIController.java +++ b/src/main/java/de/fabianonline/telegram_backup/GUIController.java @@ -25,10 +25,7 @@ import java.awt.event.ActionListener; import java.util.Vector; public class GUIController { - private CommandLineOptions options; - - public GUIController(CommandLineOptions options) { - this.options = options; + public GUIController() { showAccountChooserDialog(); }