murilo-toddy / telegram-spreadsheet

Telegram bot to handle tasks and keep google spreadsheet up to date

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Tupão

Tupã's Telegram Bot

A bot to handle tasks and provide automation via telegram

tupao eesc-usp

issues commits contirbutors
commits issues pull

Tupão é um Telegram bot criado para fornecer assistência aos membros da extracurricular em um cenário presencial, onde se faz necessário realizar atualizações em planilhas e serviços do Google, mesmo sem possuir acesso direto a um computador.

O objetivo principal do Tupão é fornecer assistência durante o período de manufatura da equipe EESC USP Tupã. Para tal, o bot possui as seguintes funcionalidades básicas:

  • help: Comando de ajuda, que fornece informação acerca de todos os comandos cadastrados
  • add: Permite que sejam cadastradas novas tarefas na planilha de mapeamento da equipe
  • start/end: Permite que seja atualizado o status de atividades cadastradas na planilha de mapemanto da equipe
  • list: Lista todas as atividades cadastradas na planilha de mapeamentos da equipe
  • Extras: Comandos de resposta simples registrados em uma planilha de comandos no Google Sheets img.png

Configuração

A configuração do bot é realizada através de um arquivo de variáveis de ambiente .env.

A formatação deste arquivo deve ser como apresentado abaixo:

TELEGRAM_BOT_TOKEN =
COMMANDS_SHEET_ID =
ELE_SHEET_ID =
MEC_SHEET_ID =
...
  • TELEGRAM_BOT_TOKEN é o referente ao token para o bot, obtido através do BotFather.
  • COMMANDS_SHEET_ID é o ID da planilha de comandos do bot
  • ELE_SHEET_ID é o ID da planilha de mapeamento de tarefas do sistema da elétrica, e assim por diante para os demais sistemas.

Além disso, para que o bot possua permissão para manipular os arquivos do Google, é necessário criar um usuáio no DriveAPI e baixar as configuraçãoes de client_secret, fornecidas em formato json.

As informações devem seguir o seguinte formato:

{
  "type": 
  "project_id": 
  "private_key_id": 
  "private_key":
  "client_email": 
  "client_id": 
  "auth_uri": 
  "token_uri": 
  "auth_provider_x509_cert_url": 
  "client_x509_cert_url": 
}

As informações em questão podem ser fornecidas em um arquivo nomeado google_client.json ou podem ser fornecidas no próprio arquivo .env. A nomenclatura das variáveis neste segundo caso deve ser:

GOOGLE_CREDS_TYPE =
GOOGLE_CREDS_PROJECT_ID =
GOOGLE_CREDS_PRIVATE_KEY_ID =
GOOGLE_CREDS_PRIVATE_KEY =
GOOGLE_CREDS_EMAIL =
GOOGLE_CREDS_CLIENT_ID =
GOOGLE_CREDS_AUTH_URI =
GOOGLE_CREDS_TOKEN_URI =
GOOGLE_CREDS_AUTH_PROVIDER =
GOOGLE_CREDS_CLIENT =

Para membros da equipe, a configuração utilizada atualmente pode ser encontrada neste link.

Dependências

O bot foi construído utilizando Python 3.9.7 e conta com as dependências listadas no arquivo requirements.txt. Para instalá-las, basta executar o comando abaixo.

$ pip install -r requirements.txt

Execução

Após configuradas as variáveis de ambiente, o bot pode ser executado através do arquivo main. Basta utilizar o comando $ python3 main.py.

Hosting

O bot é hospedado nos serviços do Heroku de modo a ficar online 24h.

About

Telegram bot to handle tasks and keep google spreadsheet up to date

License:MIT License


Languages

Language:Python 100.0%Language:Procfile 0.0%