문제 해결 및 릴리스 알림을 받으려면 Discord에 참여하세요!
페이팔:
BTC: bc1q3wxm269mdmwdqjqkxgt7s5zp8ah05dexdua0zv
ETH: 0x8c096710e3621fe5f8E384efBd17D8E3E798Dc0c (Cryptik.eth)
총독: D6n2g2KGdqEwR4MhhT7uAdvZFaTwqwd6rS
벤모: @dtcarls
이 저장소는 GroupMe, Discord 또는 Slack 채팅 봇을 실행하여 ESPN Fantasy Football 정보를 GroupMe, Discord 또는 Slack 채팅방으로 보냅니다.
이것은 무엇을 합니까?
일정 링크: https://www.gamedaybot.com/message-schedule/
이 일정에 따라 다음 메시지를 보냅니다.
점수 마감 - 월 - 18시 30분 동해안 시간 (월요일 밤 경기 중 주의할 점은 서로 16점 이내인 경기)
점수판 - 월,화,금 - 현지 시간 7:30(현재 ESPN 판타지 점수판)
트로피 - 화요일 - 현지 시간 7시 30분(높은 점수, 낮은 점수, 가장 큰 승리, 가장 가까운 승리)
파워랭킹 - 화 - 18:30 현지시간
현재 순위 - 수요일 - 현지 시간 7:30
면제 신고 - 수요일 - 현지 시간 7시 30분
매치업 - 목요일 - 19:30 동부 해안 시간(향후 매치업)
모니터링할 선수 보고서 - 일요일 - 현지 시간 7시 30분(의심스럽거나 의심스럽거나 아웃된 선발 라인업의 선수)
점수판 - 일요일 - 16:00, 20:00 동부 해안 시간(현재 ESPN 판타지 점수판)
GroupMe, Discord 또는 Slack 설정 및 Heroku에 앱 배포
GroupMe 설정
슬랙 설정
디스코드 설정
헤로쿠 설정
프라이빗 리그
문제 해결/FAQ
개발 및 테스트 시작하기
개발을 위한 설치
환경 변수
도커로 실행하기
도커 없이 실행하기
테스트 실행
이 모든 것이 너무 복잡하고 혼란스러워 보이죠? "Heroku"가 무엇인지 모르시나요? 제가 호스팅 서비스를 제공하고 복잡성을 최소화하기 위해 최선을 다하는 https://www.GameDayBot.com/을 확인해 보세요.
동일한 채팅에 동일한 봇 2개를 배포하지 마세요. 일반적으로 위원에게 설정 작업을 맡겨야 합니다.
www.groupme.com으로 이동하여 회원가입 또는 로그인하세요.
리그에 아직 없는 경우 새 "그룹 채팅"을 만드세요.
다음으로 GroupMe용 봇을 설정하겠습니다.
https://dev.groupme.com/session/new로 이동하여 로그인하세요.
"봇 생성"을 클릭하세요.
봇을 만드세요. GroupMe는 각 항목이 무엇인지 잘 설명합니다.
봇을 만든 후에는 이와 유사한 내용을 볼 수 있습니다. "편집"을 클릭하세요
이 페이지에는 "Bot ID"가 필요하므로 중요합니다. 텍스트 상자가 포함된 테스트 메시지를 보내 채팅방에 연결되어 있는지 확인할 수도 있습니다. 참고 사항: 페이지에 표시된 봇 ID를 사용하면 빈 채팅방에 스팸을 보내게 되므로 노력할 가치가 없습니다.
https://slack.com/signin으로 이동하여 봇이 있을 작업 공간에 로그인하세요.
아직 리그에 채널이 없다면 새 리그 채널을 만드세요.
다음으로 Slack용 봇을 설정하겠습니다.
https://api.slack.com/apps/new로 이동하세요.
앱 이름을 지정하고 드롭다운에서 원하는 작업 공간을 선택합니다.
측면에서 Incoming Webhooks 섹션을 선택합니다.
토글을 끄기에서 켜기로 변경합니다.
작업공간에 새 웹훅 추가를 선택합니다.
게시 대상 드롭다운에서 메시지를 보내려는 채널을 선택한 다음 승인을 선택합니다.
이 페이지에는 "웹훅 URL"이 필요하므로 이 페이지가 중요합니다.
디스코드 계정에 로그인하거나 생성하세요
메시지를 받으려면 디스코드 서버로 이동하거나 생성하세요.
서버 설정을 엽니다
웹훅으로 이동
웹후크를 생성하고 이름을 지정한 후 메시지를 수신할 채널을 선택하세요.
이 페이지에 "웹훅 URL"을 저장하세요.
"2022년 11월 28일, Heroku는 무료 제품 요금제 제공을 중단했습니다."
https://www.GameDayBot.com/에서 Heroku의 새로운 비용보다 훨씬 저렴한 호스팅 서비스를 제공합니다.
https://id.heroku.com/login으로 이동하여 회원가입 또는 로그인
코드를 자동으로 배포하려면 이 보라색 버튼을 클릭하세요.
대시보드(https://dashboard.heroku.com/apps)로 이동합니다. 이제 리그에 맞게 작동하도록 환경 변수를 설정해야 합니다. 대시보드에서 설정을 클릭하세요. 그런 다음 "구성 변수 표시" 버튼을 클릭하면 다음과 같은 내용이 표시됩니다.
이제 이러한 변수를 편집해야 합니다. (수정하려면 변수 오른쪽에 있는 연필을 클릭하십시오.) 참고: 변수를 변경하면 앱이 다시 시작되므로 채팅방에 "안녕하세요"라는 초기화 메시지가 포함된 반 스팸 메시지가 표시될 수 있습니다. 초기화 메시지가 없도록 INIT_MSG 변수를 공백으로 변경하십시오. Heroku는 하루에 한 번씩 앱을 다시 시작하는 것 같습니다.
문서는 환경 변수 섹션을 참조하세요.
변수를 설정한 후에는 이를 켜야 합니다. Heroku 앱 대시보드의 "리소스" 탭으로 이동하세요. 아래와 같은 내용이 표시됩니다. 오른쪽에 있는 연필을 클릭하고 버튼을 전환하여 그림과 같이 파란색이 되도록 한 다음 "확인"을 클릭하세요.
이제 끝났습니다! 이제 ESPN 리그를 위한 모든 기능을 갖춘 GroupMe/Slack/Discord 채팅 봇이 생겼습니다! INIT_MSG가 있으면 GroupMe, Discord 또는 Slack 채팅방에서 느낌표가 표시되는 것을 볼 수 있습니다.
안타깝게도 최신 버전을 자동 배포하려면 git의 저장소에 대한 관리자 액세스 권한이 필요합니다. github 페이지(https://github.com/dtcarls/fantasy_football_chat_bot/commits/master)에서 업데이트를 확인하고 배포 버튼을 다시 클릭할 수 있습니다. 그러나 이렇게 하면 새 인스턴스가 배포되므로 변수를 다시 편집해야 합니다.
이 지침은 개발 및 테스트 목적으로 로컬 컴퓨터에서 프로젝트 사본을 시작하고 실행하는 데 도움이 됩니다.
도커를 사용하면:
자식 클론 https://github.com/dtcarls/fantasy_football_chat_botcd Fantasy_football_chat_bot docker build -t Fantasy_football_chat_bot .
도커 없이:
자식 클론 https://github.com/dtcarls/fantasy_football_chat_botcd Fantasy_football_chat_bot pip install -r 요구사항.txt# 또는#python3 setup.py install
바르 | 유형 | 필수의 | 기본 | 설명 |
---|---|---|---|---|
BOT_ID | 끈 | 그룹미의 경우 | 없음 | GroupMe 개발자 페이지의 봇 ID입니다. |
SLACK_WEBHOOK_URL | 끈 | 슬랙용 | 없음 | Slack 앱 페이지의 웹훅 URL입니다. |
DISCORD_WEBHOOK_URL | 끈 | 불화를 위해 | 없음 | Discord 설정 페이지의 웹훅 URL입니다. |
LEAGUE_ID | 끈 | 예 | 없음 | ESPN 리그 ID입니다. |
START_DATE | 날짜 | 예 | 현재 시즌 시작(YYYY-MM-DD) | 이때 봇이 주의를 기울이고 채팅에 메시지를 보내기 시작합니다. |
END_DATE | 날짜 | 예 | 현재 시즌 종료(YYYY-MM-DD) | 이때 봇은 주의를 기울이지 않고 채팅에 메시지 보내기를 중단합니다. |
LEAGUE_YEAR | 끈 | 예 | 현재 연도(YYYY) | ESPN 리그에서 살펴봐야 할 연도 |
시간대 | 끈 | 예 | 미국/New_York | 메시지가 전송될 것으로 예상되는 시간대입니다. |
INIT_MSG | 끈 | 아니요 | 없음 | 봇이 시작될 때 말할 메시지입니다. |
TOP_HALF_SCORING | 부울 | 아니요 | 거짓 | True로 설정하면 수요일에 순위가 게시될 때 리그 점수 상위권에 포함되며 추가 "승리"를 받게 됩니다. |
RANDOM_PHRASE | 부울 | 아니요 | 거짓 | True로 설정하면 화요일에 매치업이 게시될 때 무작위 문구도 포함됩니다. |
모니터_보고 | 부울 | 아니요 | 거짓 | True로 설정하면 의심스럽거나 의심스럽거나 아웃되거나 4점 미만으로 예상되는 선발 라인업의 플레이어에 대한 보고서를 제공합니다. |
WAIVER_REPORT | 부울 | 아니요 | 거짓 | True로 설정하면 추가/삭제에 대한 면제 보고서가 제공됩니다. |
DAILY_WAIVER | 부울 | 아니요 | 거짓 | True로 설정하면 매일 추가/삭제에 대한 면제 보고서가 제공됩니다. |
ESPN_S2 | 끈 | 프라이빗 리그의 경우 | 없음 | 프라이빗 리그에 사용됩니다. 문서는 프라이빗 리그 섹션을 참조하세요. |
SWID | 끈 | 프라이빗 리그의 경우 | 없음 | 프라이빗 리그에 사용됩니다. ({}를 사용하거나 사용하지 않고 정의할 수 있음) 문서는 프라이빗 리그 섹션을 참조하세요. |
Groupme를 사용하는 경우 BOT_ID를 사용하고 Discord를 사용하는 경우 DISCORD_WEBHOOK_URL을 사용하고 Slack을 사용하는 경우 SLACK_WEBHOOK_URL을 사용합니다(또는 여러 위치에서 메시지를 받으려면 여러 개 사용).
>>> BOT_ID 내보내기=[GroupMe 봇 ID 입력] >>> WEBHOOK_URL 내보내기=[웹훅 URL 입력] >>> LEAGUE_ID 내보내기=[ESPN 리그 ID 입력] >>> LEAGUE_YEAR=[리그 연도 입력] 내보내기 >>> CD Fantasy_football_chat_bot >>> docker run --rm=True -e BOT_ID=$BOT_ID -e LEAGUE_ID=$LEAGUE_ID -e LEAGUE_YEAR=$LEAGUE_YEAR Fantasy_football_chat_bot
Groupme를 사용하는 경우 BOT_ID를 사용하고 Discord를 사용하는 경우 DISCORD_WEBHOOK_URL을 사용하고 Slack을 사용하는 경우 SLACK_WEBHOOK_URL을 사용합니다(또는 여러 위치에서 메시지를 받으려면 여러 개 사용).
>>> BOT_ID 내보내기=[GroupMe 봇 ID 입력] >>> WEBHOOK_URL 내보내기=[웹훅 URL 입력] >>> LEAGUE_ID 내보내기=[ESPN 리그 ID 입력] >>> LEAGUE_YEAR=[리그 연도 입력] 내보내기 >>> python3 gamedaybot/espn/espn_bot.py
이 패키지에 대한 자동화된 테스트는 tests
디렉터리에 포함되어 있습니다. 설치 후 디렉터리를 gamedaybot
디렉터리로 변경하고 다음을 실행하여 이러한 테스트를 실행할 수 있습니다.
pip 설치 -r 요구사항-test.txtpytest
개인 리그의 경우 swid와 espn_s2가 필요합니다. espn 웹사이트에서 espn Fantasy Football 계정에 로그인한 후 이 두 값을 찾을 수 있습니다. (크롬 브라우저) 웹사이트 아무 곳이나 마우스 오른쪽 버튼으로 클릭한 후 검사 옵션을 클릭하세요. 상단 표시줄에서 애플리케이션을 클릭하세요. 왼쪽 저장소 섹션 아래에서 쿠키를 클릭한 다음 http://fantasy.espn.com을 클릭하세요. 여기에서 swid 및 espn_s2 변수와 값을 찾을 수 있습니다.
리그가 가득 차 있어야 합니다.
봇이 작동하지 않습니다
지침에서 한 단계를 놓치셨나요? 처음부터 다시 시도해 보세요. 그래도 운이 좋지 않다면 이슈(https://github.com/dtcarls/fantasy_football_chat_bot/issues)를 열거나 디스코드(readme 상단에 있는 링크)에 들어가서 답변을 다른 사람들과 공유할 수 있습니다.
파워 랭크는 어떻게 계산되나요?
이는 2단계 지배력과 득점한 점수 및 승리 마진의 조합을 사용하여 계산됩니다. 가중치는 각각 80/15/5입니다. 나는 실제 숫자보다는 팀 간의 격차에 더 많은 관심을 기울일 것입니다. 계산의 전체 소스는 https://github.com/cwendt94/espn-api/pull/12/files에서 볼 수 있습니다. 지배 행렬에 대한 튜토리얼을 원한다면: https://www.youtube.com/watch?v=784TmwaHPOw
Yahoo/CBS/NFL/[다른 사이트 삽입]용 버전이 있나요?
아니요, 다른 사이트에 대한 상당한 재작업이 필요합니다.
다른 시간대를 어떻게 설정하나요?
변수를 지정하십시오 https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List
Messenger/WhatsApp/[다른 채팅 삽입]용 버전이 있나요?
아니요. 하지만 추가적인 크로스 플랫폼 지원을 위해 API를 구현하는 풀 요청에 열려 있습니다.
내 순위가 잘못된 것 같습니다. 거기에 이상한 (+1)이 있습니다.
TOP_HALF_SCORING: True로 설정하면 수요일에 순위가 게시될 때 상위 절반 득점 승리도 포함됩니다.
상위 절반 승리는 리그 상위 절반에 해당하는 포인트이며 추가 "승리"를 받습니다. 괄호 안의 숫자(+1)는 시즌 동안 전반전 승리에 대해 추가 승리 횟수를 나타냅니다.