{"id":19310994,"url":"https://github.com/a0s/inpol-checker","last_synced_at":"2025-04-12T11:16:39.393Z","repository":{"id":146415085,"uuid":"609519433","full_name":"a0s/inpol-checker","owner":"a0s","description":"Check slots at inpol.mazowieckie.pl","archived":false,"fork":false,"pushed_at":"2023-03-04T15:23:42.000Z","size":16,"stargazers_count":6,"open_issues_count":0,"forks_count":4,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-12T11:16:32.844Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/a0s.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2023-03-04T12:29:45.000Z","updated_at":"2024-03-13T18:13:23.000Z","dependencies_parsed_at":"2023-03-25T14:17:46.894Z","dependency_job_id":null,"html_url":"https://github.com/a0s/inpol-checker","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a0s%2Finpol-checker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a0s%2Finpol-checker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a0s%2Finpol-checker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a0s%2Finpol-checker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/a0s","download_url":"https://codeload.github.com/a0s/inpol-checker/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248557847,"owners_count":21124168,"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":"2024-11-10T00:27:17.824Z","updated_at":"2025-04-12T11:16:39.368Z","avatar_url":"https://github.com/a0s.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🥬 inpol-checker\n\nThis checks [Inpol](https://inpol.mazowieckie.pl)'s slots for you, uses Telegram bot for notification when slot is found.\nEach pass includes checking all three offices. The script clicks all active dates. \nIf there are signs of the existence of unoccupied slots (I don't know the exact xpath of the slots), it sends a message to the telegram bot.\nAfter checking, the script waits for a time interval, which may jitter randomly.\n\n## 🥑 Parameters\n\n- `EMAIL` (required) - login at inpol\n- `PASSWORD` (required) - password at inpol\n- `CASE_ID` (required) - case id at inpol, can be obtained from url at case's page\n- `MONTHS_TO_CHECK` (optional) - count of months to check for enabled dates, default: `5`\n- `LOG_LEVEL` (optional) - log level, one of standard DEBUG, INFO, etc.., default: `INFO`\n- `TELEGRAM_TOKEN` (optional) - telegram bot's token, create new bot with [@BotFather](https://t.me/BotFather), send initial message in advance\n- `TELEGRAM_CHAT_ID` (optional) - your chat id, obtain it with [@get_id_bot](https://t.me/get_id_bot)\n- `PROXY_SERVER` (optional) - path to http proxy, e.g. http://login:pass@address:port\n- `SLEEP_INTERVAL` (optional) - Sleep interval, default: `15m`\n- `SLEEP_INTERVAL_JITTER` (optional) - Sleep interval jitter, default: `3m`\n\n\n## 🌽 Native Run\n\nI recommend use [pyenv with direnv](https://www.google.com/search?q=how+to+use+pyenv+with+direnv) for manage environments.\n\nThe script requires installed chromedriver (`brew install chromedriver` on mac)\n\n```shell\npip install -r requirements.txt\nEMAIL=... PASSWORD=... CASE_ID=... python run_staged_multi_loop_wh.py\n```\n\n## 🥥 Run in Docker\n\nCreate .env file with parameters:\n\n```\nEMAIL=...\nPASSWORD=...\nCASE_ID=...\n```\n\nThen run with docker compose:\n\n```shell\ndocker compose up --remove-orphans\n```\n\nWhile its running you could connect into with any VNC viewer. Connect to `localhost:5900` with password `password`.\n\n## 🫑 TODO\n\n- [ ] add anticaptcha\n\n## 🥒 Similar projects\n\n- https://github.com/apopelyshev/inpol-bot \n- https://github.com/nerf-qh/inpol-reservation\n- https://github.com/bademux/inpol-bot\n- https://github.com/nickovchinnikov/inpol.mazowieckie_appointment_pl\n\n##  🧅 License\n\n```\n ███▄ ▄███▓ ██▓▄▄▄█████▓\n▓██▒▀█▀ ██▒▓██▒▓  ██▒ ▓▒\n▓██    ▓██░▒██▒▒ ▓██░ ▒░\n▒██    ▒██ ░██░░ ▓██▓ ░ \n▒██▒   ░██▒░██░  ▒██▒ ░ \n░ ▒░   ░  ░░▓    ▒ ░░   \n░  ░      ░ ▒ ░    ░    \n░      ░    ▒ ░  ░      \n       ░    ░           \n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fa0s%2Finpol-checker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fa0s%2Finpol-checker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fa0s%2Finpol-checker/lists"}