def printCalendar(data): days = [ 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday' ] hours = ['0' + str(x) if len(str(x)) < 2 else str(x) for x in range(24)] max_val = float(data[max(data, key=data.get)]) if len(data) else 0 ticks = [ 0, 0.25 * max_val, 0.50 * max_val, 0.75 * max_val, ] sys.stdout.write(" ") for day in days: sys.stdout.write('\t[' + day[:3] + "]") sys.stdout.write('\n') for hour in hours: sys.stdout.write("[" + hour + ':00]') for day in days: dict_key = (day, hour) if dict_key in data: # tick = str(ct[dict_key]) if data[dict_key] > ticks[3]: tick = Color.custom("███", bold=True, fg_red=True) elif data[dict_key] > ticks[2]: tick = Color.custom("▓▓▓", bold=True, fg_orange=True) elif data[dict_key] > ticks[1]: tick = Color.custom("▒▒▒", bold=True, fg_green=True) else: tick = Color.custom("░░░", bold=True, fg_light_grey=True) else: tick = Color.custom('===', bold=False, fg_white=True) sys.stdout.write('\t ' + tick) sys.stdout.write('\n')
printBarChart(data[:20], fill=Color.green("█")) print() print() # Heatmap data = chat_counter['timestamps'] print(Color.purple("-" * 50)) print(Color.purple("Chat Activity Heatmap")) print(Color.purple("-" * 50)) if len(data) > 0: print("Most Busy\t: {}, at {} ({} chat)".format( Color.purple(str(data[0][0][0])), Color.purple(str(data[0][0][1]) + ":00"), Color.purple(str(data[0][1])))) print("Most Silence\t: {}, at {} ({} chat)".format( Color.purple(str(data[-1][0][0])), Color.purple(str(data[-1][0][1]) + ":00"), Color.purple(str(data[-1][1])))) print() print('---') print('X: Days') print('Y: Hours') print('---') print('Less [{}{}{}{}{}] More'.format( Color.custom("===", bold=False), Color.custom("░░░", bold=True, fg_light_grey=True), Color.custom("▒▒▒", bold=True, fg_green=True), Color.custom("▓▓▓", bold=True, fg_orange=True), Color.custom("███", bold=True, fg_red=True))) print() printCalendar(dict(data))