diff --git a/src/maildirclean/cli.py b/src/maildirclean/cli.py index d6b46ef..cd403f4 100644 --- a/src/maildirclean/cli.py +++ b/src/maildirclean/cli.py @@ -59,7 +59,9 @@ def cli(): if len(sender.names) > 5: names_str += f" and {len(sender.names) - 5} more" - result.append(f"{i}. {sender.email} - Names used: {names_str}") + result.append( + f"{i}. {sender.email} - Email count: {sender.count} - Names used: {names_str}" + ) output = "\n".join( [f"Top {len(top_senders)} senders in {maildir_path}:", "=" * 40, *result] diff --git a/src/maildirclean/maildir.py b/src/maildirclean/maildir.py index d9932e7..308c392 100644 --- a/src/maildirclean/maildir.py +++ b/src/maildirclean/maildir.py @@ -58,11 +58,14 @@ def parse_maildir(path_to_dir: str | Path): class TopSender: - """Simple class to store the top sender alongside the first 5 names they used""" + """Simple class to store the top sender, + alongisde names they used and the count of emails sent by them + """ - def __init__(self, email: str, names: list[str]): + def __init__(self, email: str, names: list[str], count: int): self.email = email self.names = names + self.count = count class MailDir: @@ -105,11 +108,14 @@ class MailDir: """ + unique_senders = self._df["email"].value_counts().iloc[0:n] senders = [ TopSender( - email, list(self._df.loc[self._df["email"] == email, "name"].unique()) + email, + list(self._df.loc[self._df["email"] == email, "name"].unique()), + count, ) - for email in self._df["email"].value_counts().iloc[0:n].index + for (email, count) in unique_senders.items() ] return senders