diff --git a/src/data_types/frequency.py b/src/data_types/frequency.py index 886e454..cad7ed4 100644 --- a/src/data_types/frequency.py +++ b/src/data_types/frequency.py @@ -45,34 +45,38 @@ class Frequency: n_hours = delta.days if self.dates[0].hour <= busiest_hour and self.dates[-1].hour >= busiest_hour: n_hours += 1 - - plt.style.use('dark_background') + + plt.style.use("dark_background") fig, ax = plt.subplots() - fig.patch.set_facecolor('#36393F') + fig.patch.set_facecolor("#36393F") ax.patch.set_alpha(0) times = range(25) for i in range(7): - hours = [self.hours[i][hour]*7/n_hours for hour in range(24)] + [self.hours[i][0]*7/n_hours] - ax.plot(times, hours, label=calendar.day_name[i], linestyle='--', linewidth=0.8) - - hours = [day[hour]/n_hours for hour in range(24)] + [day[0]/n_hours] - ax.plot(times, hours, c='r', label='average', linewidth=1.5) + hours = [self.hours[i][hour] * 7 / n_hours for hour in range(24)] + [ + self.hours[i][0] * 7 / n_hours + ] + ax.plot( + times, hours, label=calendar.day_name[i], linestyle="--", linewidth=0.8 + ) - ax.set_xlabel('hour of day') + hours = [day[hour] / n_hours for hour in range(24)] + [day[0] / n_hours] + ax.plot(times, hours, c="r", label="average", linewidth=1.5) + + ax.set_xlabel("hour of day") ax.set_xlim([0, 24]) - ax.set_ylabel('average messages') + ax.set_ylabel("average messages") ax.legend(framealpha=0) with BytesIO() as f: - plt.savefig(f, format='png', facecolor=fig.get_facecolor(), edgecolor='none') + plt.savefig( + f, format="png", facecolor=fig.get_facecolor(), edgecolor="none" + ) f.seek(0) - return [ - discord.File(f, f"{time.time()}-plot.png") - ] + return [discord.File(f, f"{time.time()}-plot.png")] def to_string( self, @@ -107,14 +111,16 @@ class Frequency: f"- **messages/day**: {precise(total_msg/delta.days, precision=3)}", f"- **busiest day of week**: {calendar.day_name[busiest_weekday]} (~{precise(week[busiest_weekday]/n_weekdays, precision=3)} msg, {percent(week[busiest_weekday]/total_msg)})", f"- **quietest day of week**: {calendar.day_name[quietest_weekday]} (~{precise(week[quietest_weekday]/n_weekdays, precision=3)} msg, {percent(week[quietest_weekday]/total_msg)})" - if week[quietest_weekday] > 0 else "", + if week[quietest_weekday] > 0 + else "", f"- **busiest day ever**: {from_now(self.busiest_day)} ({self.busiest_day_count} msg)" if self.busiest_day is not None else "", f"- **messages/hour**: {precise(total_msg*3600/delta.total_seconds(), precision=3)}", f"- **busiest hour of day**: {busiest_hour:0>2}:00 (~{precise(day[busiest_hour]/n_hours, precision=3)} msg, {percent(day[busiest_hour]/total_msg)})", f"- **quietest hour of day**: {quietest_hour:0>2}:00 (~{precise(day[quietest_hour]/n_hours, precision=3)} msg, {percent(day[quietest_hour]/total_msg)})" - if day[quietest_hour] > 0 else "", + if day[quietest_hour] > 0 + else "", f"- **busiest hour ever**: {from_now(self.busiest_hour)} ({self.busiest_hour_count} msg)", f"- **longest break**: {plural(round(self.longest_break.total_seconds()/3600), 'hour')} ({plural(self.longest_break.days,'day')}), started {from_now(self.longest_break_start)}", f"- **avg. streak**: {precise(sum(self.streaks)/len(self.streaks), precision=3)} msg", diff --git a/src/scanners/frequency_scanner.py b/src/scanners/frequency_scanner.py index e850a06..e4ed3bc 100644 --- a/src/scanners/frequency_scanner.py +++ b/src/scanners/frequency_scanner.py @@ -14,9 +14,13 @@ from utils import generate_help class FrequencyScanner(Scanner): @staticmethod def help() -> str: - return generate_help("freq", "(BETA) Show frequency-related statistics", args=[ + return generate_help( + "freq", + "(BETA) Show frequency-related statistics", + args=[ "graph - plot hours of week", - ],) + ], + ) def __init__(self): super().__init__(