Added operation for calculating stats on queued posts, improved loop handling
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user