Skip to content

Conversation

@juftin
Copy link
Owner

@juftin juftin commented Nov 6, 2025

Summary

ReserveCalifornia changed its underlying API DNS name from https://calirdr.usedirect.com to https://california-rdr.prod.cali.rd12.recreation-management.tylerapp.com

@juftin
Copy link
Owner Author

juftin commented Nov 6, 2025

uv run camply --debug --provider ReserveCalifornia recreation-areas --search beach
[2025-11-06 16:25:24] CAMPLY   camply, the campsite finder ⛺️
[2025-11-06 16:25:24] DEBUG    Setting up camply debugging
[2025-11-06 16:25:24] DEBUG    Camply Version: 0.33.0
[2025-11-06 16:25:24] DEBUG    Python Version: 3.13.5
[2025-11-06 16:25:24] DEBUG    Platform: darwin
[2025-11-06 16:25:24] INFO     Using Camply Provider: "ReserveCalifornia"
[2025-11-06 16:25:24] INFO     Searching for Recreation Areas: "beach"
[2025-11-06 16:25:24] DEBUG    Refreshing UseDirect Metadata: filters.json
[2025-11-06 16:25:24] DEBUG    Starting new HTTPS connection (1): california-rdr.prod.cali.rd12.recreation-management.tylerapp.com:443
[2025-11-06 16:25:25] DEBUG    https://california-rdr.prod.cali.rd12.recreation-management.tylerapp.com:443 "GET /rdr/search/filters HTTP/1.1" 200 40579
[2025-11-06 16:25:25] DEBUG    Refreshing UseDirect Metadata: cityparks.json
[2025-11-06 16:25:25] DEBUG    https://california-rdr.prod.cali.rd12.recreation-management.tylerapp.com:443 "GET /rdr/fd/citypark HTTP/1.1" 200 295903
[2025-11-06 16:25:25] DEBUG    Refreshing UseDirect Metadata: places.json
[2025-11-06 16:25:25] DEBUG    https://california-rdr.prod.cali.rd12.recreation-management.tylerapp.com:443 "GET /rdr/fd/places HTTP/1.1" 200 322765
[2025-11-06 16:25:25] DEBUG    Refreshing UseDirect Metadata: facilities.json
[2025-11-06 16:25:25] DEBUG    https://california-rdr.prod.cali.rd12.recreation-management.tylerapp.com:443 "GET /rdr/fd/facilities HTTP/1.1" 200 351891
[2025-11-06 16:25:25] INFO     28 Matching Recreation Areas Found
[2025-11-06 16:25:25] INFO     ⛰  Bolsa Chica SB, Huntington Beach, CA (#619)
[2025-11-06 16:25:25] INFO     ⛰  Border Field SP, Imperial Beach, CA (#1095)
[2025-11-06 16:25:25] INFO     ⛰  Carpinteria SB, Carpinteria, CA (#6)
[2025-11-06 16:25:25] INFO     ⛰  Crystal Cove SP Beach Cottages, Newport Coast, CA (#634)
[2025-11-06 16:25:25] INFO     ⛰  Crystal Cove SP Moro Campground, Laguna Beach, CA (#635)
[2025-11-06 16:25:25] INFO     ⛰  Crystal Cove SP, Laguna Beach, CA (#1244)
[2025-11-06 16:25:25] INFO     ⛰  Doheny SB, Dana Point, CA (#639)
[2025-11-06 16:25:25] INFO     ⛰  El Capitan SB, Goleta, CA (#8)
[2025-11-06 16:25:25] INFO     ⛰  Emma Wood SB, Ventura, CA (#642)
[2025-11-06 16:25:25] INFO     ⛰  Enderts Beach, Crescent City, CA (#1248)
[2025-11-06 16:25:25] INFO     ⛰  Gold Bluffs Beach SP, Orick, CA (#1257)
[2025-11-06 16:25:25] INFO     ⛰  Half Moon Bay SB, Half Moon Bay, CA (#652)
[2025-11-06 16:25:25] INFO     ⛰  Kings Beach SRA, Gustine, CA (#1145)
[2025-11-06 16:25:25] INFO     ⛰  Manresa SB, Watsonville, CA (#672)
[2025-11-06 16:25:25] INFO     ⛰  Mcgrath SB, Oxnard, CA (#677)
[2025-11-06 16:25:25] INFO     ⛰  Moonlight SB, Imperial Beach, CA (#1171)
[2025-11-06 16:25:25] INFO     ⛰  Morro Strand SB, Morro Bay, CA (#681)
[2025-11-06 16:25:25] INFO     ⛰  New Brighton SB, Capitola, CA (#685)
[2025-11-06 16:25:25] INFO     ⛰  Pismo SB, Oceano, CA (#691)
[2025-11-06 16:25:25] INFO     ⛰  Prairie Creek Redwoods SP Gold Bluffs Beach Camp, Orick, CA (#697)
[2025-11-06 16:25:25] INFO     ⛰  Refugio SB, Goleta, CA (#699)
[2025-11-06 16:25:25] INFO     ⛰  San Clemente SB, San Clemente, CA (#707)
[2025-11-06 16:25:25] INFO     ⛰  San Elijo SB, Cardiff, CA (#709)
[2025-11-06 16:25:25] INFO     ⛰  San Onofre SB, San Clemente, CA (#712)
[2025-11-06 16:25:25] INFO     ⛰  Seacliff SB, Aptos, CA (#714)
[2025-11-06 16:25:25] INFO     ⛰  Silver Strand SB, Coronado, CA (#715)
[2025-11-06 16:25:25] INFO     ⛰  South Carlsbad SB, Carlsbad, CA (#720)
[2025-11-06 16:25:25] INFO     ⛰  Sunset SB, Watsonville, CA (#726)
[2025-11-06 16:25:25] CAMPLY   Exiting camply 👋

@github-actions
Copy link
Contributor

github-actions bot commented Nov 6, 2025

Coverage

Coverage Report
FileStmtsMissCoverMissing
__init__.py60100% 
__main__.py110%5
cli.py3025681%62, 64, 69, 73, 75, 182–185, 230, 233, 237–238, 240, 277, 280, 289, 334, 338, 505–514, 579, 653, 657, 788–791, 794–795, 820–828, 857, 860, 863–864, 882–885, 887
exceptions.py30100% 
config
   __init__.py60100% 
   api_config.py940100% 
   data_columns.py240100% 
   file_config.py140100% 
   logging_config.py27581%31, 49, 67, 70–71
   notification_config.py540100% 
   search_config.py330100% 
containers
   __init__.py30100% 
   api_responses.py2441295%83, 113–114, 116, 146–147, 149, 179–181, 184, 186
   base_container.py23195%38
   data_containers.py74297%36, 48
   examples.py30100% 
   gtc_api_responses.py100100% 
   search_model.py460100% 
   usedirect.py2570100% 
notifications
   __init__.py100100% 
   apprise.py332233%22–26, 30, 35, 40–44, 54, 67–68, 71–77
   base_notifications.py38294%59, 70
   email_notifications.py594032%36, 38, 45–46, 49, 55–56, 58, 62–63, 67, 84–99, 109–111, 114–123
   multi_provider_notifications.py531669%56, 59, 62–63, 65, 82–83, 107, 120–123, 127–130
   ntfy.py301936%23–25, 29–30, 44, 52–55, 59–60, 70–71, 74–78
   pushbullet.py372629%23–28, 33–34, 48–50, 53–54, 58–61, 65–66, 76–77, 80–84
   pushover.py431076%29, 35–36, 39, 66–67, 71, 83, 86–87
   silent_notifications.py160100% 
   slack.py443325%23–26, 31–32, 46–47, 50–51, 54–55, 59–62, 66–67, 77–78, 81–83, 89–90, 92–93, 100–101, 111–113, 119
   telegram.py433030%23–25, 33, 38–39, 54–63, 67–68, 83, 103–105, 115–116, 119–124
   twilio.py342332%22–26, 30, 38, 43–47, 59–60, 72–73, 76–82
   webhook.py301743%26–32, 39–40, 46, 56–61, 65
providers
   __init__.py90100% 
   base_provider.py52786%79, 110–111, 164–167
providers/going_to_camp
   __init__.py00100% 
   going_to_camp_provider.py1932487%66, 73–75, 79, 81, 83, 129, 132, 186, 275–276, 304, 321, 343–345, 391–394, 399, 564, 568
   rec_areas.py20100% 
providers/recreation_dot_gov
   __init__.py00100% 
   recdotgov_camps.py851187%57–58, 117–118, 121, 136–137, 140–141, 149–150
   recdotgov_provider.py2923687%56, 70, 78, 86, 94, 102, 110, 118, 143–144, 152, 155, 216, 378, 381–382, 406, 451–455, 503–504, 532–533, 647–651, 674–675, 698–699, 799
   recdotgov_tours.py1482980%48, 56, 154–155, 158–159, 162–163, 260–267, 271–279, 282–283, 295–296
providers/usedirect
   __init__.py20100% 
   usedirect.py2533685%76, 84, 92, 100, 146, 150, 153, 188, 196, 200, 338–339, 454, 456, 502–504, 508, 510, 513, 620, 720–728, 732–733, 739–741, 758
   variations.py770100% 
providers/xanterra
   __init__.py00100% 
   yellowstone_lodging.py1751690%56, 67, 103, 107–108, 130–131, 140, 275, 284, 360, 410, 413, 427, 447, 523
search
   __init__.py80100% 
   base_search.py3464287%108, 267, 270–271, 273, 276–277, 297, 301, 406, 409, 411, 414, 420, 428–430, 449–452, 456–458, 460–461, 522, 525–526, 528, 585–588, 634, 641–642, 776, 781, 990, 999, 1001
   search_going_to_camp.py761580%40, 103–104, 106, 109, 119–120, 125, 180, 221, 225, 228–229, 246, 258
   search_recreationdotgov.py140894%135, 163, 173, 241–243, 329, 380
   search_usedirect.py94792%47, 95–96, 99, 112–113, 115
   search_yellowstone.py60788%118, 122, 127–128, 167–168, 178
utils
   __init__.py40100% 
   api_utils.py211338%68–77, 80–82
   configure_camply.py584424%28–31, 33–34, 47–48, 52, 54, 66–71, 75–81, 93, 98–103, 110–111, 115–116, 119–121, 124, 129–132, 136–137
   general_utils.py42490%66–67, 69, 73
   logging_utils.py38392%48–49, 51
   yaml_utils.py47882%66–71, 74–75
TOTAL391662584% 

Tests Skipped Failures Errors Time
108 0 💤 0 ❌ 0 🔥 1m 8s ⏱️

@juftin
Copy link
Owner Author

juftin commented Nov 6, 2025

uv run camply --debug campsites --start-date 2025-11-01 --end-date 2025-12-01 --rec-area 627 --provider ReserveCalifornia
[2025-11-06 16:43:52] CAMPLY   camply, the campsite finder ⛺️
[2025-11-06 16:43:52] DEBUG    Setting up camply debugging
[2025-11-06 16:43:52] DEBUG    Camply Version: 0.33.0
[2025-11-06 16:43:52] DEBUG    Python Version: 3.13.5
[2025-11-06 16:43:52] DEBUG    Platform: darwin
[2025-11-06 16:43:52] INFO     Using Camply Provider: "ReserveCalifornia"
[2025-11-06 16:43:52] INFO     25 booking nights selected for search, ranging from 2025-11-06 to 2025-11-30
[2025-11-06 16:43:52] INFO     Searching across 1 campgrounds
[2025-11-06 16:43:52] INFO         ⛰  Chino Hills SP (#627) - 🏕  Rolling M. Ranch Campground (#439)
[2025-11-06 16:43:52] INFO     Searching Rolling M. Ranch Campground, Chino Hills SP (439) for availability: November, 2025
[2025-11-06 16:43:52] DEBUG    Starting new HTTPS connection (1): california-rdr.prod.cali.rd12.recreation-management.tylerapp.com:443
[2025-11-06 16:43:52] DEBUG    https://california-rdr.prod.cali.rd12.recreation-management.tylerapp.com:443 "POST /rdr/search/grid HTTP/1.1" 200 90372
[2025-11-06 16:43:52] INFO             ⛺️      312 total sites found in month of November
[2025-11-06 16:43:53] INFO     ⛺️ ⛺️ ⛺️ ⛺️ 312 Reservable Campsites Matching Search Preferences
[2025-11-06 16:43:53] INFO     📅 Fri, November 07 🏕  10 sites
[2025-11-06 16:43:53] INFO             ⛰️  Chino Hills SP  🏕  Rolling M. Ranch Campground: ⛺ 10 sites
[2025-11-06 16:43:53] INFO                     🔗 https://www.reservecalifornia.com/Web/Default.aspx#!park/627/439 (1 night)
[2025-11-06 16:43:53] INFO     📅 Sat, November 08 🏕  1 sites
[2025-11-06 16:43:53] INFO             ⛰️  Chino Hills SP  🏕  Rolling M. Ranch Campground: ⛺ 1 sites
[2025-11-06 16:43:53] INFO                     🔗 https://www.reservecalifornia.com/Web/Default.aspx#!park/627/439 (1 night)
[2025-11-06 16:43:53] INFO     📅 Sun, November 09 🏕  10 sites
[2025-11-06 16:43:53] INFO             ⛰️  Chino Hills SP  🏕  Rolling M. Ranch Campground: ⛺ 10 sites
[2025-11-06 16:43:53] INFO                     🔗 https://www.reservecalifornia.com/Web/Default.aspx#!park/627/439 (1 night)
[2025-11-06 16:43:53] INFO     📅 Mon, November 10 🏕  14 sites
[2025-11-06 16:43:53] INFO             ⛰️  Chino Hills SP  🏕  Rolling M. Ranch Campground: ⛺ 14 sites
[2025-11-06 16:43:53] INFO                     🔗 https://www.reservecalifornia.com/Web/Default.aspx#!park/627/439 (1 night)
[2025-11-06 16:43:53] INFO     📅 Tue, November 11 🏕  15 sites
[2025-11-06 16:43:53] INFO             ⛰️  Chino Hills SP  🏕  Rolling M. Ranch Campground: ⛺ 15 sites
[2025-11-06 16:43:53] INFO                     🔗 https://www.reservecalifornia.com/Web/Default.aspx#!park/627/439 (1 night)
[2025-11-06 16:43:53] INFO     📅 Wed, November 12 🏕  16 sites
[2025-11-06 16:43:53] INFO             ⛰️  Chino Hills SP  🏕  Rolling M. Ranch Campground: ⛺ 16 sites
[2025-11-06 16:43:53] INFO                     🔗 https://www.reservecalifornia.com/Web/Default.aspx#!park/627/439 (1 night)
[2025-11-06 16:43:53] INFO     📅 Thu, November 13 🏕  16 sites
[2025-11-06 16:43:53] INFO             ⛰️  Chino Hills SP  🏕  Rolling M. Ranch Campground: ⛺ 16 sites
[2025-11-06 16:43:53] INFO                     🔗 https://www.reservecalifornia.com/Web/Default.aspx#!park/627/439 (1 night)
[2025-11-06 16:43:53] INFO     📅 Fri, November 14 🏕  6 sites
[2025-11-06 16:43:53] INFO             ⛰️  Chino Hills SP  🏕  Rolling M. Ranch Campground: ⛺ 6 sites
[2025-11-06 16:43:53] INFO                     🔗 https://www.reservecalifornia.com/Web/Default.aspx#!park/627/439 (1 night)
[2025-11-06 16:43:53] INFO     📅 Sat, November 15 🏕  7 sites
[2025-11-06 16:43:53] INFO             ⛰️  Chino Hills SP  🏕  Rolling M. Ranch Campground: ⛺ 7 sites
[2025-11-06 16:43:53] INFO                     🔗 https://www.reservecalifornia.com/Web/Default.aspx#!park/627/439 (1 night)
[2025-11-06 16:43:53] INFO     📅 Sun, November 16 🏕  22 sites
[2025-11-06 16:43:53] INFO             ⛰️  Chino Hills SP  🏕  Rolling M. Ranch Campground: ⛺ 22 sites
[2025-11-06 16:43:53] INFO                     🔗 https://www.reservecalifornia.com/Web/Default.aspx#!park/627/439 (1 night)
[2025-11-06 16:43:53] INFO     📅 Mon, November 17 🏕  23 sites
[2025-11-06 16:43:53] INFO             ⛰️  Chino Hills SP  🏕  Rolling M. Ranch Campground: ⛺ 23 sites
[2025-11-06 16:43:53] INFO                     🔗 https://www.reservecalifornia.com/Web/Default.aspx#!park/627/439 (1 night)
[2025-11-06 16:43:53] INFO     📅 Tue, November 18 🏕  23 sites
[2025-11-06 16:43:53] INFO             ⛰️  Chino Hills SP  🏕  Rolling M. Ranch Campground: ⛺ 23 sites
[2025-11-06 16:43:53] INFO                     🔗 https://www.reservecalifornia.com/Web/Default.aspx#!park/627/439 (1 night)
[2025-11-06 16:43:53] INFO     📅 Wed, November 19 🏕  23 sites
[2025-11-06 16:43:53] INFO             ⛰️  Chino Hills SP  🏕  Rolling M. Ranch Campground: ⛺ 23 sites
[2025-11-06 16:43:53] INFO                     🔗 https://www.reservecalifornia.com/Web/Default.aspx#!park/627/439 (1 night)
[2025-11-06 16:43:53] INFO     📅 Thu, November 20 🏕  22 sites
[2025-11-06 16:43:53] INFO             ⛰️  Chino Hills SP  🏕  Rolling M. Ranch Campground: ⛺ 22 sites
[2025-11-06 16:43:53] INFO                     🔗 https://www.reservecalifornia.com/Web/Default.aspx#!park/627/439 (1 night)
[2025-11-06 16:43:53] INFO     📅 Fri, November 21 🏕  22 sites
[2025-11-06 16:43:53] INFO             ⛰️  Chino Hills SP  🏕  Rolling M. Ranch Campground: ⛺ 22 sites
[2025-11-06 16:43:53] INFO                     🔗 https://www.reservecalifornia.com/Web/Default.aspx#!park/627/439 (1 night)
[2025-11-06 16:43:53] INFO     📅 Sat, November 22 🏕  19 sites
[2025-11-06 16:43:53] INFO             ⛰️  Chino Hills SP  🏕  Rolling M. Ranch Campground: ⛺ 19 sites
[2025-11-06 16:43:53] INFO                     🔗 https://www.reservecalifornia.com/Web/Default.aspx#!park/627/439 (1 night)
[2025-11-06 16:43:53] INFO     📅 Sun, November 23 🏕  21 sites
[2025-11-06 16:43:53] INFO             ⛰️  Chino Hills SP  🏕  Rolling M. Ranch Campground: ⛺ 21 sites
[2025-11-06 16:43:53] INFO                     🔗 https://www.reservecalifornia.com/Web/Default.aspx#!park/627/439 (1 night)
[2025-11-06 16:43:53] INFO     📅 Mon, November 24 🏕  21 sites
[2025-11-06 16:43:53] INFO             ⛰️  Chino Hills SP  🏕  Rolling M. Ranch Campground: ⛺ 21 sites
[2025-11-06 16:43:53] INFO                     🔗 https://www.reservecalifornia.com/Web/Default.aspx#!park/627/439 (1 night)
[2025-11-06 16:43:53] INFO     📅 Tue, November 25 🏕  21 sites
[2025-11-06 16:43:53] INFO             ⛰️  Chino Hills SP  🏕  Rolling M. Ranch Campground: ⛺ 21 sites
[2025-11-06 16:43:53] INFO                     🔗 https://www.reservecalifornia.com/Web/Default.aspx#!park/627/439 (1 night)
[2025-11-06 16:43:53] CAMPLY   Exiting camply 👋

@juftin juftin requested a review from Copilot November 7, 2025 00:17
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR migrates the ReserveCalifornia provider to a new API domain and refactors URL path construction across all UseDirect provider variations. The old domain calirdr.usedirect.com is replaced with a new Tyler Technologies domain, and URL construction logic is updated to eliminate duplicate path segments.

  • Updated ReserveCalifornia base URL and set empty rdr_path for the new domain structure
  • Refactored URL construction by removing the extra slash between rdr_path and endpoint constants
  • Added trailing slashes to rdr_path for all other provider variations to maintain correct URL patterns

Reviewed Changes

Copilot reviewed 18 out of 18 changed files in this pull request and generated no comments.

Show a summary per file
File Description
camply/providers/usedirect/variations.py Updated ReserveCalifornia base_url to new domain and set rdr_path to empty string; added trailing slashes to rdr_path for all other providers
camply/providers/usedirect/usedirect.py Changed URL construction from {base_url}/{rdr_path}/{endpoint} to {base_url}/{rdr_path}{endpoint} and updated default rdr_path to include trailing slash
camply/containers/usedirect.py Updated example URL in docstring comment to reflect new California domain
tests/search_providers/cassettes/*.yaml Updated all test cassettes with new California API URLs
tests/cli/cassettes/*.yaml Updated CLI test cassettes with new California API URLs

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@jkfinplan
Copy link

Just tested your bugfix/reservecalifornia-tyler branch and it works great! Thanks for building that out. Here's what I tested:

Recreation Area Search:
camply --provider ReserveCalifornia recreation-areas --search "Pfeiffer"

✅ Found Julia Pfeiffer Burns SP (#661) and Pfeiffer Big Sur SP (#690)

Campground Listing:
camply --provider ReserveCalifornia campgrounds --rec-area 690

✅ Listed all 6 facilities (Day Use, Group Sites, South Camp, Main Camp, etc.)

Availability Search:
camply campsites --provider ReserveCalifornia --campground 611 --start-date 2025-11-20 --end-date 2025-11-22

✅ Found 69 available sites in South Camp

Email Notifications:
camply campsites --provider ReserveCalifornia --campground 611 --start-date 2025-11-20 --notifications email

✅ Emails sent successfully

@juftin juftin merged commit 483d6e5 into main Nov 7, 2025
13 checks passed
@juftin juftin deleted the bugfix/reservecalifornia-tyler branch November 7, 2025 19:10
juftin pushed a commit that referenced this pull request Nov 7, 2025
# [v0.33.1](v0.33.0...v0.33.1) (2025-11-07)

## 🐛 Bug Fixes
- [`483d6e5`](483d6e5)  ReserveCalifornia using TylerTechnolgies (Issues: [`#375`](#375))

[skip ci]
@juftin
Copy link
Owner Author

juftin commented Nov 7, 2025

🎉 This PR is included in version 0.33.1 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

@juftin juftin added the released label Nov 7, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants