This bot books restaurant reservations via Resy. Use it to snipe reservations at your favorite restaurant!
Set up a scheduled val to call it like this:
import { resyBot }
from "https://esm.town/v/stevekrouse/resyBot?v=2";
import { email }
from "https://esm.town/v/std/email?v=13";
export default async function (
interval: Interval) {
const bookingInfo =
await resyBot( {
slug:
'amaro-bar',
city:
'ldn',
day:
'2023-07-05',
start:
'19:00',
end:
'21:00',
partySize:
2,
email:
Deno.
env.
get(
"resyEmail"),
password:
Deno.
env.
get(
"resyPassword"),
})
await email({
text: bookingInfo,
subject:
'resy bot made a booking for you!' })
}
This val makes the same requests that your browser would make when you reserve a slot on Resy (that's why it needs your login info – to request an auth token).
When there isn't a matching slot, this val errors and nothing else happens.
When a booking is available, this val books it and returns a description of the booking so you can email it to yourself (Resy will also email you).
This val will then stop attempting bookings for you until you change one of the arguments you're passing (it concats the non-sensitive arguments and uses this as a key).
Credit to @rlesser and @alp for their existing Resy vals (search for resy
on here).