{"id":28841014,"url":"https://github.com/hfroot/titre-de-sejour","last_synced_at":"2025-07-16T05:32:57.550Z","repository":{"id":92073105,"uuid":"418802575","full_name":"hfroot/titre-de-sejour","owner":"hfroot","description":null,"archived":false,"fork":false,"pushed_at":"2021-10-19T06:44:32.000Z","size":128,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-19T15:52:50.874Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hfroot.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-10-19T06:44:18.000Z","updated_at":"2023-04-14T11:46:46.000Z","dependencies_parsed_at":null,"dependency_job_id":"ca68a3f3-f851-4d2f-bbfb-543e6af0ad53","html_url":"https://github.com/hfroot/titre-de-sejour","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hfroot/titre-de-sejour","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hfroot%2Ftitre-de-sejour","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hfroot%2Ftitre-de-sejour/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hfroot%2Ftitre-de-sejour/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hfroot%2Ftitre-de-sejour/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hfroot","download_url":"https://codeload.github.com/hfroot/titre-de-sejour/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hfroot%2Ftitre-de-sejour/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265484811,"owners_count":23774402,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-19T15:42:44.375Z","updated_at":"2025-07-16T05:32:57.534Z","avatar_url":"https://github.com/hfroot.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Availability checker\n\n## Context\n\nOnce your titre de séjour is ready, you have to book an appointment from your local préfecture to pick it up. \n\n## The problem\n\nI found the website of my local préfecture frustrating to use because it is slow and the form is structured such that to check all availability you need to make around 20 clicks\\*. You may also encounter a 503. The new appointments are not released on a schedule, so I was advised to check the website randomly a few times a day for as many days as it might take for my luck to come through. As a developer I have developed a (healthy?) distate of repetitive tasks so I thought: why not automate this?\n\n\\* The clicks involved:\n1. agreeing to some terms\n2. choosing 1 'desk' out of 8 to check the availability of\n3. discovering there is no availability at the chosen desk, being redirected to step 1.\n\n## The solution\n\nThis script uses a front end testing tool, Playwright, to click through all the options and confirms availability or lack thereof in the console.\n\nI considered creating a Twitter account and run this script a couple times a day automatically to inform others when there are available appointments, but I did not get accepted for a developer account.\n\nI would've automated running it personally if necessary, but managed to get an appointment after a few times of using it.\n\n### The details\n\nThe script clicks through the site and prints to the console the status of each desk. If it encounters a 503, it cuts the program, to be run at a later time.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhfroot%2Ftitre-de-sejour","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhfroot%2Ftitre-de-sejour","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhfroot%2Ftitre-de-sejour/lists"}