From 7a48b50d5bd249efe7c1dac85d45a5347a68c050 Mon Sep 17 00:00:00 2001 From: Codex Date: Wed, 24 Jun 2026 11:09:11 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8C=89=E6=9C=AC=E6=9C=BA=E6=97=A5=E6=9C=9F?= =?UTF-8?q?=E8=AE=A1=E7=AE=97=20Codex=20=E5=BD=93=E6=97=A5=20token?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tools/pc-metrics/push-metrics-ble.py | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) diff --git a/tools/pc-metrics/push-metrics-ble.py b/tools/pc-metrics/push-metrics-ble.py index b29bc64..aaff7e5 100644 --- a/tools/pc-metrics/push-metrics-ble.py +++ b/tools/pc-metrics/push-metrics-ble.py @@ -587,8 +587,9 @@ class CodexRateLimitReader: @staticmethod def _daily_bars_from_buckets(buckets: list[dict]) -> tuple[int, str]: + today = date.today() + wanted_days = [(today - timedelta(days=offset)).isoformat() for offset in range(CODEX_DAILY_BAR_COUNT - 1, -1, -1)] tokens_by_day: dict[str, int] = {} - latest_day: date | None = None for bucket in buckets: if not isinstance(bucket, dict): @@ -597,20 +598,6 @@ class CodexRateLimitReader: tokens = bucket.get("tokens") if isinstance(start_date, str) and isinstance(tokens, (int, float)) and tokens >= 0: tokens_by_day[start_date] = int(tokens) - try: - bucket_day = date.fromisoformat(start_date) - except ValueError: - continue - if latest_day is None or bucket_day > latest_day: - latest_day = bucket_day - - if latest_day is None: - return -1, "" - - wanted_days = [ - (latest_day - timedelta(days=offset)).isoformat() - for offset in range(CODEX_DAILY_BAR_COUNT - 1, -1, -1) - ] values = [tokens_by_day.get(day, 0) for day in wanted_days] max_value = max(values) if values else 0 @@ -619,7 +606,7 @@ class CodexRateLimitReader: else: percents = [0 for _ in values] - today_tokens_m10 = CodexRateLimitReader._tokens_to_m10(tokens_by_day.get(latest_day.isoformat(), -1)) + today_tokens_m10 = CodexRateLimitReader._tokens_to_m10(tokens_by_day.get(today.isoformat(), 0)) return today_tokens_m10, ":".join(str(value) for value in percents) def read_usage_snapshot(self) -> tuple[int, str]: