Giter VIP home page Giter VIP logo

Comments (12)

aniketde avatar aniketde commented on July 17, 2024 1

Sorry for the delayed response! It is now stable and works!

The only issue now is that the script shows what's available but not what's cancelled and will be available at 8 am next day. Reserve California works differently compared to recreation.gov. When there are cancellations, the site is locked until 8am next day. It turns green/available at 8 am and stays green until someone books it. May be you just need to check for locked sites apart from green/available sites? Does this make sense?

P.S. Site could also be locked if the campground or campsite itself is closed.

Screenshot 2023-07-31 at 11 48 36 AM

from camply.

juftin avatar juftin commented on July 17, 2024

I'm not able to replicate your issue. Could you include the full output with the traceback?

camply --debug campsites \
    --provider ReserveCalifornia \
    --campground 641 \
    --start-date 2023-08-30 \
    --end-date 2023-09-01 \
    --nights 2 \
    --notifications pushover \
    --polling-interval 5 \
    --search-forever \
    --continuous
[2023-06-18 18:20:44] CAMPLY   camply, the campsite finder โ›บ๏ธ
[2023-06-18 18:20:44] DEBUG    Setting up camply debugging
[2023-06-18 18:20:44] DEBUG    Camply Version: 0.24.2
[2023-06-18 18:20:44] DEBUG    Python Version: 3.11.3
[2023-06-18 18:20:44] DEBUG    Platform: darwin
[2023-06-18 18:20:44] INFO     Using Camply Provider: "ReserveCalifornia"
[2023-06-18 18:20:44] INFO     2 booking nights selected for search, ranging from 2023-08-30 to 2023-08-31
[2023-06-18 18:20:44] INFO     Searching for availabilities with 2 consecutive night stays.
[2023-06-18 18:20:44] ERROR    No Campsites Found Matching Your Search Criteria
[2023-06-18 18:20:44] CAMPLY   Exiting camply ๐Ÿ‘‹

Your command is giving me a different output, it seems like ReserveCalifornia doesn't have a campground with ID # 641. Could you by chance be searching for Rec Area # 641 (Emerald Bay State Park) @aniketde ? When you change --campground to --rec-area your command works.

from camply.

aniketde avatar aniketde commented on July 17, 2024

I used the command you shared and I also tries it with rec-area. In both cases, I get the same error - KeyError: 'reservecalifornia'

Currently I have version 0.4.9 installed. Is there something else I should try?

Detailed error:

[2023-06-18 18:02:00] DEBUG Setting up camply debugging
[2023-06-18 18:02:00] DEBUG Camply Version: 0.4.9
[2023-06-18 18:02:00] DEBUG Python Version: 3.6.9
[2023-06-18 18:02:00] DEBUG Platform: linux
[2023-06-18 18:02:00] CAMPLY Exiting camply ๐Ÿ‘‹
โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ Traceback (most recent call last) โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ /home/user/.local/bin/camply:8 in โ”‚
โ”‚ โ”‚
โ”‚ 5 from camply.cli import cli โ”‚
โ”‚ 6 if name == 'main': โ”‚
โ”‚ 7 โ”‚ sys.argv[0] = re.sub(r'(-script.pyw|.exe)?$', '', sys.argv[0]) โ”‚
โ”‚ โฑ 8 โ”‚ sys.exit(cli()) โ”‚
โ”‚ 9 โ”‚
โ”‚ โ”‚
โ”‚ โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ locals โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ โ”‚
โ”‚ โ”‚ annotations = {} โ”‚ โ”‚
โ”‚ โ”‚ builtins = <module 'builtins' (built-in)> โ”‚ โ”‚
โ”‚ โ”‚ cached = None โ”‚ โ”‚
โ”‚ โ”‚ doc = None โ”‚ โ”‚
โ”‚ โ”‚ file = '/home/user/.local/bin/camply' โ”‚ โ”‚
โ”‚ โ”‚ loader = <_frozen_importlib_external.SourceFileLoader object at โ”‚ โ”‚
โ”‚ โ”‚ 0x7fa4e4f136a0> โ”‚ โ”‚
โ”‚ โ”‚ name = 'main' โ”‚ โ”‚
โ”‚ โ”‚ package = None โ”‚ โ”‚
โ”‚ โ”‚ spec = None โ”‚ โ”‚
โ”‚ โ”‚ cli = <function cli at 0x7fa4dd926e18> โ”‚ โ”‚
โ”‚ โ”‚ re = <module 're' from '/usr/lib/python3.6/re.py'> โ”‚ โ”‚
โ”‚ โ”‚ sys = <module 'sys' (built-in)> โ”‚ โ”‚
โ”‚ โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ โ”‚
โ”‚ โ”‚
โ”‚ /home/user/.local/pipx/venvs/camply/lib/python3.6/site-packages/camply/cli.py: โ”‚
โ”‚ 428 in cli โ”‚
โ”‚ โ”‚
โ”‚ 425 โ”‚ """ โ”‚
โ”‚ 426 โ”‚ try: โ”‚
โ”‚ 427 โ”‚ โ”‚ logger.camply("camply, the campsite finder โ›บ") # noqa โ”‚
โ”‚ โฑ 428 โ”‚ โ”‚ camply_command_line() โ”‚
โ”‚ 429 โ”‚ except KeyboardInterrupt: โ”‚
โ”‚ 430 โ”‚ โ”‚ logger.debug("Handling Exit Request") โ”‚
โ”‚ 431 โ”‚ finally: โ”‚
โ”‚ โ”‚
โ”‚ /home/user/.local/pipx/venvs/camply/lib/python3.6/site-packages/click/core.py: โ”‚
โ”‚ 1128 in call โ”‚
โ”‚ โ”‚
โ”‚ 1125 โ”‚ โ”‚
โ”‚ 1126 โ”‚ def call(self, *args: t.Any, **kwargs: t.Any) -> t.Any: โ”‚
โ”‚ 1127 โ”‚ โ”‚ """Alias for :meth:main.""" โ”‚
โ”‚ โฑ 1128 โ”‚ โ”‚ return self.main(*args, **kwargs) โ”‚
โ”‚ 1129 โ”‚
โ”‚ 1130 โ”‚
โ”‚ 1131 class Command(BaseCommand): โ”‚
โ”‚ โ”‚
โ”‚ โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ locals โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ โ”‚
โ”‚ โ”‚ args = () โ”‚ โ”‚
โ”‚ โ”‚ kwargs = {} โ”‚ โ”‚
โ”‚ โ”‚ self = โ”‚ โ”‚
โ”‚ โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ โ”‚
โ”‚ โ”‚
โ”‚ /home/user/.local/pipx/venvs/camply/lib/python3.6/site-packages/click/core.py: โ”‚
โ”‚ 1053 in main โ”‚
โ”‚ โ”‚
โ”‚ 1050 โ”‚ โ”‚ try: โ”‚
โ”‚ 1051 โ”‚ โ”‚ โ”‚ try: โ”‚
โ”‚ 1052 โ”‚ โ”‚ โ”‚ โ”‚ with self.make_context(prog_name, args, **extra) as ctx: โ”‚
โ”‚ โฑ 1053 โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ rv = self.invoke(ctx) โ”‚
โ”‚ 1054 โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ if not standalone_mode: โ”‚
โ”‚ 1055 โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ return rv โ”‚
โ”‚ 1056 โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ # it's not safe to ctx.exit(rv) here! โ”‚
โ”‚ โ”‚
โ”‚ โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ locals โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ โ”‚
โ”‚ โ”‚ args = [ โ”‚ โ”‚
โ”‚ โ”‚ โ”‚ 'campsites', โ”‚ โ”‚
โ”‚ โ”‚ โ”‚ '--provider', โ”‚ โ”‚
โ”‚ โ”‚ โ”‚ 'ReserveCalifornia', โ”‚ โ”‚
โ”‚ โ”‚ โ”‚ '--rec-area', โ”‚ โ”‚
โ”‚ โ”‚ โ”‚ '641', โ”‚ โ”‚
โ”‚ โ”‚ โ”‚ '--start-date', โ”‚ โ”‚
โ”‚ โ”‚ โ”‚ '2023-08-30', โ”‚ โ”‚
โ”‚ โ”‚ โ”‚ '--end-date', โ”‚ โ”‚
โ”‚ โ”‚ โ”‚ '2023-09-01', โ”‚ โ”‚
โ”‚ โ”‚ โ”‚ '--nights', โ”‚ โ”‚
โ”‚ โ”‚ โ”‚ ... +7 โ”‚ โ”‚
โ”‚ โ”‚ ] โ”‚ โ”‚
โ”‚ โ”‚ complete_var = None โ”‚ โ”‚
โ”‚ โ”‚ ctx = <click.core.Context object at 0x7fa4e4f13828> โ”‚ โ”‚
โ”‚ โ”‚ extra = {} โ”‚ โ”‚
โ”‚ โ”‚ prog_name = 'camply' โ”‚ โ”‚
โ”‚ โ”‚ self = โ”‚ โ”‚
โ”‚ โ”‚ standalone_mode = True โ”‚ โ”‚
โ”‚ โ”‚ windows_expand_args = True โ”‚ โ”‚
โ”‚ โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ โ”‚
โ”‚ โ”‚
โ”‚ /home/user/.local/pipx/venvs/camply/lib/python3.6/site-packages/click/core.py: โ”‚
โ”‚ 1659 in invoke โ”‚
โ”‚ โ”‚
โ”‚ 1656 โ”‚ โ”‚ โ”‚ โ”‚ super().invoke(ctx) โ”‚
โ”‚ 1657 โ”‚ โ”‚ โ”‚ โ”‚ sub_ctx = cmd.make_context(cmd_name, args, parent=ctx) โ”‚
โ”‚ 1658 โ”‚ โ”‚ โ”‚ โ”‚ with sub_ctx: โ”‚
โ”‚ โฑ 1659 โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ return _process_result(sub_ctx.command.invoke(sub_ctx โ”‚
โ”‚ 1660 โ”‚ โ”‚ โ”‚
โ”‚ 1661 โ”‚ โ”‚ # In chain mode we create the contexts step by step, but after th โ”‚
โ”‚ 1662 โ”‚ โ”‚ # base command has been invoked. Because at that point we do not โ”‚
โ”‚ โ”‚
โ”‚ โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ locals โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ โ”‚
โ”‚ โ”‚ class = <class 'click.core.MultiCommand'> โ”‚ โ”‚
โ”‚ โ”‚ _process_result = <function MultiCommand.invoke.._process_result at โ”‚ โ”‚
โ”‚ โ”‚ 0x7fa4e4fe4e18> โ”‚ โ”‚
โ”‚ โ”‚ args = [] โ”‚ โ”‚
โ”‚ โ”‚ cmd = โ”‚ โ”‚
โ”‚ โ”‚ cmd_name = 'campsites' โ”‚ โ”‚
โ”‚ โ”‚ ctx = <click.core.Context object at 0x7fa4e4f13828> โ”‚ โ”‚
โ”‚ โ”‚ self = โ”‚ โ”‚
โ”‚ โ”‚ sub_ctx = <click.core.Context object at 0x7fa4ddbf9ef0> โ”‚ โ”‚
โ”‚ โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ โ”‚
โ”‚ โ”‚
โ”‚ /home/user/.local/pipx/venvs/camply/lib/python3.6/site-packages/click/core.py: โ”‚
โ”‚ 1395 in invoke โ”‚
โ”‚ โ”‚
โ”‚ 1392 โ”‚ โ”‚ โ”‚ echo(style(message, fg="red"), err=True) โ”‚
โ”‚ 1393 โ”‚ โ”‚ โ”‚
โ”‚ 1394 โ”‚ โ”‚ if self.callback is not None: โ”‚
โ”‚ โฑ 1395 โ”‚ โ”‚ โ”‚ return ctx.invoke(self.callback, **ctx.params) โ”‚
โ”‚ 1396 โ”‚ โ”‚
โ”‚ 1397 โ”‚ def shell_complete(self, ctx: Context, incomplete: str) -> t.List["Co โ”‚
โ”‚ 1398 โ”‚ โ”‚ """Return a list of completions for the incomplete value. Looks โ”‚
โ”‚ โ”‚
โ”‚ โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ locals โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ โ”‚
โ”‚ โ”‚ ctx = <click.core.Context object at 0x7fa4ddbf9ef0> โ”‚ โ”‚
โ”‚ โ”‚ self = โ”‚ โ”‚
โ”‚ โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ โ”‚
โ”‚ โ”‚
โ”‚ /home/user/.local/pipx/venvs/camply/lib/python3.6/site-packages/click/core.py: โ”‚
โ”‚ 754 in invoke โ”‚
โ”‚ โ”‚
โ”‚ 751 โ”‚ โ”‚ โ”‚
โ”‚ 752 โ”‚ โ”‚ with augment_usage_errors(__self): โ”‚
โ”‚ 753 โ”‚ โ”‚ โ”‚ with ctx: โ”‚
โ”‚ โฑ 754 โ”‚ โ”‚ โ”‚ โ”‚ return __callback(*args, **kwargs) โ”‚
โ”‚ 755 โ”‚ โ”‚
โ”‚ 756 โ”‚ def forward( โ”‚
โ”‚ 757 โ”‚ โ”‚ __self, __cmd: "Command", *args: t.Any, **kwargs: t.Any # noqa: โ”‚
โ”‚ โ”‚
โ”‚ โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ locals โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ โ”‚
โ”‚ โ”‚ _Context__callback = <function campsites at 0x7fa4dd926ea0> โ”‚ โ”‚
โ”‚ โ”‚ _Context__self = <click.core.Context object at 0x7fa4ddbf9ef0> โ”‚ โ”‚
โ”‚ โ”‚ args = () โ”‚ โ”‚
โ”‚ โ”‚ ctx = <click.core.Context object at 0x7fa4ddbf9ef0> โ”‚ โ”‚
โ”‚ โ”‚ kwargs = { โ”‚ โ”‚
โ”‚ โ”‚ โ”‚ 'provider': 'ReserveCalifornia', โ”‚ โ”‚
โ”‚ โ”‚ โ”‚ 'rec_area': ('641',), โ”‚ โ”‚
โ”‚ โ”‚ โ”‚ 'start_date': '2023-08-30', โ”‚ โ”‚
โ”‚ โ”‚ โ”‚ 'end_date': '2023-09-01', โ”‚ โ”‚
โ”‚ โ”‚ โ”‚ 'nights': 2, โ”‚ โ”‚
โ”‚ โ”‚ โ”‚ 'notifications': ('pushover',), โ”‚ โ”‚
โ”‚ โ”‚ โ”‚ 'polling_interval': 5, โ”‚ โ”‚
โ”‚ โ”‚ โ”‚ 'search_forever': True, โ”‚ โ”‚
โ”‚ โ”‚ โ”‚ 'continuous': True, โ”‚ โ”‚
โ”‚ โ”‚ โ”‚ 'campground': (), โ”‚ โ”‚
โ”‚ โ”‚ โ”‚ ... +5 โ”‚ โ”‚
โ”‚ โ”‚ } โ”‚ โ”‚
โ”‚ โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ โ”‚
โ”‚ โ”‚
โ”‚ /home/user/.local/pipx/venvs/camply/lib/python3.6/site-packages/camply/cli.py: โ”‚
โ”‚ 417 in campsites โ”‚
โ”‚ โ”‚
โ”‚ 414 โ”‚ โ”‚ ) โ”‚
โ”‚ 415 โ”‚ provider_class = { โ”‚
โ”‚ 416 โ”‚ โ”‚ key.lower(): value for key, value in CAMPSITE_SEARCH_PROVIDER.item โ”‚
โ”‚ โฑ 417 โ”‚ }[provider.lower()] โ”‚
โ”‚ 418 โ”‚ camping_finder = provider_class(**provider_kwargs) โ”‚
โ”‚ 419 โ”‚ camping_finder.get_matching_campsites(**search_kwargs) โ”‚
โ”‚ 420 โ”‚
โ”‚ โ”‚
โ”‚ โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ locals โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ โ”‚
โ”‚ โ”‚ campground = () โ”‚ โ”‚
โ”‚ โ”‚ campsite = () โ”‚ โ”‚
โ”‚ โ”‚ continuous = True โ”‚ โ”‚
โ”‚ โ”‚ end_date = '2023-09-01' โ”‚ โ”‚
โ”‚ โ”‚ equipment = () โ”‚ โ”‚
โ”‚ โ”‚ nights = 2 โ”‚ โ”‚
โ”‚ โ”‚ notifications = ['pushover'] โ”‚ โ”‚
โ”‚ โ”‚ notify_first_try = False โ”‚ โ”‚
โ”‚ โ”‚ polling_interval = 5 โ”‚ โ”‚
โ”‚ โ”‚ provider = 'reservecalifornia' โ”‚ โ”‚
โ”‚ โ”‚ provider_kwargs = { โ”‚ โ”‚
โ”‚ โ”‚ โ”‚ 'search_window': โ”‚ โ”‚
โ”‚ โ”‚ SearchWindow(start_date=datetime.date(2023, 8, 30), โ”‚ โ”‚
โ”‚ โ”‚ end_date=datetime.date(2023, 9, 1)), โ”‚ โ”‚
โ”‚ โ”‚ โ”‚ 'recreation_area': ['641'], โ”‚ โ”‚
โ”‚ โ”‚ โ”‚ 'campgrounds': [], โ”‚ โ”‚
โ”‚ โ”‚ โ”‚ 'campsites': [], โ”‚ โ”‚
โ”‚ โ”‚ โ”‚ 'weekends_only': False, โ”‚ โ”‚
โ”‚ โ”‚ โ”‚ 'nights': 2, โ”‚ โ”‚
โ”‚ โ”‚ โ”‚ 'equipment': [] โ”‚ โ”‚
โ”‚ โ”‚ } โ”‚ โ”‚
โ”‚ โ”‚ rec_area = ('641',) โ”‚ โ”‚
โ”‚ โ”‚ search_forever = True โ”‚ โ”‚
โ”‚ โ”‚ search_kwargs = { โ”‚ โ”‚
โ”‚ โ”‚ โ”‚ 'log': True, โ”‚ โ”‚
โ”‚ โ”‚ โ”‚ 'verbose': True, โ”‚ โ”‚
โ”‚ โ”‚ โ”‚ 'continuous': True, โ”‚ โ”‚
โ”‚ โ”‚ โ”‚ 'polling_interval': 5.0, โ”‚ โ”‚
โ”‚ โ”‚ โ”‚ 'notify_first_try': False, โ”‚ โ”‚
โ”‚ โ”‚ โ”‚ 'notification_provider': ['pushover'], โ”‚ โ”‚
โ”‚ โ”‚ โ”‚ 'search_forever': True โ”‚ โ”‚
โ”‚ โ”‚ } โ”‚ โ”‚
โ”‚ โ”‚ search_window = SearchWindow(start_date=datetime.date(2023, 8, 30), โ”‚ โ”‚
โ”‚ โ”‚ end_date=datetime.date(2023, 9, 1)) โ”‚ โ”‚
โ”‚ โ”‚ start_date = '2023-08-30' โ”‚ โ”‚
โ”‚ โ”‚ weekends = False โ”‚ โ”‚
โ”‚ โ”‚ yml_config = None โ”‚ โ”‚
โ”‚ โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
KeyError: 'reservecalifornia'

from camply.

aniketde avatar aniketde commented on July 17, 2024

I am using Ubuntu 18.04.

It looks like most up to date version for camply is 0.24.2 but not sure why do I have 0.4.9
When I try pip install camply==0.24.2, I get the following error:

ERROR: Could not find a version that satisfies the requirement camply==0.24.2 (from versions: 0.1.0, 0.1.1, 0.1.2, 0.1.3, 0.1.4, 0.1.5, 0.1.6, 0.1.7, 0.1.8, 0.1.9, 0.1.10, 0.1.12, 0.1.13, 0.1.14, 0.1.15, 0.2.0, 0.2.1, 0.2.2, 0.2.3, 0.2.4, 0.3.0, 0.3.1, 0.4.0, 0.4.1, 0.4.2, 0.4.3, 0.4.4, 0.4.5, 0.4.6, 0.4.7, 0.4.8, 0.4.9)
ERROR: No matching distribution found for camply==0.24.2

from camply.

juftin avatar juftin commented on July 17, 2024

@aniketde you're using Python 3.6 which camply no longer supports since it was EOL'd back in 2021 - that's why PyPI isn't listing any recent versions of camply. Use Python 3.8 or greater to use the latest and greatest camply features.

I recommend pipx to manage the installation / virtualenv as well: https://pypa.github.io/pipx/

from camply.

aniketde avatar aniketde commented on July 17, 2024

Thank you! This resolves the issue. But reservecalifornia doesn't look stable. It works for sometime and then gives the following error:

/home/user/.local/lib/python3.8/site-packages/camply/search/base_search.py:574 in โ”‚
โ”‚ get_matching_campsites โ”‚
โ”‚ โ”‚
โ”‚ 571 โ”‚ โ”‚ """ โ”‚
โ”‚ 572 โ”‚ โ”‚ if continuous is True or search_once is True: โ”‚
โ”‚ 573 โ”‚ โ”‚ โ”‚ try: โ”‚
โ”‚ โฑ 574 โ”‚ โ”‚ โ”‚ โ”‚ self._search_campsites_continuous( โ”‚
โ”‚ 575 โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ log=log, โ”‚
โ”‚ 576 โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ verbose=verbose, โ”‚
โ”‚ 577 โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ polling_interval=polling_interval, โ”‚
โ”‚ โ”‚
โ”‚ /home/user/.local/lib/python3.8/site-packages/camply/search/base_search.py:508 in โ”‚
โ”‚ _search_campsites_continuous โ”‚
โ”‚ โ”‚
โ”‚ 505 โ”‚ โ”‚ continuous_search_attempts = 1 โ”‚
โ”‚ 506 โ”‚ โ”‚ while continuous_search is True: โ”‚
โ”‚ 507 โ”‚ โ”‚ โ”‚ starting_count = len(self.campsites_found) โ”‚
โ”‚ โฑ 508 โ”‚ โ”‚ โ”‚ self._continuous_search_retry( โ”‚
โ”‚ 509 โ”‚ โ”‚ โ”‚ โ”‚ log=log, โ”‚
โ”‚ 510 โ”‚ โ”‚ โ”‚ โ”‚ verbose=verbose, โ”‚
โ”‚ 511 โ”‚ โ”‚ โ”‚ โ”‚ polling_interval=polling_interval, โ”‚
โ”‚ โ”‚
โ”‚ /home/user/.local/lib/python3.8/site-packages/camply/search/base_search.py:354 in โ”‚
โ”‚ _continuous_search_retry โ”‚
โ”‚ โ”‚
โ”‚ 351 โ”‚ โ”‚ โ”‚ retry=tenacity.retry_if_exception_type(CampsiteNotFoundError), โ”‚
โ”‚ 352 โ”‚ โ”‚ โ”‚ wait=tenacity.wait.wait_fixed(int(polling_interval_minutes) * 60), โ”‚
โ”‚ 353 โ”‚ โ”‚ ) โ”‚
โ”‚ โฑ 354 โ”‚ โ”‚ matching_campsites = retryer.call( โ”‚
โ”‚ 355 โ”‚ โ”‚ โ”‚ fn=self._search_matching_campsites_available, โ”‚
โ”‚ 356 โ”‚ โ”‚ โ”‚ log=False, โ”‚
โ”‚ 357 โ”‚ โ”‚ โ”‚ verbose=False, โ”‚
โ”‚ โ”‚
โ”‚ /home/user/.local/lib/python3.8/site-packages/tenacity/init.py:379 in call โ”‚
โ”‚ โ”‚
โ”‚ 376 โ”‚ โ”‚ โ”‚
โ”‚ 377 โ”‚ โ”‚ retry_state = RetryCallState(retry_object=self, fn=fn, args=args, kwargs=kwargs) โ”‚
โ”‚ 378 โ”‚ โ”‚ while True: โ”‚
โ”‚ โฑ 379 โ”‚ โ”‚ โ”‚ do = self.iter(retry_state=retry_state) โ”‚
โ”‚ 380 โ”‚ โ”‚ โ”‚ if isinstance(do, DoAttempt): โ”‚
โ”‚ 381 โ”‚ โ”‚ โ”‚ โ”‚ try: โ”‚
โ”‚ 382 โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ result = fn(*args, **kwargs) โ”‚
โ”‚ โ”‚
โ”‚ /home/user/.local/lib/python3.8/site-packages/tenacity/init.py:314 in iter โ”‚
โ”‚ โ”‚
โ”‚ 311 โ”‚ โ”‚ โ”‚
โ”‚ 312 โ”‚ โ”‚ is_explicit_retry = fut.failed and isinstance(fut.exception(), TryAgain) โ”‚
โ”‚ 313 โ”‚ โ”‚ if not (is_explicit_retry or self.retry(retry_state)): โ”‚
โ”‚ โฑ 314 โ”‚ โ”‚ โ”‚ return fut.result() โ”‚
โ”‚ 315 โ”‚ โ”‚ โ”‚
โ”‚ 316 โ”‚ โ”‚ if self.after is not None: โ”‚
โ”‚ 317 โ”‚ โ”‚ โ”‚ self.after(retry_state) โ”‚
โ”‚ โ”‚
โ”‚ /usr/lib/python3.8/concurrent/futures/_base.py:437 in result โ”‚
โ”‚ โ”‚
โ”‚ 434 โ”‚ โ”‚ โ”‚ โ”‚ if self._state in [CANCELLED, CANCELLED_AND_NOTIFIED]: โ”‚
โ”‚ 435 โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ raise CancelledError() โ”‚
โ”‚ 436 โ”‚ โ”‚ โ”‚ โ”‚ elif self._state == FINISHED: โ”‚
โ”‚ โฑ 437 โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ return self.__get_result() โ”‚
โ”‚ 438 โ”‚ โ”‚ โ”‚ โ”‚ โ”‚
โ”‚ 439 โ”‚ โ”‚ โ”‚ โ”‚ self._condition.wait(timeout) โ”‚
โ”‚ 440 โ”‚
โ”‚ โ”‚
โ”‚ /usr/lib/python3.8/concurrent/futures/_base.py:389 in __get_result โ”‚
โ”‚ โ”‚
โ”‚ 386 โ”‚ def __get_result(self): โ”‚
โ”‚ 387 โ”‚ โ”‚ if self._exception: โ”‚
โ”‚ 388 โ”‚ โ”‚ โ”‚ try: โ”‚
โ”‚ โฑ 389 โ”‚ โ”‚ โ”‚ โ”‚ raise self._exception โ”‚
โ”‚ 390 โ”‚ โ”‚ โ”‚ finally: โ”‚
โ”‚ 391 โ”‚ โ”‚ โ”‚ โ”‚ # Break a reference cycle with the exception in self._exception โ”‚
โ”‚ 392 โ”‚ โ”‚ โ”‚ โ”‚ self = None โ”‚
โ”‚ โ”‚
โ”‚ /home/user/.local/lib/python3.8/site-packages/tenacity/init.py:382 in call โ”‚
โ”‚ โ”‚
โ”‚ 379 โ”‚ โ”‚ โ”‚ do = self.iter(retry_state=retry_state) โ”‚
โ”‚ 380 โ”‚ โ”‚ โ”‚ if isinstance(do, DoAttempt): โ”‚
โ”‚ 381 โ”‚ โ”‚ โ”‚ โ”‚ try: โ”‚
โ”‚ โฑ 382 โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ result = fn(*args, **kwargs) โ”‚
โ”‚ 383 โ”‚ โ”‚ โ”‚ โ”‚ except BaseException: # noqa: B902 โ”‚
โ”‚ 384 โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ retry_state.set_exception(sys.exc_info()) # type: ignore[arg-type] โ”‚
โ”‚ 385 โ”‚ โ”‚ โ”‚ โ”‚ else: โ”‚
โ”‚ โ”‚
โ”‚ /home/user/.local/lib/python3.8/site-packages/camply/search/base_search.py:246 in โ”‚
โ”‚ _search_matching_campsites_available โ”‚
โ”‚ โ”‚
โ”‚ 243 โ”‚ โ”‚ List[AvailableCampsite] โ”‚
โ”‚ 244 โ”‚ โ”‚ """ โ”‚
โ”‚ 245 โ”‚ โ”‚ matching_campgrounds = [] โ”‚
โ”‚ โฑ 246 โ”‚ โ”‚ for camp in self.get_all_campsites(): โ”‚
โ”‚ 247 โ”‚ โ”‚ โ”‚ if all( โ”‚
โ”‚ 248 โ”‚ โ”‚ โ”‚ โ”‚ [ โ”‚
โ”‚ 249 โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ self._compare_date_overlap(campsite=camp) is True, โ”‚
โ”‚ โ”‚
โ”‚ /home/user/.local/lib/python3.8/site-packages/camply/search/search_usedirect.py:139 in โ”‚
โ”‚ get_all_campsites โ”‚
โ”‚ โ”‚
โ”‚ 136 โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ f"{month.strftime('%B, %Y')}" โ”‚
โ”‚ 137 โ”‚ โ”‚ โ”‚ โ”‚ ) โ”‚
โ”‚ 138 โ”‚ โ”‚ โ”‚ โ”‚ end_date = month + relativedelta(months=1) - timedelta(days=1) โ”‚
โ”‚ โฑ 139 โ”‚ โ”‚ โ”‚ โ”‚ campsites = self.campsite_finder.get_campsites( โ”‚
โ”‚ 140 โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ campground_id=campground.facility_id, โ”‚
โ”‚ 141 โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ start_date=month, โ”‚
โ”‚ 142 โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ end_date=end_date, โ”‚
โ”‚ โ”‚
โ”‚ /home/user/.local/lib/python3.8/site-packages/camply/providers/usedirect/usedirect.py:388 in โ”‚
โ”‚ get_campsites โ”‚
โ”‚ โ”‚
โ”‚ 385 โ”‚ โ”‚ List[AvailableCampsite] โ”‚
โ”‚ 386 โ”‚ โ”‚ """ โ”‚
โ”‚ 387 โ”‚ โ”‚ self.refresh_metadata() โ”‚
โ”‚ โฑ 388 โ”‚ โ”‚ availability_response = self.get_campsites_response( โ”‚
โ”‚ 389 โ”‚ โ”‚ โ”‚ campground_id=campground_id, โ”‚
โ”‚ 390 โ”‚ โ”‚ โ”‚ start_date=start_date, โ”‚
โ”‚ 391 โ”‚ โ”‚ โ”‚ end_date=end_date, โ”‚
โ”‚ โ”‚
โ”‚ /home/user/.local/lib/python3.8/site-packages/ratelimit/decorators.py:113 in wrapper โ”‚
โ”‚ โ”‚
โ”‚ 110 โ”‚ โ”‚ ''' โ”‚
โ”‚ 111 โ”‚ โ”‚ while True: โ”‚
โ”‚ 112 โ”‚ โ”‚ โ”‚ try: โ”‚
โ”‚ โฑ 113 โ”‚ โ”‚ โ”‚ โ”‚ return func(*args, **kargs) โ”‚
โ”‚ 114 โ”‚ โ”‚ โ”‚ except RateLimitException as exception: โ”‚
โ”‚ 115 โ”‚ โ”‚ โ”‚ โ”‚ time.sleep(exception.period_remaining) โ”‚
โ”‚ 116 โ”‚ return wrapper โ”‚
โ”‚ โ”‚
โ”‚ /home/user/.local/lib/python3.8/site-packages/ratelimit/decorators.py:80 in wrapper โ”‚
โ”‚ โ”‚
โ”‚ 77 โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ raise RateLimitException('too many calls', period_remaining) โ”‚
โ”‚ 78 โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ return โ”‚
โ”‚ 79 โ”‚ โ”‚ โ”‚ โ”‚
โ”‚ โฑ 80 โ”‚ โ”‚ โ”‚ return func(*args, **kargs) โ”‚
โ”‚ 81 โ”‚ โ”‚ return wrapper โ”‚
โ”‚ 82 โ”‚ โ”‚
โ”‚ 83 โ”‚ def __period_remaining(self): โ”‚
โ”‚ โ”‚
โ”‚ /home/user/.local/lib/python3.8/site-packages/camply/providers/usedirect/usedirect.py:330 in โ”‚
โ”‚ get_campsites_response โ”‚
โ”‚ โ”‚
โ”‚ 327 โ”‚ โ”‚ response.raise_for_status() โ”‚
โ”‚ 328 โ”‚ โ”‚ response_json = response.json() โ”‚
โ”‚ 329 โ”‚ โ”‚ try: โ”‚
โ”‚ โฑ 330 โ”‚ โ”‚ โ”‚ return UseDirectAvailabilityResponse(**response.json()) โ”‚
โ”‚ 331 โ”‚ โ”‚ except ValidationError as e: โ”‚
โ”‚ 332 โ”‚ โ”‚ โ”‚ raise โ”‚
โ”‚ 333 โ”‚ โ”‚ โ”‚ error_message = ( โ”‚
โ”‚ โ”‚
โ”‚ in pydantic.main.BaseModel.init:341 โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
ValidationError: 3 validation errors for UseDirectAvailabilityResponse
Filters
none is not an allowed value (type=type_error.none.not_allowed)
Facility -> SeasonDates
none is not an allowed value (type=type_error.none.not_allowed)
Facility -> TrafficStatuses
none is not an allowed value (type=type_error.none.not_allowed)

The above exception was the direct cause of the following exception:

โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ Traceback (most recent call last) โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ /home/user/.local/bin/camply:8 in โ”‚
โ”‚ โ”‚
โ”‚ 5 from camply.cli import cli โ”‚
โ”‚ 6 if name == 'main': โ”‚
โ”‚ 7 โ”‚ sys.argv[0] = re.sub(r'(-script.pyw|.exe)?$', '', sys.argv[0]) โ”‚
โ”‚ โฑ 8 โ”‚ sys.exit(cli()) โ”‚
โ”‚ 9 โ”‚
โ”‚ โ”‚
โ”‚ /home/user/.local/lib/python3.8/site-packages/camply/cli.py:834 in cli โ”‚
โ”‚ โ”‚
โ”‚ 831 โ”‚ Camply Command Line Utility Wrapper โ”‚
โ”‚ 832 โ”‚ """ โ”‚
โ”‚ 833 โ”‚ try: โ”‚
โ”‚ โฑ 834 โ”‚ โ”‚ camply_command_line() โ”‚
โ”‚ 835 โ”‚ except KeyboardInterrupt: โ”‚
โ”‚ 836 โ”‚ โ”‚ logger.debug("Handling Exit Request") โ”‚
โ”‚ 837 โ”‚ finally:

from camply.

juftin avatar juftin commented on July 17, 2024

@aniketde try again, I just released a fix for that moments ago as part of a different issue actually. You'll need to upgrade camply, again ๐Ÿ™ƒ

from camply.

aniketde avatar aniketde commented on July 17, 2024

Thank you. I missed this comment. I tried the same thing again but it exists after checking once (does not search forever).

camply --debug campsites
--provider ReserveCalifornia
--campground 641
--start-date 2023-08-30
--end-date 2023-09-01
--nights 2
--notifications pushover
--polling-interval 5
--search-forever
--continuous

[2023-07-10 17:31:49] CAMPLY camply, the campsite finder โ›บ๏ธ
[2023-07-10 17:31:49] DEBUG Setting up camply debugging
[2023-07-10 17:31:49] DEBUG Camply Version: 0.27.0
[2023-07-10 17:31:49] DEBUG Python Version: 3.8.3
[2023-07-10 17:31:49] DEBUG Platform: linux
[2023-07-10 17:31:49] INFO Using Camply Provider: "ReserveCalifornia"
[2023-07-10 17:31:49] INFO 2 booking nights selected for search, ranging from 2023-08-30 to 2023-08-31
[2023-07-10 17:31:49] INFO Searching for availabilities with 2 consecutive night stays.
[2023-07-10 17:31:49] ERROR No Campsites Found Matching Your Search Criteria
[2023-07-10 17:31:49] CAMPLY Exiting camply ๐Ÿ‘‹

from camply.

juftin avatar juftin commented on July 17, 2024

Circling back to an earlier comment on this thread

it seems likeย ReserveCaliforniaย doesn't have a campground with ID # 641. Could you by chance be searching for Rec Area # 641 (Emerald Bay State Park)ย @aniketdeย ? When you changeย --campgroundย toย --rec-areaย your command works.

Let me know if that resolves it for you.

from camply.

aniketde avatar aniketde commented on July 17, 2024

I was able to run when I change --campground to --rec-area. It works :). I ran it overnight but the script fails after 5-6 hours. For example error was: "504 Server Error: Gateaway Time-out for url: https://calirdr.usedirect.com/rdr/rdr/search/grid". May be it's an issue from reservecalifornia side?

from camply.

juftin avatar juftin commented on July 17, 2024

Alright, camply wasn't actually handling server exit codes at all for UseDirect providers (ReserveCalifornia and more). I've released camply v0.29.0 which should make ReserveCalifornia a whole lot more reliable. When it encounters a server status code, like a 503 response, it will retry for up to 100 minutes using exponential backoff.

This should be good to go๐Ÿคž

from camply.

juftin avatar juftin commented on July 17, 2024

๐Ÿ‘€ any word on this? I'm thinking ReserveCalifornia is looking more resilient?

from camply.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.