You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

43 lines
1.2 KiB
Python

from enum import Enum
APP_NAME = "gimme-job"
DEFAULT_PROFILE_NAME = "JobAgent"
DEFAULT_TIMEZONE = "America/Phoenix"
MAX_PAGES_PER_SITE = 3
CONSECUTIVE_FAILURES_THRESHOLD = 2 # mark repair_needed after this many consecutive failures
class FailureClassification(str, Enum):
LOGIN_REQUIRED = "LOGIN_REQUIRED"
SELECTOR_NOT_FOUND = "SELECTOR_NOT_FOUND"
ZERO_RESULTS_EXPECTED = "ZERO_RESULTS_EXPECTED"
ZERO_RESULTS_SUSPICIOUS = "ZERO_RESULTS_SUSPICIOUS"
DATE_FILTER_FAILED = "DATE_FILTER_FAILED"
ANTI_BOT_SUSPECTED = "ANTI_BOT_SUSPECTED"
NAVIGATION_TIMEOUT = "NAVIGATION_TIMEOUT"
EXTRACTION_PARTIAL = "EXTRACTION_PARTIAL"
class RunStatus(str, Enum):
SUCCESS = "success"
PARTIAL = "partial"
FAILED = "failed"
REPAIR_NEEDED = "repair_needed"
class LeadStatus(str, Enum):
"""Verification lifecycle statuses for proactive search leads (doc §15)."""
NEW = "NEW"
REOPENED = "REOPENED"
STILL_OPEN = "STILL_OPEN"
VERIFY = "VERIFY"
CLOSED = "CLOSED"
STALE = "STALE"
# Statuses that represent a currently-open lead
ACTIVE_LEAD_STATUSES = frozenset(
{LeadStatus.NEW, LeadStatus.REOPENED, LeadStatus.STILL_OPEN}
)