From fff3483e63f1f04320b40d925c5e4af3da399462 Mon Sep 17 00:00:00 2001 From: Fabian Schlenz Date: Sat, 2 Dec 2017 15:05:04 +0100 Subject: [PATCH] Fixed stats in the HTML export for channels. --- .../de/fabianonline/telegram_backup/Database.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/main/java/de/fabianonline/telegram_backup/Database.java b/src/main/java/de/fabianonline/telegram_backup/Database.java index c3ef3df..3562984 100644 --- a/src/main/java/de/fabianonline/telegram_backup/Database.java +++ b/src/main/java/de/fabianonline/telegram_backup/Database.java @@ -497,11 +497,21 @@ public class Database { HashMap map = new HashMap(); HashMap user_map = new HashMap(); int count_others = 0; + // Set a default value for 'me' to fix the charts for channels - cause I + // possibly didn't send any messages there. + map.put("authors.count.me", 0); try { ResultSet rs = stmt.executeQuery("SELECT users.id, users.first_name, users.last_name, users.username, COUNT(messages.id) "+ - "FROM messages, users WHERE users.id=messages.sender_id AND " + c.getQuery() + " GROUP BY sender_id"); + "FROM messages " + + "LEFT JOIN users ON users.id=messages.sender_id " + + "WHERE " + c.getQuery() + " GROUP BY sender_id"); while (rs.next()) { - User u = new User(rs.getInt(1), rs.getString(2), rs.getString(3), rs.getString(4)); + User u; + if (rs.getString(2)!=null || rs.getString(3)!=null || rs.getString(4)!=null) { + u = new User(rs.getInt(1), rs.getString(2), rs.getString(3), rs.getString(4)); + } else { + u = new User(rs.getInt(1), "Unknown", "", ""); + } if (u.isMe) { map.put("authors.count.me", rs.getInt(5)); } else {