#!/usr/bin/env bash # Usage: ./frequented.sh [number=5] # Lists your top `number` most frequented channels # Single threaded, still does 1.22 milliseconds per channel # (on a 5600X with 2289 channels and 385952 messages) # set this to your id to not print your id in dms/group chats SELF_ID="${SELF_ID:-276363003270791168}" n=$((${1:-5})) repeat() { local n=${2?} for ((i=0; i ${counts[$i]})); then insert $count "$channel" $i break fi done done echo "total channels: $total_channels" echo "total messages: $total_messages" echo "most frequented $n channels:" for ((i=0; i 2 then "GC with " else "DM with " end + (.recipients | map(select(. != "'"$SELF_ID"'")) | join(", ")) + ")" else if has("name") then "#" + .name + " (" + .guild.name + ")" else .id + " (unknown guild)" end end' c"${channels[$i]}"/channel.json) echo "$((i + 1)). messages: ${counts[$i]}, channel: $channel_text" done