{"id":29370911,"url":"https://github.com/nuung/auto-lotto-gitaction","last_synced_at":"2025-07-09T14:11:34.475Z","repository":{"id":170726577,"uuid":"646923071","full_name":"Nuung/auto-lotto-gitaction","owner":"Nuung","description":"2023.06) Buying the lottery automatically through GitHub Actions (only kr)","archived":false,"fork":false,"pushed_at":"2025-01-14T11:50:54.000Z","size":756,"stargazers_count":16,"open_issues_count":0,"forks_count":34,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-01-14T12:52:38.667Z","etag":null,"topics":["auto","lottery","playwright","python","selenium"],"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/Nuung.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-05-29T16:45:36.000Z","updated_at":"2025-01-14T11:50:58.000Z","dependencies_parsed_at":null,"dependency_job_id":"927f8a03-d0b2-44e2-966b-597b49861827","html_url":"https://github.com/Nuung/auto-lotto-gitaction","commit_stats":null,"previous_names":["nuung/auto-lotto-gitaction"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Nuung/auto-lotto-gitaction","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nuung%2Fauto-lotto-gitaction","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nuung%2Fauto-lotto-gitaction/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nuung%2Fauto-lotto-gitaction/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nuung%2Fauto-lotto-gitaction/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Nuung","download_url":"https://codeload.github.com/Nuung/auto-lotto-gitaction/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nuung%2Fauto-lotto-gitaction/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264473897,"owners_count":23613961,"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":["auto","lottery","playwright","python","selenium"],"created_at":"2025-07-09T14:11:33.510Z","updated_at":"2025-07-09T14:11:34.468Z","avatar_url":"https://github.com/Nuung.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Lotto Buy Bot (로또 구매봇)](https://github.com/Nuung/auto-lotto-gitaction/actions/workflows/action.yml/badge.svg?branch=main)](https://github.com/Nuung/auto-lotto-gitaction/actions/workflows/action.yml)\n\n[![Check The Result Of Lotto (로또 결과봇)](https://github.com/Nuung/auto-lotto-gitaction/actions/workflows/action-result.yml/badge.svg?branch=main)](https://github.com/Nuung/auto-lotto-gitaction/actions/workflows/action-result.yml)\n\n# Buying the lottery automatically through GitHub Actions\n\n\u003e **_매주 토요일 KST 08:50 에 동행 복권 로또 구매_** \u003cbr/\u003e \u003e **_매주 토요일 KST 21:50 에 동행 복권 로또 결과 slack hooking_**\n\n- https://dhlottery.co.kr/ 동행복권 홈페이지\n- https://velog.io/@king/githubactions-lotto 원작자분 벨로그입니다!\n  - 해당 레포는 원작 소스 코드 기반으로 `(1)public` 하게 사용할 수 있게,\n  - `(2) slack hook (optional)`\n  - `(3) 결과 check`\n  - `(4) 기타 편의 기능`\n  - 정도 추가 되었습니다.\n- public 으로 공유할 수 있게 모든 민감 정보 action secrets 값으로 관리\n- slack bot을 통해 slack noti (hook) 전달함\n- **_예치금 필요합니다._**\n\n## UPDATE LOG\n\n- [x] 발표난 당첨 번호와 자동 비교 work flow 추가 ~~[23.06.03]~~\n- [x] 랜덤으로 구매한 복권 번호, 우선 최대 5개 까지만, 번호 noti work flow 추가 ~~[23.06.25]~~\n- [x] 구매한 복권 당첨 여부 가져오기 ~~[23.07.09]~~\n- [x] result parsing issue 에서 retry 추가 ~~[24.02.24]~~\n- [x] 특정 이슈는 slack을 통해서 빠르게 핸들링 할 수 있게 템플릿 ~~[24.02.24]~~\n- [x] 구매한 번호 체크하는 페이지 변동, POST 로 API 스펙이 바뀜, 대응 개발 ~~[24.05.11]~~\n- [ ] 보너스 번호를 일반 번호와 같게 판단하는 경우 처리\n\n---\n\n## GETTING START\n\n#### 1. `fork`를 한다!\n\n#### 2. `fork`한 repo를 `git clone` 한다.\n\n#### 3. slack bot 세팅은 아래 글 참조, 사용하지 않는다면 그냥 주석처리해도 된다.\n\n- https://yunwoong.tistory.com/129 최신글 참고 추천!\n- slack python SDK를 사용하는 것이 아니라 restAPI Http call을 한다.\n\n#### 4. `action.yml` 파일을 보면 gitaction 시크릿값을 python run 인자로 넘길때 사용하고 있다. 즉 시크릿값만 세팅하면 된다.\n\n![](./imgs/img1.png)\n\n#### 5. 시크릿값은 아래 사진 참고\n\n![](./imgs/img2.png)\n\n- `SLACK_BOT_TOKEN` 은 `xoxb` 로 시작하는, bot OAuth token값이다.\n- `SLACK_CHANNEL` 값은 추가한 slack bot을 초대한 그 채널값이 필요하다. 이게 채널ID 값이거나 채널이름 (#이 안붙은) 값이면 된다.\n- `BUY_COUNT` 가 구매할 복권 수 세팅 값이다.\n- 그 외 user값은 https://dhlottery.co.kr/common.do?method=main 여기 회원가입한 정보를 넣자. **_절대 절대 절대 노출 안되게 조심_**\n\n#### 6. 위 세팅 완료 후 test를 위해 `action.yml` 에서 `on: [push]` 로 바꾸고 push를 해보자\n\n![](./imgs/img3.png)\n\n- 러닝할 때 구매가능 여부 부터 체크 해야한다! 구매 가능한 시간대가 아니라면 Timeout error가 날 수 있다.\n\n#### 7. `action-result.yml` 은 이제 발표된 추첨 번호를 slack을 통해 전달해준다. 20시 35분경 발표가 나는 점, 업데이트가 나중에 되는점을 참작해 21시 50분경에 러닝하게 했다.\n\n![](./imgs/img4.png)\n\n- 당첨 하이라이팅을 제대로 하고 싶으나, 당첨 히스토리가 없어서 만들지 못하고 있다..\n\n## To develop something more in the local\n\n1. 가상환경 구성을 추천한다. 편한대로 구성하면 된다, ex. `python3 -m venv .venv`\n2. `requirements.txt` file을 install 한다.\n3. `playwright install` 를 해준다. 기본 준비 끝 - https://playwright.dev/\n4. 디버깅 모드 셀레니움이 익숙한 사람은 그렇게 사용해도 무방하다.\n\n## STACK\n\n- python\n  - python 3.8+\n  - Playwright \u0026 selenium (chrome driver)\n  - requests\n- lint: flask8 \u0026 black\n- github action (action.yml)\n\n---\n\n## LOG \u0026 ISSUE\n\n![](./imgs/img-get-1.png)\n\n- `23.08.12` 대박,, 5등 당첨! 감격!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnuung%2Fauto-lotto-gitaction","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnuung%2Fauto-lotto-gitaction","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnuung%2Fauto-lotto-gitaction/lists"}