Added operation for calculating stats on queued posts, improved loop handling

This commit is contained in:
2026-01-03 23:08:01 -05:00
parent 590277d7ee
commit d4e6df7721
3 changed files with 86 additions and 16 deletions

View File

@@ -44,7 +44,7 @@ class StatsModel:
self.total_original_posts = self.calculate_total_original_posts()
self.total_original_post_notes = self.calculate_total_original_post_notes()
self.total_original_post_notes_by_month_and_year = self.calculate_total_original_post_notes_by_month_and_year()
self.most_popular_tags = self.determine_most_popular_tags()
self.most_popular_tags = self.determine_most_popular_tags('note_count')
def calculate_total_posts(self) -> int:
return len(self.original_post_map) + len(self.unoriginal_post_map)
@@ -86,7 +86,7 @@ class StatsModel:
return date_map
def determine_most_popular_tags(self) -> List[Dict[str, Any]]:
def determine_most_popular_tags(self, sort_key: str) -> List[Dict[str, Any]]:
# https://docs.python.org/3/library/collections.html#defaultdict-objects
tag_dict: Dict[str, Any] = {}
tag_dict = defaultdict(lambda: {'note_count': 0,
@@ -111,5 +111,5 @@ class StatsModel:
sts['notes_to_posts_ratio'] = note_count / post_count
# https://stackoverflow.com/a/73050
return sorted(list(tag_dict.values()), key=itemgetter('note_count'),
return sorted(list(tag_dict.values()), key=itemgetter(sort_key),
reverse=True)