Para solução de problemas e notificações de lançamento, entre no discord!
PayPal:
BTC: bc1q3wxm269mdmwdqjqkxgt7s5zp8ah05dexdua0zv
ETH: 0x8c096710e3621fe5f8E384efBd17D8E3E798Dc0c (Cryptik.eth)
DOGE: D6n2g2KGdqEwR4MhhT7uAdvZFaTwqwd6rS
Venmo: @dtcarls
Este repositório executa um bot de bate-papo GroupMe, Discord ou Slack para enviar informações do ESPN Fantasy Football para uma sala de bate-papo GroupMe, Discord ou Slack.
O que isso faz?
Link da programação: https://www.gamedaybot.com/message-schedule/
Envia as seguintes mensagens nesta programação:
Placares próximos - Seg - 18h30, horário da costa leste (jogos que estão a 16 pontos um do outro para ficar de olho durante o jogo de segunda à noite)
Placar - Seg, Ter, Sex - 7h30 horário local (placar de fantasia atual da ESPN)
Troféus - Terça - 7h30 horário local (pontuação mais alta, pontuação mais baixa, maior vitória, vitória mais próxima)
Classificações de poder - Terça - 18h30 horário local
Classificação atual - Quarta - 7h30 horário local
Relatório de isenção - Quarta - 7h30 horário local
Combates - Qui - 19h30 horário da costa leste (Próximos confrontos)
Relatório de jogadores a serem monitorados - domingo - 7h30 horário local (jogadores na escalação inicial que estão questionáveis, duvidosos ou fora)
Placar - Dom - 16h00, 20h00 horário da costa leste (placar de fantasia atual da ESPN)
Configurando GroupMe, Discord ou Slack e implantando aplicativo no Heroku
Configuração do GrupoMe
Configuração do Slack
Configuração de discórdia
Configuração do Heroku
Ligas Privadas
Solução de problemas/Perguntas frequentes
Introdução ao desenvolvimento e teste
Instalando para desenvolvimento
Variáveis de ambiente
Executando com Docker
Executando sem Docker
Executando os testes
Tudo isso parece muito complicado e confuso? Não sabe o que é um "Heroku"? Considere verificar https://www.GameDayBot.com/ onde ofereço um serviço de hospedagem e faço o meu melhor para minimizar a complexidade.
Não implante 2 bots iguais no mesmo chat. Em geral, você deve deixar seu comissário fazer a configuração
Acesse www.groupme.com e cadastre-se ou faça login
Se você ainda não tem um para sua liga, crie um novo "Chat de Grupo"
A seguir vamos configurar o bot para GroupMe
Vá para https://dev.groupme.com/session/new e faça login
Clique em "Criar bot"
Crie seu bot. O GroupMe faz um bom trabalho explicando o que é cada coisa.
Depois de criar seu bot, você verá algo semelhante a isto. Clique em "Editar"
Esta página é importante porque você precisará do "Bot ID" nesta página. Você também pode enviar uma mensagem de teste com a caixa de texto para ter certeza de que está conectado à sua sala de chat. Nota lateral: se você usar o ID do bot descrito na página, você enviará spam para uma sala de bate-papo vazia, portanto não vale a pena o esforço
Acesse https://slack.com/signin e faça login no espaço de trabalho em que o bot estará
Se você ainda não tem um para sua liga, crie um novo Canal da Liga
A seguir vamos configurar o bot para o Slack
Acesse https://api.slack.com/apps/new
Dê um nome ao aplicativo e escolha o espaço de trabalho pretendido no menu suspenso.
Selecione a seção Incoming Webhooks ao lado.
Altere a alternância de Desligado para Ligado.
Selecione Adicionar novo webhook ao espaço de trabalho
No menu suspenso Postar em, selecione o canal para o qual deseja enviar mensagens e selecione Autorizar.
Esta página é importante porque você precisará do "URL do Webhook" nesta página.
Faça login ou crie uma conta discord
Acesse ou crie um servidor discord para receber mensagens em
Abra as configurações do servidor
Acesse Webhooks
Crie um webhook, dê um nome a ele e escolha em qual canal receber mensagens
Salve o "URL do Webhook" nesta página
"28 de novembro de 2022, Heroku parou de oferecer planos de produtos gratuitos"
Ofereço um serviço de hospedagem bem inferior aos novos custos do Heroku em https://www.GameDayBot.com/
Acesse https://id.heroku.com/login e cadastre-se ou faça login
Clique neste botão roxo para implantar o código automaticamente:
Vá para o seu painel (https://dashboard.heroku.com/apps) Agora você precisará configurar suas variáveis de ambiente para que funcionem para sua liga. Clique em Configurações no seu painel. Em seguida, clique no botão "Reveal Config Vars" e você verá algo assim.
Agora precisaremos editar essas variáveis (clique no lápis à direita da variável para modificar) Nota: O aplicativo será reiniciado quando você alterar qualquer variável para que sua sala de bate-papo possa ficar semi-spam com a mensagem inicial de "Oi" você pode altere a variável INIT_MSG para ficar em branco para não ter nenhuma mensagem de inicialização. Também deve ser observado que o Heroku parece reiniciar o aplicativo uma vez por dia
Consulte a seção Variáveis de ambiente para documentação
Depois de configurar suas variáveis, você precisará ativá-las. Navegue até a guia "Recursos" do painel do aplicativo Heroku. Você deverá ver algo como abaixo. Clique no lápis à direita e alterne o botão para que fique azul como mostrado e clique em "Confirmar".
Você terminou! Agora você tem um bot de bate-papo GroupMe/Slack/Discord completo para ligas ESPN! Se você tiver um INIT_MSG, você o verá exclamado na sala de bate-papo do GroupMe, Discord ou Slack.
Infelizmente, para fazer implantações automáticas da versão mais recente, você precisa de acesso de administrador ao repositório no git. Você pode verificar se há atualizações na página do github (https://github.com/dtcarls/fantasy_football_chat_bot/commits/master) e clicar no botão implantar novamente; entretanto, isso implantará uma nova instância e as variáveis precisarão ser editadas novamente.
Estas instruções fornecerão uma cópia do projeto em funcionamento em sua máquina local para fins de desenvolvimento e teste.
Com Docker:
clone git https://github.com/dtcarls/fantasy_football_chat_botcd fantasia_football_chat_bot docker build -t fantasia_football_chat_bot.
Sem Docker:
clone git https://github.com/dtcarls/fantasy_football_chat_botcd fantasia_football_chat_bot pip install -r requisitos.txt# ou#python3 setup.py instalar
Var | Tipo | Obrigatório | Padrão | Descrição |
---|---|---|---|---|
BOT_ID | Corda | Para GrupoMe | Nenhum | Este é o seu ID do bot da página de desenvolvedores do GroupMe |
SLACK_WEBHOOK_URL | Corda | Para folga | Nenhum | Este é o URL do seu Webhook da página do aplicativo Slack |
DISCORD_WEBHOOK_URL | Corda | Para discórdia | Nenhum | Este é o URL do seu Webhook da página de configurações do Discord |
LEAGUE_ID | Corda | Sim | Nenhum | Este é o seu ID da liga ESPN |
START_DATE | Data | Sim | Início da temporada atual (AAAA-MM-DD) | É nesse momento que o bot começará a prestar atenção e enviar mensagens para o seu chat. |
END_DATE | Data | Sim | Fim da temporada atual (AAAA-MM-DD) | É nesse momento que o bot vai parar de prestar atenção e parar de enviar mensagens para o seu chat. |
LIGA_ANO | Corda | Sim | Ano Atual (AAAA) | Ano da Liga ESPN para olhar |
FUSO HORÁRIO | Corda | Sim | América/Nova_Iorque | O fuso horário em que as mensagens serão enviadas. |
INIT_MSG | Corda | Não | Nenhum | A mensagem que o bot dirá quando for iniciado. |
TOP_HALF_SCORING | Bool | Não | Falso | Se definido como True, quando a classificação for publicada na quarta-feira, também incluirá estar na metade superior da sua liga para ganhar pontos e você receberá uma "vitória" adicional por isso. |
RANDOM_PHRASE | Bool | Não | Falso | Se definido como True, quando as partidas forem postadas na terça-feira, também incluirá uma frase aleatória |
MONITOR_REPORT | Bool | Não | Falso | Se definido como Verdadeiro, fornecerá um relatório de jogadores na escalação inicial que são questionáveis, duvidosos, excluídos ou projetados para menos de 4 pontos |
WAIVER_REPORT | Bool | Não | Falso | Se definido como True, fornecerá um relatório de isenção de adições/descartes. |
DAILY_WAIVER | Bool | Não | Falso | Se definido como True, fornecerá um relatório de isenção de adições/descartes diariamente. |
ESPN_S2 | Corda | Para ligas privadas | Nenhum | Usado para ligas privadas. Consulte a seção Ligas Privadas para documentação |
SWID | Corda | Para ligas privadas | Nenhum | Usado para ligas privadas. (Pode ser definido com ou sem {}) Consulte a seção Ligas Privadas para obter documentação |
Use BOT_ID se estiver usando Groupme, DISCORD_WEBHOOK_URL se estiver usando Discord e SLACK_WEBHOOK_URL se estiver usando Slack (ou vários para receber mensagens em vários lugares)
>>> exportar BOT_ID=[insira seu ID do bot do GroupMe] >>> exportar WEBHOOK_URL=[insira o URL do seu Webhook] >>> exportar LEAGUE_ID=[insira o ID da liga ESPN] >>> exportar LEAGUE_YEAR=[insira o ano da liga] >>> cd fantasia_football_chat_bot >>> janela de encaixe execute --rm=True -e BOT_ID=$BOT_ID -e LEAGUE_ID=$LEAGUE_ID -e LEAGUE_YEAR=$LEAGUE_YEAR fantasia_football_chat_bot
Use BOT_ID se estiver usando Groupme, DISCORD_WEBHOOK_URL se estiver usando Discord e SLACK_WEBHOOK_URL se estiver usando Slack (ou vários para receber mensagens em vários lugares)
>>> exportar BOT_ID=[insira seu ID do bot do GroupMe] >>> exportar WEBHOOK_URL=[insira o URL do seu Webhook] >>> exportar LEAGUE_ID=[insira o ID da liga ESPN] >>> exportar LEAGUE_YEAR=[insira o ano da liga] >>> python3 gamedaybot/espn/espn_bot.py
Os testes automatizados para este pacote estão incluídos no diretório tests
. Após a instalação, você pode executar esses testes alterando o diretório para gamedaybot
e executando o seguinte:
pip install -r requisitos-test.txtpytest
Para liga privada você precisará obter seu swid e espn_s2. Você pode encontrar esses dois valores após fazer login em sua conta do espn fantasy football no site da espn. (Navegador Chrome) Clique com o botão direito em qualquer lugar do site e clique na opção inspecionar. A partir daí, clique em Aplicativo na barra superior. À esquerda, na seção Armazenamento, clique em Cookies e depois em http://fantasy.espn.com. A partir daí, você poderá encontrar suas variáveis e valores swid e espn_s2.
A liga deve estar cheia.
O bot não está funcionando
Você perdeu uma etapa nas instruções? Tente fazer isso do zero novamente. Se ainda não tiver sorte, abra um problema (https://github.com/dtcarls/fantasy_football_chat_bot/issues) ou entre no discord (link no topo do leia-me) para que a resposta possa ser compartilhada com outras pessoas.
Como as classificações de poder são calculadas?
Eles são calculados usando o domínio de 2 etapas, bem como uma combinação de pontos marcados e margem de vitória. Ponderado 80/15/5 respectivamente. Eu não prestaria muita atenção ao número real, mas sim à diferença entre as equipes. A fonte completa dos cálculos pode ser vista aqui: https://github.com/cwendt94/espn-api/pull/12/files. Se você quiser um tutorial sobre matrizes de dominância: https://www.youtube.com/watch?v=784TmwaHPOw
Existe uma versão disso para Yahoo/CBS/NFL/[inserir outro site]?
Não, isso exigiria um retrabalho significativo para outros sites.
Como defino outro fuso horário?
Especifique sua variável https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List
Existe uma versão deste para Messenger/WhatsApp/[inserir outro chat]?
Não, mas estou aberto a receber solicitações de implementação de sua API para suporte adicional entre plataformas.
Minha classificação parece errada. Eu tenho estranho (+1) nele.
TOP_HALF_SCORING: Se definido como True, quando a classificação for publicada na quarta-feira, também incluirá vitórias na pontuação da metade superior
As vitórias da metade superior são estar na metade superior da sua liga em termos de pontos e você recebe uma "vitória" adicional por isso. O número entre parênteses (+1) informa quantas vitórias adicionadas ao longo da temporada para vitórias na metade superior.