Discount any history times older than 6 months #36

Merged
mdiluz merged 1 commit from limit-history into main 2025-11-29 23:15:07 +00:00

View file

@ -1,6 +1,6 @@
"""Store bot state"""
import os
from datetime import datetime
from datetime import datetime, timedelta
from schema import Schema, Use, Optional
from collections.abc import Generator
from typing import Protocol
@ -243,18 +243,20 @@ class _State():
def get_history_timestamps(self, users: list[Member]) -> list[datetime]:
"""Grab all timestamps in the history"""
others = [m.id for m in users]
ids = [int(m.id) for m in users]
# Fetch all the interaction times in history
# But only for interactions in the given user group
times = set()
for data in (data for id, data in self._users.items() if int(id) in others):
for data in (data for id, data in self._users.items() if id in ids):
matches = data.get(_Key.MATCHES, {})
for ts in (ts for id, ts in matches.items() if int(id) in others):
for ts in (ts for id, ts in matches.items() if id in ids):
times.add(ts)
# Convert to datetimes and sort
datetimes = [ts_to_datetime(ts) for ts in times]
# Remove any entries older than 6 months ago
datetimes = [t for t in datetimes if t >= datetime.now() - timedelta(months=3)]
datetimes.sort()
return datetimes