diff --git a/lnbits/core/crud.py b/lnbits/core/crud.py index 11e5ceaa4..b37bf375d 100644 --- a/lnbits/core/crud.py +++ b/lnbits/core/crud.py @@ -183,19 +183,23 @@ async def get_payments( pending: bool = False, outgoing: bool = False, incoming: bool = False, + since: Optional[int] = None, exclude_uncheckable: bool = False, ) -> List[Payment]: """ Filters payments to be returned by complete | pending | outgoing | incoming. """ - args: Any = () + args: List[Any] = [] + clause: List[str] = [] - clause = [] + if since != None: + clause.append("time > ?") + args.append(since) if wallet_id: clause.append("wallet = ?") - args = (wallet_id,) + args.append(wallet_id) if complete and pending: pass @@ -230,7 +234,7 @@ async def get_payments( {where} ORDER BY time DESC """, - args, + tuple(args), ) return [Payment.from_row(row) for row in rows] diff --git a/lnbits/tasks.py b/lnbits/tasks.py index d671786c8..cfb882bec 100644 --- a/lnbits/tasks.py +++ b/lnbits/tasks.py @@ -1,3 +1,4 @@ +import time import trio # type: ignore from http import HTTPStatus from typing import Optional, List, Callable @@ -72,7 +73,10 @@ async def check_pending_payments(): await delete_expired_invoices() while True: for payment in await get_payments( - complete=False, pending=True, exclude_uncheckable=True + since=(int(time.time()) - 60 * 60 * 24 * 15), # 15 days ago + complete=False, + pending=True, + exclude_uncheckable=True, ): print(" - checking pending", payment.checking_id) await payment.check_pending()