Для устранения неполадок и уведомлений о выпусках присоединяйтесь к дискорду!
PayPal:
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
Слабая настройка
Настройка Дискорда
Настройка Героку
Частные лиги
Устранение неполадок/Часто задаваемые вопросы
Приступаем к разработке и тестированию
Установка для разработки
Переменные среды
Запуск с Docker
Запуск без Docker
Запуск тестов
Все это выглядит слишком сложным и запутанным? Не знаете, что такое «Хероку»? Рассмотрите возможность посещения https://www.GameDayBot.com/, где я предлагаю услуги хостинга и делаю все возможное, чтобы свести к минимуму сложность.
Не размещайте двух одинаковых ботов в одном чате. В общем, вы должны позволить своему комиссару выполнить настройку.
Перейдите на www.groupme.com и зарегистрируйтесь или войдите в систему.
Если у вас еще нет чата для вашей лиги, создайте новый «Групповой чат».
Далее мы настроим бота для GroupMe.
Перейдите на https://dev.groupme.com/session/new и войдите в систему.
Нажмите «Создать бота».
Создайте своего бота. GroupMe хорошо объясняет, что представляет собой каждая вещь.
После того, как вы создали своего бота, вы увидите нечто похожее на это. Нажмите «Изменить»
Эта страница важна, так как вам понадобится «Идентификатор бота» на этой странице. Вы также можете отправить тестовое сообщение с текстовым полем, чтобы убедиться, что оно подключено к вашей комнате чата. Примечание: если вы используете идентификатор бота, указанный на странице, вы будете спамить пустой чат, поэтому усилия не стоят того.
Перейдите на https://slack.com/signin и войдите в рабочую область, в которой будет находиться бот.
Если у вас еще нет канала для вашей лиги, создайте новый канал лиги.
Далее мы настроим бота для Slack.
Перейдите на https://api.slack.com/apps/new.
Назовите приложение и выберите необходимое рабочее пространство из раскрывающегося списка.
Выберите раздел «Входящие веб-перехватчики» сбоку.
Измените положение переключателя с «Выкл.» на «Вкл.».
Выберите «Добавить новый вебхук в рабочую область».
В раскрывающемся списке «Опубликовать в» выберите канал, на который вы хотите отправлять сообщения, затем выберите «Авторизовать».
Эта страница важна, так как вам понадобится «URL-адрес веб-перехватчика» на этой странице.
Войдите или создайте учетную запись Discord
Перейдите на сервер Discord или создайте его, чтобы получать сообщения в
Откройте настройки сервера
Перейти к вебхукам
Создайте вебхук, дайте ему имя и выберите, в каком канале получать сообщения.
Сохраните «URL-адрес веб-перехватчика» на этой странице.
«28 ноября 2022 года Heroku прекратила предлагать бесплатные планы продуктов»
Я предлагаю услуги хостинга, которые стоят намного дешевле, чем новая стоимость Heroku на https://www.GameDayBot.com/.
Перейдите на https://id.heroku.com/login и зарегистрируйтесь или войдите.
Нажмите эту фиолетовую кнопку, чтобы автоматически развернуть код:
Перейдите на свою панель управления (https://dashboard.heroku.com/apps). Теперь вам нужно будет настроить переменные среды так, чтобы они работали для вашей лиги. Нажмите «Настройки» на панели управления. Затем нажмите кнопку «Показать переменные конфигурации», и вы увидите что-то вроде этого.
Теперь нам нужно будет отредактировать эти переменные (щелкните карандаш справа от переменной, чтобы изменить ее). Примечание. Приложение перезапустится, когда вы измените любую переменную, поэтому ваш чат может быть частично засыпан начальным сообщением «Привет», вы можете измените переменную INIT_MSG, чтобы она была пустой, чтобы не было сообщения инициализации. Следует также отметить, что Heroku перезапускает приложение примерно раз в день.
См. документацию в разделе «Переменные среды».
После того, как вы настроили переменные, вам нужно будет включить их. Перейдите на вкладку «Ресурсы» на панели управления приложения Heroku. Вы должны увидеть что-то вроде ниже. Нажмите на карандаш справа и переключите кнопку, чтобы она стала синей, как показано на рисунке, и нажмите «Подтвердить».
Все готово! Теперь у вас есть полнофункциональный чат-бот GroupMe/Slack/Discord для лиг ESPN! Если у вас есть INIT_MSG, вы увидите его в чате GroupMe, Discord или Slack.
К сожалению, для автоматического развертывания последней версии вам необходим доступ администратора к репозиторию на git. Вы можете проверить наличие обновлений на странице github (https://github.com/dtcarls/fantasy_football_chat_bot/commits/master) и снова нажать кнопку развертывания; однако при этом будет развернут новый экземпляр, и переменные придется редактировать снова.
Эти инструкции позволят вам запустить копию проекта на вашем локальном компьютере для целей разработки и тестирования.
С Докером:
git clone https://github.com/dtcarls/fantasy_football_chat_botcd fantasy_football_chat_bot docker build -tFantasy_football_chat_bot.
Без Докера:
git clone https://github.com/dtcarls/fantasy_football_chat_botcd fantasy_football_chat_bot pip install -r require.txt# или#python3 setup.py install
Вар | Тип | Необходимый | По умолчанию | Описание |
---|---|---|---|---|
БОТ_ИД | Нить | Для GroupMe | Никто | Это ваш идентификатор бота со страницы разработчиков GroupMe. |
SLACK_WEBHOOK_URL | Нить | Для слабины | Никто | Это URL-адрес вашего веб-перехватчика со страницы приложения Slack. |
DISCORD_WEBHOOK_URL | Нить | Для раздора | Никто | Это URL-адрес вашего вебхука со страницы настроек Discord. |
LEAGUE_ID | Нить | Да | Никто | Это ваш идентификатор лиги ESPN |
ДАТА НАЧАЛА | Дата | Да | Начало текущего сезона (ГГГГ-ММ-ДД) | Именно тогда бот начнет обращать внимание и отправлять сообщения в ваш чат. |
END_DATE | Дата | Да | Конец текущего сезона (ГГГГ-ММ-ДД) | Это когда бот перестанет обращать внимание и перестанет отправлять сообщения в ваш чат. |
LEAGUE_YEAR | Нить | Да | Текущий год (ГГГГ) | Год Лиги ESPN, на который стоит обратить внимание |
ЧАСОВОЙ ПОЯС | Нить | Да | Америка/Нью_Йорк | Часовой пояс, в который будут отправляться сообщения. |
ИНИТ_МСГ | Нить | Нет | Никто | Сообщение, которое скажет бот при запуске. |
TOP_HALF_SCORING | Бул | Нет | ЛОЖЬ | Если установлено значение True, когда турнирная таблица публикуется в среду, это также будет включать в себя попадание в верхнюю половину вашей лиги по очкам, и вы получите за это дополнительную «победу». |
RANDOM_PHRASE | Бул | Нет | ЛОЖЬ | Если установлено значение True, когда матчи публикуются во вторник, они также будут включать случайную фразу. |
МОНИТОР_ОТЧЕТ | Бул | Нет | ЛОЖЬ | Если установлено значение True, будет предоставлен отчет об игроках в стартовом составе, которые являются сомнительными, сомнительными, выбывшими или прогнозируемыми менее чем на 4 очка. |
ОТКАЗ_ОТЧЕТ | Бул | Нет | ЛОЖЬ | Если установлено значение True, будет предоставлен отчет об отказе от добавления/удаления. |
DAILY_WAIVER | Бул | Нет | ЛОЖЬ | Если установлено значение True, будет ежедневно предоставляться отчет об отказе от добавления/удаления. |
ESPN_S2 | Нить | Для частных лиг | Никто | Используется для частных лиг. См. документацию в разделе «Частные лиги». |
СВИД | Нить | Для частных лиг | Никто | Используется для частных лиг. (Можно определить с {} или без него). См. документацию в разделе «Частные лиги». |
Используйте BOT_ID, если используете Groupme, DISCORD_WEBHOOK_URL, если используете Discord, и SLACK_WEBHOOK_URL, если используете Slack (или несколько, чтобы получать сообщения в нескольких местах).
>>> Export BOT_ID=[введите идентификатор своего бота GroupMe] >>> экспорт WEBHOOK_URL=[введите URL-адрес вебхука] >>> экспортировать LEAGUE_ID=[введите идентификатор лиги ESPN] >>> экспортировать LEAGUE_YEAR=[введите год лиги] >>> cd Fantasy_football_chat_bot >>> запуск докера --rm=True -e BOT_ID=$BOT_ID -e LEAGUE_ID=$LEAGUE_ID -e LEAGUE_YEAR=$LEAGUE_YEAR Fantasy_football_chat_bot
Используйте BOT_ID, если используете Groupme, DISCORD_WEBHOOK_URL, если используете Discord, и SLACK_WEBHOOK_URL, если используете Slack (или несколько, чтобы получать сообщения в нескольких местах).
>>> Export BOT_ID=[введите идентификатор своего бота GroupMe] >>> Export WEBHOOK_URL=[введите URL-адрес вебхука] >>> экспортировать LEAGUE_ID=[введите идентификатор лиги ESPN] >>> экспортировать LEAGUE_YEAR=[введите год лиги] >>> python3 gamedaybot/espn/espn_bot.py
Автоматические тесты для этого пакета включены в каталог tests
. После установки вы можете запустить эти тесты, изменив каталог на каталог gamedaybot
и выполнив следующую команду:
pip install -r требования-test.txtpytest
Для частной лиги вам понадобится swid и espn_s2. Вы можете найти эти два значения после входа в свою учетную запись espn фэнтези-футбола на веб-сайте espn. (Браузер Chrome) Щелкните правой кнопкой мыши в любом месте веб-сайта и выберите опцию «Проверить». Оттуда нажмите «Приложение» на верхней панели. Слева в разделе «Хранилище» нажмите «Файлы cookie», затем http://fantasy.espn.com. Оттуда вы сможете найти переменные и значения swid и espn_s2.
Лига должна быть заполнена.
Бот не работает
Вы пропустили какой-то шаг в инструкции? Попробуйте сделать это с нуля еще раз. Если по-прежнему не получается, откройте проблему (https://github.com/dtcarls/fantasy_football_chat_bot/issues) или зайдите в дискорд (ссылка вверху файла readme), чтобы поделиться ответом с другими.
Как рассчитываются ранги власти?
Они рассчитываются с учетом двухступенчатого доминирования, а также комбинации набранных очков и перевеса на победу. Вес 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) показывает, сколько дополнительных побед за сезон было получено за победу в первой половине матча.