From d79d4e371e78a3bba372326b744ef7fe91c9cd6c Mon Sep 17 00:00:00 2001 From: Vlad Stan Date: Mon, 11 Jul 2022 15:03:48 +0300 Subject: [PATCH] feat: use `datetime` to compute `time_left` and `time_elapsed` --- lnbits/extensions/satspay/models.py | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/lnbits/extensions/satspay/models.py b/lnbits/extensions/satspay/models.py index b0a3a064b..325ce817e 100644 --- a/lnbits/extensions/satspay/models.py +++ b/lnbits/extensions/satspay/models.py @@ -1,4 +1,4 @@ -import time +from datetime import datetime, timedelta from sqlite3 import Row from typing import Optional @@ -38,16 +38,17 @@ class Charges(BaseModel): def from_row(cls, row: Row) -> "Charges": return cls(**dict(row)) + @property + def time_left(self): + now = datetime.utcnow().timestamp() + start = datetime.fromtimestamp(self.timestamp) + expiration = (start + timedelta(minutes=self.time)).timestamp() + return (expiration - now) / 60 + @property def time_elapsed(self): - # todo: - # now = datetime.utcnow().timestamp() - # start = datetime.utcfromtimestamp(self.timestamp) - # expiration = (start + timedelta(minutes=self.time)).timestamp() - if (self.timestamp + (self.time * 60)) >= time.time(): - return False - else: - return True + return self.time_left < 0 + @property def paid(self):