Skip to content

Latest commit

 

History

History
266 lines (196 loc) · 14.7 KB

README.PT.md

File metadata and controls

266 lines (196 loc) · 14.7 KB

AnilistBot




Say Thanks!

English README Portuguese README

Build Status codecov Codacy Badge Dependencies Known Vulnerabilities Maintainability

Uma nova implementação do Anilist Bot para Telegram.

Sobre

Este bot the ajuda a encontrar informções nos chats do Telegram sobre:

  • Animes
  • Mangás
  • Personagens
  • Estúdios
  • Funcionários
  • etc

Mais do que isso, ele também te notifica quando novos episódios são lançados e ainda permite ter:

  • Watchlist
  • Readlist
  • Contagem regressiva para novos episódios
  • Calculadora de tempo assistindo animes
  • Anime e mangá filtros para ver os que estão: lançando, completos, cancelados e em breve
  • Notícias quando lançadas do ANN sobre seus mangás e animes -- procuro algum blog BR para tal também
  • E outras várias novas ferramentas em desenvolvimento

Toda as informações são do Anilist & Anichart -- sendo que possuem tradução automática para Português.

Notas

  1. JoshStar foi gentil para permitir as traduções das informações fossem armazenadas em diferentes idiomas, melhorando a experiência do usuário;
  2. Esse projeto é uma nova implementação, a antiga se encontra aqui;
  3. Além disso, a opção de comandos foram removidas quando conversarem com o bot de acordo com o baixo uso.

Idiomas suportados:

Por padrão, todos os comandos serão em Inglês, mas você pode ver se o mesmo comando está diponível no seu idoma. Somente Inglês e Português tiveram algum tipo de revisão, todos os outros são traduções automáticas do Google Traduor.

Quer um novo idioma? Converse comigo através de uma issue ou no Telegram: @farmy.

Como utilizar

Primeiramente, converse com o @AnilistBot.

Pesquisas inline

As pesquisas inline funcionam em qualquer chat:

@AnilistBot conteúdo a ser pesquisado

Exemplo:

@AnilistBot One Piece

Descrição & Gêneros

Mostra inforamções sobre animes, mangás, personagens e funcionários.

Readlist & Watchlist

Adiciona o conteúdo para sua lista de assistir ou ler depois.

Contagem Regressiva

Mostra o quanto tempo falta para os próximos episódios a serem lançados.

Ajuda

Se tiver alguma dúvida sobre, apenas utilize o seguinte comando numa conversa com o bot:

/help

Artes

Eu fiz todas as artes para o projeto, Studio Ghibli foi a minha inspiração.


Você pode ver mais na pasta img.

Ajudando

Agora, este projeto tem o seguinte total de linhas de código:

Linhas

E utiliza quatro serviços pagos:

  1. Heroku
  2. Heroku Redis
  3. mLab
  4. Google Translate

Todo o seu suporte pode realmente fazer a diferença para me ajudar a manter este projeto rodando. Eu realmente amaria se todo mundo que o utiliza pudesse suportar ele alguma vez, com qualquer valor que julgar válido ou até mesmo cada mês com um real através do meu Padrim. Isso me permitira melhorar cada vez mais o projto, adicionado várias novas ferramentas que tenho planejado.

Você acha que dinheiro não é a melhor maneira de contribuir? Tudo bem, estou aberto para receber traduções e código! Apenas dê uma olhada na parte Contribuindo.

Eu também explico o "porquê" receber doações ao invés de vender propagandas em SUPPORT.PT.md.

Considere me pagar um café:

Buy Me a Coffee

Ou quem sabe um "patron":

Patreon

Para todos os meus conterrâneos, começando em um real por mês:

Padrim

Contribuindo

Por favor, eu não sou nativo/fluente em inglês, então qualquer erro que ver, seja o noe de uma variável ou até mesmo um comentário, comente onde eu errei que irei corrigir. Se eu escrevi algo também da forma conjugada erroneamente, por favor informe-me. Nem sempre é tudo apenas sobre código, mas sim torná-lo mais acessível para outas pessoas.

Sendo código ou não você pode me ajudar mantendo esse código mais acessível, ou até mesmo um novo idioma ou corrigindo algo nos atuais. Apenas leia o arquivo para saber como CONTRIBUTING.PT.md.

A Fazer

Como este README estará atualizado com qualquer mudança grande, eu não irei utilizar nenhum sistema para logar bugs corrigirs ou updates, você pode ver o que está por vir no aba Projects. Mas te darei um gostinho do que tenho em mente:

  • Cachear as requisições mais feitas
  • Melhorar métrica no tempo assistido:
    • Prover ao usuário opções de "o que fazer" na vida real baseado no que ele gosta. Como assistir um vídeo de um canal do YouTube caso o usuário goste de Bakuman, como exemplo
  • Adicionar um identificador de padrão como "Você quis dizer" do Google. Provavelmente irei utilizar o pacote didyoumean
  • Conexão com o Anilist
  • Escrever reviews de animes e mangás
  • Suporte para notícias de animes e mangás além do ANN -- para melhorar acesso a notícias
  • Processamento de Linguagem Natural -- Você pode realmente conversar com este bot
  • Recomendações de animes e mangás -- Criar um motor para isso:
    • Criar outro servidor para armazenar esse processamento -- Comunicação com o bot através de uma API em GraphQL e provavlemente utilizar Rust para processar tal informações e GO para dar conta da API
    • Buscar utilizar um servidor que permite uso de GPU
    • Melhorar esse motor através de processamento de imagens, vídeo e audio
  • Criar um site para disponilizar informações sobre:
    • Animes e mangás em foco
    • Um grafo que mostra a distancia dos animes e mangás de acordo com os gostos dos usuários
  • O site deve ser um PWA para permitir novos usuários além da base de usuários do Telegram

Deployment

Este bot está em funcionamento no Heroku em um conteiner do Docker. Todavia você pode ter uma versão sua deste projeto rodando também:

Deploy

Caso se você utilizar o Azure:

Deploy to Azure

Ou até mesmo o Docker Cloud:

Deploy to Docker Cloud

Obs: Você deve estar logado no Docker Cloud para o botão de deploy funcionar. Caso contrário, o link resultará em um erro 404.

Versionamento

Eu adoraria dizer que é utilizado o SemVer ou coisa do tipo mas, devido a minha experiência pessoal, do cara que pode commitar por duas semanas seguidas neste projeo e deixá-lo por quase um ano sem rodar um simples npm update... Nenhum sistema será utilizado.

Como funciona?

Você pode construir um bot similar a este, Eu escrevi um tutoria sobre no meu Podesearch Bot, apenas siga os procedimentos listados em BUILDING.md.

Código

Puro e simples Typescript com os padrões de linter da Microsoft para ele.

Webpack

"POR QUÊ???" -- todo mundo

Como a segunda versão da API Anilist foi escrita em GraphQL, e como eu fui utilizando, a necessidade de utilizar as queries como imports de JS era uma opção apenas com Webpack e o webpack-graphql-loader. Como isso deixa o código mais limpo e fácil de ler e manter, este foi o motivo de ser utilizado; isso permite uma GRANDE diferença e pode ser um pouco estranho tomar tal tipo de ceissão e aqui está a respota para.

Construído Com

Testando

Como há uma integração com o Travis CI e o Codecov. Todos os testes foram escritos para o Jest com a ajuda do ts-jest.

Para rodar todos os testes, basta:

npm test

Se você encontrar alguns erros relacionados a dependencias de pacotes e gostaria de saber como resolvê-los, leia Segurança sobre isso.

Código Desnecessário

Há um padrão para testar código baseado em um arquivo descritivo em JSON. Dito isto, a função doTesting tem um argumento desncessário, o nome da função a ser testado.

Node roda usando o motor V8, mas como este projeto utiliza TS, o código compilado não tem a propriedade name na função anonima. Isto é um problema reportado; o pessoal do Jest e do ts-jest me ajudaram a entender isso -- uma vez fixado, não haverá mas isso.

Segurança

Foi adicionado uma integração com Snyk para garantir do Desenvolvimento Contínuo.

Erros ou Bugs em dependências

Quando Snyk reporta algum erro ou bugs que podem ser corrigidos, apenas siga o comando do terminal para corrigí-los antes de rodar -- mais informação na documentação deles.

Autores

  • Apenas eu até agora.

Lisença

Como vários projetos Open-Source, a lisença do MIT é utilizad. Mais informações em LICENSE.