如需疑難排解和發布通知,請加入不和諧!
貝寶:
比特幣:bc1q3wxm269mdmwdqjqkxgt7s5zp8ah05dexdua0zv
以太坊: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 設定
鬆弛設定
不和諧設定
Heroku 設定
私人聯賽
故障排除/常見問題解答
開發和測試入門
安裝用於開發
環境變數
使用 Docker 運行
不使用 Docker 運行
運行測試
這一切看起來太複雜、太令人困惑?不知道什麼是「Heroku」?考慮查看 https://www.GameDayBot.com/,我提供託管服務,並盡力最大程度地降低複雜性。
請勿在同一聊天中部署 2 個相同的機器人。一般來說,您應該讓您的專員進行設置
請造訪 www.groupme.com 並註冊或登入
如果您的聯盟還沒有,請建立一個新的“群聊”
接下來我們將為 GroupMe 設定機器人
前往 https://dev.groupme.com/session/new 並登入
點擊“創建機器人”
創建您的機器人。 GroupMe 很好地解釋了每件事是什麼。
創建機器人後,您將看到類似的內容。點選“編輯”
此頁面很重要,因為您需要此頁面上的「機器人 ID」。附註:如果您使用頁面中描述的機器人 ID,您將向空的聊天室發送垃圾郵件,因此不值得付出努力
前往 https://slack.com/signin 並登入機器人所在的工作區
如果您的聯盟還沒有聯賽頻道,請建立一個新的聯賽頻道
接下來我們將為 Slack 設定機器人
前往 https://api.slack.com/apps/new
為應用程式命名,然後從下拉清單中選擇所需的工作區。
選擇側面的傳入 Webhooks 部分。
將開關從關更改為開。
選擇將新 Webhook 新增至工作區
在「發佈到」下拉清單中,選擇要將訊息傳送到的頻道,然後選擇「授權」。
此頁面很重要,因為您將需要此頁面上的「Webhook URL」。
登入或建立一個discord帳戶
轉到或建立一個discord伺服器來接收訊息
開啟伺服器設定
前往網路鉤子
建立一個 webhook,為其命名並選擇接收訊息的通道
儲存此頁面上的“Webhook URL”
“2022 年 11 月 28 日,Heroku 停止提供免費產品方案”
我提供的託管服務遠低於 Heroku 的新成本:https://www.GameDayBot.com/
前往 https://id.heroku.com/login 並註冊或登入
點擊這個紫色按鈕自動部署程式碼:
前往您的儀表板 (https://dashboard.heroku.com/apps) 現在您需要設定環境變量,以便它適用於您的聯盟。點選儀表板上的“設定”。然後點擊“Reveal Config Vars”按鈕,您將看到類似這樣的內容。
現在我們需要編輯這些變數(點擊變數右側的鉛筆進行修改)注意:當您更改任何變數時,應用程式將重新啟動,因此您的聊天室可能會收到「Hi」初始化訊息的半垃圾郵件,您可以將 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)上檢查更新,然後再次點擊部署按鈕;但是,這將部署一個新實例,並且需要再次編輯變數。
這些說明將為您提供在本機電腦上啟動並執行的專案副本,以用於開發和測試目的。
使用 Docker:
git 克隆 https://github.com/dtcarls/fantasy_football_chat_botcd Fantasy_football_chat_bot docker build -t Fantasy_football_chat_bot 。
沒有 Docker:
git 克隆 https://github.com/dtcarls/fantasy_football_chat_botcd Fantasy_football_chat_bot pip install -r requests.txt# 或#python3 setup.py install
瓦爾 | 類型 | 必需的 | 預設 | 描述 |
---|---|---|---|---|
機器人ID | 細繩 | 對於 GroupMe | 沒有任何 | 這是您在 GroupMe 開發者頁面上的 Bot ID |
SLACK_WEBHOOK_URL | 細繩 | 對於鬆弛 | 沒有任何 | 這是 Slack 應用程式頁面中的 Webhook URL |
DISCORD_WEBHOOK_URL | 細繩 | 為了不和諧 | 沒有任何 | 這是您在 Discord 設定頁面中的 Webhook URL |
LEAGUE_ID | 細繩 | 是的 | 沒有任何 | 這是您的 ESPN 聯盟 ID |
START_DATE | 日期 | 是的 | 本季開始 (YYYY-MM-DD) | 此時機器人將開始關注您的聊天並向您發送訊息。 |
END_DATE | 日期 | 是的 | 本季結束 (YYYY-MM-DD) | 此時機器人將停止注意並停止向您的聊天室發送訊息。 |
LEAGUE_YEAR | 細繩 | 是的 | 當年 (YYYY) | ESPN 聯盟今年值得關注 |
時區 | 細繩 | 是的 | 美洲/紐約 | 訊息將發送的時區。 |
初始化_MSG | 細繩 | 不 | 沒有任何 | 機器人啟動時會發出的訊息。 |
TOP_HALF_SCORING | 布林 | 不 | 錯誤的 | 如果設定為 True,在周三發布積分榜時,還將包括在積分榜上排名前半的位置,並且您將因此獲得額外的「勝利」。 |
隨機短語 | 布林 | 不 | 錯誤的 | 如果設定為 True,當週二發布比賽時,它還將包含一個隨機短語 |
監控報告 | 布林 | 不 | 錯誤的 | 如果設定為 True,將提供先發陣容中可疑、可疑、出局或預計得分低於 4 分的球員的報告 |
豁免報告 | 布林 | 不 | 錯誤的 | 如果設定為 True,將提供新增/刪除的豁免報告。 |
每日豁免 | 布林 | 不 | 錯誤的 | 如果設定為 True,將提供每日新增/刪除的豁免報告。 |
ESPN_S2 | 細繩 | 對於私人聯賽 | 沒有任何 | 用於私人聯賽。請參閱私人聯盟部分以取得文檔 |
SWID | 細繩 | 對於私人聯賽 | 沒有任何 | 用於私人聯賽。 (可以使用或不使用 {} 進行定義)有關文檔,請參閱私人聯賽部分 |
如果使用 Groupme,則使用 BOT_ID;如果使用 Discord,則使用 DISCORD_WEBHOOK_URL;如果使用 Slack,則使用 SLACK_WEBHOOK_URL(或多個以在多個位置取得訊息)
>>> 匯出 BOT_ID=[輸入您的 GroupMe 機器人 ID] >>> export WEBHOOK_URL=[輸入您的 Webhook URL] >>> export LEAGUE_ID=[輸入 ESPN 聯賽 ID] >>> export 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] >>> export WEBHOOK_URL=[輸入您的 Webhook URL] >>> export LEAGUE_ID=[輸入 ESPN 聯賽 ID] >>> export LEAGUE_YEAR=[輸入聯賽年份] >>> python3 gamedaybot/espn/espn_bot.py
此套件的自動化測試包含在tests
目錄中。安裝後,您可以透過將目錄變更為gamedaybot
目錄並執行以下命令來執行這些測試:
pip install -r 需求-test.txtpytest
對於私人聯賽,您需要取得 swid 和 espn_s2。您可以在 espn 網站上登入您的 espn Fantasy Football 帳戶後找到這兩個值。 (Chrome 瀏覽器)右鍵點選網站上的任意位置,然後按一下檢查選項。從那裡單擊頂部欄上的應用程式。在左側的儲存部分下,按一下 Cookie,然後按一下 http://fantasy.espn.com。從那裡您應該能夠找到 swid 和 espn_s2 變數和值。
聯賽必須滿員。
機器人無法運作
您是否錯過了說明中的某個步驟?再次嘗試從頭開始。如果仍然沒有運氣,請打開一個問題(https://github.com/dtcarls/fantasy_football_chat_bot/issues)或跳入不和諧(自述文件頂部的連結),以便可以與其他人分享答案。
實力排名是如何計算的?
它們是使用 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) 告訴您上半區勝利在整個賽季中增加了多少場勝利。