update last seen property when processing listings to refresh data

This commit is contained in:
Viktor Barzin 2025-08-23 22:36:37 +00:00
parent 480957dc72
commit 526f4fc0c3
No known key found for this signature in database
GPG key ID: 4056458DBDBF8863
2 changed files with 12 additions and 0 deletions

View file

@ -17,9 +17,11 @@ logger = logging.getLogger("uvicorn.error")
class ListingProcessor:
semaphore: asyncio.Semaphore
process_steps: list[Step]
listing_repository: ListingRepository
def __init__(self, listing_repository: ListingRepository):
self.semaphore = asyncio.Semaphore(20)
self.listing_repository = listing_repository
# Register new processing steps here
# Order is important
self.process_steps = [
@ -29,6 +31,7 @@ class ListingProcessor:
]
async def process_listing(self, listing_id: int) -> Listing | None:
await self.listing_repository.mark_seen(listing_id)
listing = None
for step in self.process_steps:
if await step.needs_processing(listing_id):

View file

@ -193,3 +193,12 @@ class ListingRepository:
)
return model_listing
async def mark_seen(self, listing_id: int) -> None:
listings = await self.get_listings(only_ids=[listing_id])
if len(listings) == 0:
return
listing = listings[0]
now = datetime.now()
listing.last_seen = now
await self.upsert_listings([listing])