如需疑难解答和发布通知,请加入不和谐!
贝宝:
比特币: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) 告诉您上半区胜利在整个赛季中增加了多少场胜利。