AminoJS / Amino.JS

A powerful JavaScript library for interacting with the Amino API :star2:
MIT License
27 stars 5 forks source link

Amino's REST API documentation #60

Closed MrPowerGamerBR closed 5 years ago

MrPowerGamerBR commented 5 years ago

This is more like a "hey wouldn't it be nice if we had this?" than something 100% related to Amino.JS, but well...

It would be nice if there was a documentation about the Amino's REST API instead of relying only on code, somewhere where all (or almost all) endpoints would be documentated (Path, method, what the path does, etc)

But this is only a random idea I had while I was (re)writing my own Amino reverse engineered library, I wanted to do it, buuuut I wanted to know if other lib authors would be interested in sharing their findings :blush:

akatsukilevi commented 5 years ago

Atualmente você não precisa da documentação. Você pode ver pelo endpoint.js e pelos módulos respectivos a eles. Os JSON's enviados por eles são bem fáceis de entender Porém, uma documentação em Markdown no Wiki seria uma boa idéia Off-Topic: Até que enfim um brasileiro! rsrs


Actually you don't need the documentation. You can see by the endpoint.js and by their respective modules. The JSON's sents by the modules are pretty easy to understand Still, an documentation in Markdown on the Wiki's would be a nice idea

MrPowerGamerBR commented 5 years ago

@akatsukilevi enquanto entender pelo código é possível, eu acho meio "meh" já que não dá para ficar colocando explicações sobre ela. (Isso era meio chato quando eu fazia coisas relacionadas ao protocolo do MCPE, que quase nunca teve documentação e tudo era "olhe como é implementado no PocketMine-MP ou faça engenharia reversa você mesmo)

Olhar o payload é fácil, mas como tem várias pessoas fazendo engenharia reversa do Amino (várias pessoas = umas cinco :stuck_out_tongue:) seria melhor apenas juntar conhecimentos em vez de todos precisarem fazer engenharia reversa do mesmo endpoint várias vezes.

Eu tinha começado a documentar na minha lib original (que eu acho que foi uma das primeiras libs públicas tentando fazer engenharia reversa do Amino, tinha começado a fazer ela em 2017/2018 mas comecei a reescrever ela novamente pois o Amino finalmente suporta WebSockets para receber mensagens (yay, não preciso ficar spammando a API deles! Tanto que eu já implementei suporte a isso na minha lib) e porque eu quero futuramente portar o meu bot do Discord para o Amino): https://github.com/MrPowerGamerBR/AminoREAPI/blob/master/API.md

Por enquanto eu deixei no meu repositório mas se outros usuários quisessem contribuir seria melhor deixar em um repositório separado.

akatsukilevi commented 5 years ago

@MrPowerGamerBR Concordo, sei como é trabalhar com API sem documentação rsrs Em relação a portar um bot de Discord para Amino, é uma tarefa complicada, mais pelo fato dos chats serem bem diferente, porém não é uma tarefa impossível Se você criar o repositório do Porte, por favor me comunique, vou estar querendo ajudar no código Em relação a documentação, vou estar trabalhando no meu tempo livre para poder fazer o mesmo!

MrPowerGamerBR commented 5 years ago

@akatsukilevi na verdade eu já consegui "portar" o meu bot. É claro, só alguns comandos funcionam (só os novos que usam a nova framework de comandos que eu fiz e que não dependem de algo que só existe no Discord para funcionar): https://github.com/LorittaBot/Loritta/tree/development

Mas ainda não está pronto, vai demorar um pouco para acabar e ainda falta acabar a minha lib do Amino antes :stuck_out_tongue:

Sobre o repositório: Eu irei avisar quando criar :blush:

akatsukilevi commented 5 years ago

@MrPowerGamerBR Acabei de ver no link! (Desculpa a demora por uma resposta, a ExpoSec foi alguns dias atrás e ainda tive exame na faculdade XD) Ví que ele é inteiramente em Java(Kotlin na vdd), se importa se eu começar a re-escrever ele em Node.JS?

MrPowerGamerBR commented 5 years ago

Não sei qual seria a vantagem de refazer mais de dois anos de desenvolvimento em JavaScript.

Mesmo se você, por algum motivo, quiser gastar meses refazendo (afinal, se eu demorei dois anos para fazer tudo)... sei lá, só não pode ter o mesmo nome ou falar que é algo oficial, mas mesmo assim eu não sei qual seria a vantagem de refazer tudo em JavaScript, é a mesma coisa que jogar dois anos de códigos e funcionalidades que eu já sei que funcionam bem e que foram battle-tested (eu estou fazendo desde 30 de Março de 2017 e... bem, ela cresceu e atualmente é o maior bot brasileiro para o Discord, e o resto é história)

Então tl;dr: Você pode, mas não pode usar o mesmo nome/falar que é oficial/relacionado com o original, e eu não sei qual seria a vantagem de refazer todo o projeto em JavaScript.

akatsukilevi commented 5 years ago

@MrPowerGamerBR Seria mais como um proof-of-concept, e o que seria re-escrito em Node.JS seria apenas o bare-core Tenho um projeto que venho desenvolvendo, que consiste de um bot para amino que serve como uma ferramenta para lideres e curadores O mesmo teria a função de estar fazendo varreduras na comunidade procurando por posts e conteúdos que iriam contra as Guidelines da comunidade e do Amino(assim como os bots já existentes da Team Amino, by Narvii Inc.) E sim, lembrando o fato de ser uma re-escrita, o mesmo não seria oficial nem mesmo de minha autoria, os créditos de autoria será dado conforme deve ser(assim como os agradecimentos)

akatsukilevi commented 5 years ago

Fechando issue por inatividade


Closing issue due to inactivity