| @@ -29,7 +29,8 @@ KIRIBAN_VIEWS_COUNTS: list[int] = sorted ({ *range (1_000, 10_000, 1_000), | |||||
| *range (10_000, 1_000_001, 10_000), | *range (10_000, 1_000_001, 10_000), | ||||
| 194, 245, 510, 810, 114_514, 1_940, 2_450, 5_100, | 194, 245, 510, 810, 114_514, 1_940, 2_450, 5_100, | ||||
| 19_400, 24_500, 51_000, 93_194, 2_424, 242_424, 1_919, | 19_400, 24_500, 51_000, 93_194, 2_424, 242_424, 1_919, | ||||
| 4_545, 194_245, 245_194, 510_245 }) | |||||
| 4_545, 194_245, 245_194, 510_245 }, | |||||
| reverse = True) | |||||
| class VideoInfo (TypedDict): | class VideoInfo (TypedDict): | ||||
| contentId: str | contentId: str | ||||
| @@ -134,17 +135,19 @@ def get_kiriban_list ( | |||||
| .max ('fetched_at'))) | .max ('fetched_at'))) | ||||
| for kiriban_views_count in KIRIBAN_VIEWS_COUNTS: | for kiriban_views_count in KIRIBAN_VIEWS_COUNTS: | ||||
| targets = ({ vh.video.code for vh in (VideoHistory | |||||
| .where ('fetched_at', latest_fetched_at) | |||||
| .where ('views_count', '>=', kiriban_views_count) | |||||
| .get ()) } | |||||
| - { vh.video.code for vh in (VideoHistory | |||||
| .where ('fetched_at', previous_fetched_at) | |||||
| .where ('views_count', '>=', kiriban_views_count) | |||||
| .get ()) }) | |||||
| targets = { vh.video.code for vh in (VideoHistory | |||||
| .where ('fetched_at', latest_fetched_at) | |||||
| .where ('views_count', '>=', kiriban_views_count) | |||||
| .get ()) } | |||||
| for code in targets: | for code in targets: | ||||
| if code in [kiriban[1]['contentId'] for kiriban in kiriban_list]: | if code in [kiriban[1]['contentId'] for kiriban in kiriban_list]: | ||||
| continue | continue | ||||
| previous_views_count = cast (int, (VideoHistory | |||||
| .where ('code', code) | |||||
| .where ('fetched_at', '<', latest_fetched_at) | |||||
| .max ('views_count'))) | |||||
| if previous_views_count >= kiriban_views_count: | |||||
| continue | |||||
| video_info = get_video_info (code) | video_info = get_video_info (code) | ||||
| if video_info is not None: | if video_info is not None: | ||||
| kiriban_list.append ((kiriban_views_count, video_info, | kiriban_list.append ((kiriban_views_count, video_info, | ||||