diff --git a/src/main/java/de/fabianonline/telegram_backup/CommandLineController.java b/src/main/java/de/fabianonline/telegram_backup/CommandLineController.java index 61f101f..6f88259 100644 --- a/src/main/java/de/fabianonline/telegram_backup/CommandLineController.java +++ b/src/main/java/de/fabianonline/telegram_backup/CommandLineController.java @@ -218,15 +218,24 @@ public class CommandLineController { } private void cmd_stats() { - HashMap map = new HashMap(); - map.put("count.accounts", Utils.getAccounts().size()); - map.put("count.messages", Database.getInstance().getMessageCount()); - map.put("messages.top_id", Database.getInstance().getTopMessageID()); + System.out.println(); + System.out.println("Stats:"); + String format = "%40s: %d%n"; + System.out.format(format, "Number of accounts", Utils.getAccounts().size()); + System.out.format(format, "Number of messages", Database.getInstance().getMessageCount()); + System.out.format(format, "Top message ID", Database.getInstance().getTopMessageID()); + + System.out.println(); + System.out.println("Media Types:"); for(Map.Entry pair : Database.getInstance().getMessageMediaTypesWithCount().entrySet()) { - map.put(pair.getKey(), pair.getValue()); + System.out.format(format, pair.getKey(), pair.getValue()); } - System.out.println(map.toString()); + System.out.println(); + System.out.println("Api layers of messages:"); + for(Map.Entry pair : Database.getInstance().getMessageApiLayerWithCount().entrySet()) { + System.out.format(format, pair.getKey(), pair.getValue()); + } } private void cmd_login(String phone) throws RpcErrorException, IOException { diff --git a/src/main/java/de/fabianonline/telegram_backup/Database.java b/src/main/java/de/fabianonline/telegram_backup/Database.java index 46f1267..0855feb 100644 --- a/src/main/java/de/fabianonline/telegram_backup/Database.java +++ b/src/main/java/de/fabianonline/telegram_backup/Database.java @@ -458,6 +458,20 @@ public class Database { } catch (Exception e) { throw new RuntimeException(e); } } + public HashMap getMessageApiLayerWithCount() { + HashMap map = new HashMap(); + try { + ResultSet rs = stmt.executeQuery("SELECT COUNT(id), api_layer FROM messages GROUP BY api_layer ORDER BY api_layer"); + while(rs.next()) { + Integer layer = rs.getInt(2); + if (layer==null) layer=0; + map.put("count.messages.api_layer." + layer, rs.getInt(1)); + } + rs.close(); + return map; + } catch (Exception e) { throw new RuntimeException(e); } + } + public HashMap getMessageAuthorsWithCount() { return getMessageAuthorsWithCount(new GlobalChat()); }