{"id":18519717,"url":"https://github.com/fedebotu/k-trains","last_synced_at":"2025-10-14T04:30:48.895Z","repository":{"id":108871265,"uuid":"581177092","full_name":"fedebotu/k-trains","owner":"fedebotu","description":"An app for automatically reserving trains in Korea - both Korail and SRT - even when sold out","archived":false,"fork":false,"pushed_at":"2024-08-02T00:32:45.000Z","size":134,"stargazers_count":58,"open_issues_count":5,"forks_count":28,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-06T23:34:20.252Z","etag":null,"topics":["bot","korail","korea","ktx","python","reservation","scripts","srt","streamlit","trains"],"latest_commit_sha":null,"homepage":"https://k-trains.streamlit.app","language":"Python","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/fedebotu.png","metadata":{"files":{"readme":"README-KR.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}},"created_at":"2022-12-22T13:29:58.000Z","updated_at":"2025-02-28T00:33:33.000Z","dependencies_parsed_at":null,"dependency_job_id":"fb04ff98-91c1-458e-8cab-92703b6612b6","html_url":"https://github.com/fedebotu/k-trains","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/fedebotu/k-trains","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedebotu%2Fk-trains","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedebotu%2Fk-trains/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedebotu%2Fk-trains/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedebotu%2Fk-trains/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fedebotu","download_url":"https://codeload.github.com/fedebotu/k-trains/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedebotu%2Fk-trains/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279017942,"owners_count":26086213,"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","status":"online","status_checked_at":"2025-10-14T02:00:06.444Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["bot","korail","korea","ktx","python","reservation","scripts","srt","streamlit","trains"],"created_at":"2024-11-06T17:17:09.945Z","updated_at":"2025-10-14T04:30:48.625Z","avatar_url":"https://github.com/fedebotu.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# K-Trains 🇰🇷-🚄\n\n\n\n [![Streamlit App](https://static.streamlit.io/badges/streamlit_badge_red.svg)](https://k-trains.streamlit.app)[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)[![python_sup](https://img.shields.io/badge/python-3.7+-blue.svg?)](https://www.python.org/downloads/release/python-370/)\n\n\u003cbr\u003e\n\u003ccenter\u003e\n\u003cimg src=\"assets/ktrains.png\" alt=\"K-Trains\" width=\"300\"/\u003e\n\u003c/center\u003e\n\u003cbr\u003e\n\u003cbr\u003e\n\u003c/div\u003e\n\n\u003e English version [here](README.md)\n\n_SRT가 예약이 가득 차서 수서역으로 티켓이 없으신가요? 아니면 이미 매진된 저렴한 무궁화 티켓 때문에 고민하고 계신가요? K-Trains가 도와드리겠습니다!_\n\nK-Trains는 [Korail](https://www.letskorail.com/)과 [SRT](https://etk.srail.kr/)의 API에 연결하여 한국의 기차 정보를 얻고 예약하는 Streamlit 앱입니다.\n\n\n\n## 사용 방법\n\n### 웹 UI\nStreamlit에서 앱을 실행하려면 [여기](https://k-trains.streamlit.app/)를 클릭하세요. UI는 자기 설명적이므로 로그인하고 알림을 받거나 직접 예약하고 싶은 기차를 선택하기만 하면 됩니다. 가능하지 않다면 앱이 사용 가능할 때 알려주고 당신을 위해 예약합니다!\n\n_티켓에 대한 비용은 Korail 또는 SRT 웹사이트/앱에서 시간 내에 지불해야 합니다._\n\n그럼에도 불구하고 수동으로 새로 고침하고 누군가가 티켓을 먼저 예약하지 않을 것이라고 기대하는 것보다는 나을 것입니다 ;)\n\n### 수동 배포\n\n이 응용 프로그램은 Python에서 웹 GUI를 허용하는 [Streamlit](https://streamlit.io/)를 기반으로 합니다. 로컬에서 애플리케이션을 실행하려면 다음 명령을 실행하세요:\n\n```bash\nstreamlit run app.py\n```\n\n웹 브라우저가 자동으로 열려 애플리케이션과 상호 작용할 수 있습니다. 그렇지 않으면 브라우저를 수동으로 열고 http://localhost:8501로 이동할 수 있습니다.\n\n또한 직접 티켓을 예약하기 위해 스크립트를 실행할 수도 있습니다:\n\n```bash\npython reserve.py [OPTIONS]\n```\n\n### 비밀 및 이메일 API 연결\n앱은 이메일 계정 API(특히 Google)에 연결됩니다. 앱을 스스로 배포하려면 다음과 같은 메시지가 표시될 수 있습니다:\n\n```bash\nFileNotFoundError: No secrets files found. Valid paths for a secrets.toml file are: C:\\Users\\nyancat.streamlit\\secrets.toml\n```\n자체 secrets.toml 파일을 관리하기 위해 이 가이드를 따를 수 있습니다. Gmail을 사용하지 않는 경우 email_notify 함수를 수정해야 합니다. 특히 이 줄에서입니다.\n\n## 고지\n개발자는 이 애플리케이션의 오용에 대해 책임지지 않습니다. 이 애플리케이션은 교육 목적으로만 사용됩니다. 자기 책임하에 사용하세요!\n\n## 스크린샷\n\u003cdiv align=\"center\"\u003e\n\u003cbr\u003e\n\u003ccenter\u003e\n\u003cimg src=\"https://github.com/fedebotu/k-trains/assets/48984123/55ec2078-1034-4e95-b5e2-d15de8478107\" alt=\"k-train-email\"/\u003e\n\u003c/center\u003e\n\u003cbr\u003e\n\u003c/div\u003e\n\n\n## 감사의 말\n이 프로젝트는 다음 라이브러리 덕분에 가능했습니다:\n\nKorail: https://github.com/carpedm20/korail2\n\nSRT: https://github.com/ryanking13/SRT\n\n### 피드백\n피드백이 있다면 문제를 제기하거나 pull request를 열어주세요!","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffedebotu%2Fk-trains","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffedebotu%2Fk-trains","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffedebotu%2Fk-trains/lists"}