Some checks failed
CI / Frontend Lint & Type Check (push) Has been cancelled
CI / Frontend Build (push) Has been cancelled
CI / Backend Lint (push) Has been cancelled
CI / Backend Tests (push) Has been cancelled
CI / Docker Build (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
Deploy / Build & Push Images (push) Has been cancelled
Deploy / Deploy to Server (push) Has been cancelled
Deploy / Notify (push) Has been cancelled
## Watchlist & Monitoring - ✅ Automatic domain monitoring based on subscription tier - ✅ Email alerts when domains become available - ✅ Health checks (DNS/HTTP/SSL) with caching - ✅ Expiry warnings for domains <30 days - ✅ Weekly digest emails - ✅ Instant alert toggle (optimistic UI updates) - ✅ Redesigned health check overlays with full details - 🔒 'Not public' display for .ch/.de domains without public expiry ## Portfolio Management (NEW) - ✅ Track owned domains with purchase price & date - ✅ ROI calculation (unrealized & realized) - ✅ Domain valuation with auto-refresh - ✅ Renewal date tracking - ✅ Sale recording with profit calculation - ✅ List domains for sale directly from portfolio - ✅ Full portfolio summary dashboard ## Listings / For Sale - ✅ Renamed from 'Portfolio' to 'For Sale' - ✅ Fixed listing limits: Scout=0, Trader=5, Tycoon=50 - ✅ Featured badge for Tycoon listings - ✅ Inquiries modal for sellers - ✅ Email notifications when buyer inquires - ✅ Inquiries column in listings table ## Scrapers & Data - ✅ Added 4 new registrar scrapers (Namecheap, Cloudflare, GoDaddy, Dynadot) - ✅ Increased scraping frequency to 2x daily (03:00 & 15:00 UTC) - ✅ Real historical data from database - ✅ Fixed RDAP/WHOIS for .ch/.de domains - ✅ Enhanced SSL certificate parsing ## Scheduler Jobs - ✅ Tiered domain checks (Scout=daily, Trader=hourly, Tycoon=10min) - ✅ Daily health checks (06:00 UTC) - ✅ Weekly expiry warnings (Mon 08:00 UTC) - ✅ Weekly digest emails (Sun 10:00 UTC) - ✅ Auction cleanup every 15 minutes ## UI/UX Improvements - ✅ Removed 'Back' buttons from Intel pages - ✅ Redesigned Radar page to match Market/Intel design - ✅ Less prominent check frequency footer - ✅ Consistent StatCard components across all pages - ✅ Ambient background glows - ✅ Better error handling ## Documentation - ✅ Updated README with monitoring section - ✅ Added env.example with all required variables - ✅ Updated Memory Bank (activeContext.md) - ✅ SMTP configuration requirements documented
35 lines
1.2 KiB
Python
35 lines
1.2 KiB
Python
"""TLD Price Scraper Package.
|
|
|
|
Multi-registrar price scraping for historical data collection.
|
|
Runs 2x daily (03:00 & 15:00 UTC) for optimal data granularity.
|
|
|
|
Scrapers (5 total):
|
|
- PorkbunScraper: Primary source, 896+ TLDs via official API
|
|
- GoDaddyScraper: Largest registrar, promo pricing detection
|
|
- NamecheapScraper: Popular TLDs, fallback static data
|
|
- CloudflareScraper: At-cost (wholesale) baseline pricing
|
|
- DynadotScraper: Competitive pricing, 80+ TLDs
|
|
- TLDListScraper: Legacy (currently blocked)
|
|
"""
|
|
from app.services.tld_scraper.base import BaseTLDScraper, TLDPriceData
|
|
from app.services.tld_scraper.tld_list import TLDListScraper
|
|
from app.services.tld_scraper.porkbun import PorkbunScraper
|
|
from app.services.tld_scraper.namecheap import NamecheapScraper
|
|
from app.services.tld_scraper.cloudflare import CloudflareScraper
|
|
from app.services.tld_scraper.godaddy import GoDaddyScraper
|
|
from app.services.tld_scraper.dynadot import DynadotScraper
|
|
from app.services.tld_scraper.aggregator import TLDPriceAggregator
|
|
|
|
__all__ = [
|
|
"BaseTLDScraper",
|
|
"TLDPriceData",
|
|
"TLDListScraper",
|
|
"PorkbunScraper",
|
|
"GoDaddyScraper",
|
|
"NamecheapScraper",
|
|
"CloudflareScraper",
|
|
"DynadotScraper",
|
|
"TLDPriceAggregator",
|
|
]
|
|
|