Merge pull request 'Discount any history times older than 6 months' (#36) from limit-history into main
Reviewed-on: #36
This commit is contained in:
commit
6f80bbc0be
1 changed files with 6 additions and 4 deletions
|
|
@ -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
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue