diff --git a/src/commands/stats.rs b/src/commands/stats.rs index 51610b4..2cf278c 100644 --- a/src/commands/stats.rs +++ b/src/commands/stats.rs @@ -12,7 +12,7 @@ pub async fn stats(ctx: Context<'_>) -> Result<(), Error> { ); let stats = web::archive_stats(&ctx.data().pool).await?; let msg = format!( - "# Archive Statistics\n## Messages\nArchived messages: {}\nArchived users: {}\nChannels: {}\nServers: {}\n## Storage usage\nTotal archive: {}\nMessages and metadata: {}\nAttachments: {}", + "# Archive Statistics\n## Messages\nArchived messages: {}\nArchived users: {}\nChannels: {}\nServers: {}\n## Storage usage\nArchived data: {}\nMessage content: {}\nAttachments: {}", stats.messages, stats.users, stats.channels, diff --git a/src/web.rs b/src/web.rs index b9ef2e6..6074eac 100644 --- a/src/web.rs +++ b/src/web.rs @@ -1072,32 +1072,14 @@ pub async fn archive_stats(pool: &PgPool) -> Result { (SELECT COUNT(*) FROM discord_users), (SELECT COUNT(*) FROM guilds), (SELECT COUNT(*) FROM channels), - pg_total_relation_size('guilds') - + pg_total_relation_size('channels') - + pg_total_relation_size('discord_users') - + pg_total_relation_size('discord_roles') - + pg_total_relation_size('messages') - + pg_total_relation_size('message_versions') - + pg_total_relation_size('attachments') - + pg_total_relation_size('embeds') - + pg_total_relation_size('embed_fields') - + pg_total_relation_size('guild_history') - + pg_total_relation_size('channel_history') - + pg_total_relation_size('discord_user_history') - + pg_total_relation_size('guild_users'), - pg_total_relation_size('messages') - + pg_total_relation_size('message_versions') - + pg_total_relation_size('guilds') - + pg_total_relation_size('channels') - + pg_total_relation_size('discord_users') - + pg_total_relation_size('discord_roles') - + pg_total_relation_size('embeds') - + pg_total_relation_size('embed_fields') - + pg_total_relation_size('guild_history') - + pg_total_relation_size('channel_history') - + pg_total_relation_size('discord_user_history') - + pg_total_relation_size('guild_users'), - pg_total_relation_size('attachments');", + (SELECT COALESCE(SUM(OCTET_LENGTH(content)), 0) + FROM message_versions) + + (SELECT COALESCE(SUM(OCTET_LENGTH(data)), 0) + FROM attachments), + (SELECT COALESCE(SUM(OCTET_LENGTH(content)), 0) + FROM message_versions), + (SELECT COALESCE(SUM(OCTET_LENGTH(data)), 0) + FROM attachments);", ) .fetch_one(pool) .await?; diff --git a/static/index.html b/static/index.html index c1f044f..084543f 100644 --- a/static/index.html +++ b/static/index.html @@ -2,8 +2,8 @@

Archived {{message_count}} messages from {{user_count}} users across {{channel_count}} channels on {{server_count}} servers.

Storage usage

-
Total archive
{{total_storage}}
-
Messages and metadata
{{message_storage}}
+
Archived data
{{total_storage}}
+
Message content
{{message_storage}}
Attachments
{{attachment_storage}}