This commit is contained in:
Aron Petau 2026-01-05 15:46:30 +01:00
parent 0f2f842e04
commit bc06db593b

View file

@ -97,6 +97,10 @@ class ApplicationHandler:
if application_results is not None:
if listing["id"] in application_results:
result = application_results[listing["id"]]
# Skip already-applied listings (no notification needed)
if result.get("skipped"):
logger.debug(f"Skip notification for already-applied: {listing['address']}")
continue # Skip to next listing
if result["success"]:
message += f"\n\n\ud83e\udd16 <b>Auto-applied!</b> ({result['company']})"
if result["message"]:
@ -145,21 +149,24 @@ class ApplicationHandler:
if self.context is None:
raise RuntimeError("browser_context is None in apply_to_listings. This should never happen.")
for listing in listings:
if self.has_applied(listing["id"]):
logger.debug(f"Skip (applied): {listing['address']}")
# Add to results so notify_new_listings can handle it
results[listing["id"]] = {
"listing_id": listing["id"],
"company": self._detect_company(listing.get("link", "")),
"link": listing.get("link", ""),
"timestamp": listing.get("timestamp", ""),
"success": True,
"message": "Already applied successfully",
"address": listing.get("address", ""),
"rooms": listing.get("rooms", ""),
"price": listing.get("price", ""),
}
continue
# Check if we've already successfully applied
applications = self.load_applications()
if listing["id"] in applications:
app = applications[listing["id"]]
if app.get("success", False):
# Check if it's the same listing (same link) or a reused ID
if app.get("link") == listing.get("link"):
logger.debug(f"Skip (applied): {listing['address']}")
# Mark as skipped so notify_new_listings knows not to send notification
results[listing["id"]] = {
"listing_id": listing["id"],
"skipped": True, # Flag to prevent duplicate notifications
}
continue
else:
# Same ID but different link - companies reused the ID for a new listing
logger.info(f"Reused ID detected for {listing['address']}: old link={app.get('link')}, new link={listing.get('link')}")
# Treat as new listing and apply
result = await self.apply(listing)
results[listing["id"]] = result
self.save_application(result)