123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- # -*- coding: utf-8 -*-
- import datetime
- from typing import List, Dict
- class ButtonsDB:
- '''`after`: time after wich buton will be delated'''
- def __init__(self, after: datetime.timedelta):
- self._data: Dict = dict()
- '''msg_id: time'''
- self._after = after
- def _next_time(self) -> datetime.datetime:
- return datetime.datetime.now() + self._after
- def append(self, id: int) -> None:
- self._data.update({id: self._next_time()})
- def shift(self, id: int) -> None:
- if id not in self._data.keys():
- return
- self._data.update({id: self._next_time()})
- def delete(self, id: int) -> bool:
- try:
- del self._data[id]
- except KeyError:
- return False
- return True
- @property
- def expired(self) -> List[int]:
- now = datetime.datetime.now()
- return [id for id, time in self._data.items() if now >= time]
- @property
- def data(self) -> Dict:
- return self._data
|