Skip to content

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

License

Notifications You must be signed in to change notification settings

murilo-toddy/telegram-spreadsheet

Repository files navigation

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

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages