Skip to content

Latest commit

 

History

History
138 lines (113 loc) · 10.8 KB

README_PT.md

File metadata and controls

138 lines (113 loc) · 10.8 KB

Podsearch


Podsearch

English README Portuguese README

bitHound Overall Score Dependencies Build Status Coverage Status Known Vulnerabilities GitHub issues GitHub forks GitHub stars GitHub license

A solução que você precisava para poder compartilhar seus podcats favoritos com seus amigos :3

Um bot para Telegram que realiza pesquisas de podcasts na loja da iTunes.

Sobre

Esse bot foi feito com TypeScript(TS) porque eu queria algum projeto para solidificar minha nova habilidade. E, além disso, poder colocar em prática Test Driven Development(TDD), sendo esse o primeiro projeto que utilizo tal forma de programação.

Duas coisas novas em um projeto só? Sim, e a terceira é Continuos Integration(CI), que auxília juntar a aplicação que se encontra rodando com código novo. E, uma quarta novidade, é escrever um bot que suporte vários idiomas.

Medium

Eu escrevi um pouco mais sobre como foi o processo de escrever esse bot no Medium, caso você se interesse sobre e gostaria de fazer um igual.

Como utilizar?

Primeiro de tudo, abra uma conversa com o @podsearchbot.

Aviso

Por padrão os comandos se encontram por em Inglês mas possuem seu equivalente em Português.

Pesquisa

Há três maneiras de se fazer isso:

Inline

O modo de pesquisa inline funciona na conversa com o Podsearch ou qualquer outra:

@podsearchbot nome do podcast

Exemplo:

@podsearchbot B9

Botões

Apenas pressione o botão de pesquisa, ele irá lhe pedir o nome do podcast que deseja pesquisar e realizar a pesquisa.

/pesquise

Uma vez no chat com o bot, utilize o seguinte comando como em outros bots:

/pesquise nome do podcast

Exemplo:

/pesquise The Mission

Ajuda

Caso precise de ajuda ou algo do tipo, use o comando:

/ajuda

Como funciona?

Você pode construir um bot igual a esse daqui, basta seguir os procedimentos listados em BUILDING_PT.md.

Quer saber mais?

Se você quer entender os "porquês" do que é feito no código, você pode ler TODO O CÓDIGO... Brincadeiras a parte, eu escrevi alguns dos prós e contras da minha abordagem em uma macro visão do projeto. Se você quiser saber mais, leia:

  • DATABASE_PT.md -- Como os dados são armazenados, seja para as notificações e os tipos de usuários;
  • RECOMMENDATION_PT.md -- Como o sistema de recomendação de podcasts funciona.

Deployment

Esse bot está rodando no Heroku através de integração direta do Github, isso significa que cada nova push para a branch master representa o código que está atualmente servindo de diretriz por bot. Você pode verificar mais como o bot está rodando através do arquivo Procfile. Você também pode enviar uma cópia direta desse código para o Heroku através do seguinte botão:

Deploy

Há também um integração com Travis CI.

Construído com

  • App.json - Configurações para disponibilizar esse projeto através do botão do Heroku;
  • Wallaby.j - Plug-in de rodar testes para o Visual Studio Code;
  • Jest - Roda os testes;
  • Telegraf.js - Biblioteca responsável para realizar integração com o Telegram;
  • Telegraf-i18n - Biblioteca responsável para realizar integração com suporte a multiplos idiomas;
  • moment.js - Biblioteca que realiza formatação de data;
  • i18n-yaml - Como Telegraf-i18n apenas funciona com Telegraf, há a necessidade de se traduzir outros contextos;
  • dotenv - Biblioteca que importa variáveis de ambiente;
  • tinyurl - Biblioteca que reduz os tamanhos dos links;
  • remove-accents - Essa biblioteca remove os acentos das pesquisas -- como o conteúdo da iTunes store não necessariamente terá acentos, ao remover eles isso facilitará a pesquisa;
  • itunes-search - Uma das várias bibliotecas que realiza a integração com a loja do iTunes, porém essa é a que melhor o faz.

Contribuindo

Por favor, eu não sou nativo/fluente em Inglês, então se você ver uma variável escrita errada ou até mesmo um comentário que eu escrevi de maneira errada, me avise. Contribuições não necessariamente devem ser feitas através de código apenas, elas tem a ver com melhorar o que já está presente das mais diversas maneiras para que mais pessoas possam aprender sobre.

Caso seja o código ou não, você pode me ajudar lendo as diretrizes no arquivo CONTRIBUTING_PT.md.

Controle de versão

Eu adoraria dizer que SemVer ou algo do tipo fora utilizado porém, em experiência pessoal, esse tipo de aborgaem não funciona muito bem comigo, o cara que pode comitar várias vezes esse projeto por duas semanas seguidas e passar um anos sem dar um simples npm update no projeto. Então, não se é utilizado sistemas de versionamento.

A realizar

Como esse README estará sendo atualizado com as mudanças importantes, não pretendo utilizar nenhum histórico de atualizações de bugs corrigidos ou novas funcionalidades. Todavia, você pode ter uma noção do que virá e o que está sob análise na aba de Projects -- aviso: o conteúdo se encontra em Inglês.

Autores

  • Apenas eu até agora.

Considere me comprar um café:

Buy Me a Coffee

Ou até mesmo se tornar um padrinho:

Patreon

Estou analisando a possibilidade de se colocar PicPay e Padrim -- já que são opções muito utilizadas no Brasil.

Você pode ler mais sobre as minhas escolhas de aceitar doações e de não vender propagandas no bot em SUPPORT_PT.md.

Licença

Assim como muitos projetos de código livre, a licença MIT é utilizada aqui. Mais sobre em LICENSE.

Reconhecimentos

  • Obrigado a PurpleBooth por esse README e esse CONTRIBUTING formato;
  • Mattias Petter Johansson e o canal dele FunFunFunction, onde eu aprendi várias coisas importantes sobre código e práticas; por favor não pense que são "tutoriais-genéricos" que encontrará lá, ele demonstrará como melhorar o que já possuiu e o que pode aprender em seguida;
  • Como a documentação do Jest se demonstrou um pouco confusa para mim, esse tutorial me ajudou um pouco, ainda possuo alguns problemas e dificuldades que pretendo corrigir. Acredito que boa parte desses problemas são devidos a lógica pro trás, uma vez que descobrir como corrigí-los irei arrumar isso; por hora tudo está "funcionando" da melhor maneira que consegui abordar;
  • Atalmente recomendo ver meu projeto ytlofi caso tenha sofrido com alguns problemas durante a fase de pré-requitos, lá eu explico um pouco melhor sobre outros fatores.