Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/killovsky/telegraph
Repositorio do módulo de upload de imagens no Telegraph.
https://github.com/killovsky/telegraph
api cloud format gif image images javascript magic-numbers mimetype mp4 nodejs photo server telegraph unlimited upload video
Last synced: 2 days ago
JSON representation
Repositorio do módulo de upload de imagens no Telegraph.
- Host: GitHub
- URL: https://github.com/killovsky/telegraph
- Owner: KillovSky
- License: mit
- Created: 2022-10-15T04:13:03.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2022-10-15T15:24:26.000Z (about 2 years ago)
- Last Synced: 2024-11-03T00:33:36.227Z (5 days ago)
- Topics: api, cloud, format, gif, image, images, javascript, magic-numbers, mimetype, mp4, nodejs, photo, server, telegraph, unlimited, upload, video
- Language: JavaScript
- Homepage: https://www.npmjs.com/package/@killovsky/telegraph
- Size: 13.7 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
[Source: Telegraph]
## Instalação:
- Rode o código abaixo para instalar via `NPM`:
```bash
$ npm i @killovsky/telegraph
```
- Rode o código abaixo para instalar via `GIT`:
```bash
$ git clone https://github.com/KillovSky/Telegraph.git
$ npm i
```
## O que este módulo faz?
- Ele realiza o upload de fotos, vídeos e gifs no sistema do [Telegraph](https://telegra.ph) de forma ilimitada e bem simples.
## O que este módulo tem de especial?
- Assim como o da [NASA](https://github.com/KillovSky/NASA), muitas coisas, confira abaixo:
------
> 1. Neste módulo, os erros não afetam o funcionamento, o que significa que apesar de qualquer erro, os valores 'sempre' estarão lá para que você não seja afetado.
>
> 2. Os erros serão inseridos na resposta com uma explicação sobre o que causou eles, facilitando para você entender.
>
> 3. Os headers estão inseridos na resposta, facilitando para saber detalhes que podem lhe ser uteis.
>
> 4. Existe apenas uma dependência de módulo, sendo o [Form-Data](https://www.npmjs.com/package/form-data), o restante é feito usando o puro `Node.js`.
>
> 5. Cada linha do código possui uma explicação do que está rodando ou vai rodar, ou seja, o código INTEIRO é explicado, linha por linha.
>
> 6. O formato, caso incorreto, será automaticamente corrigido no upload, reduzindo a taxa de erros por formatos incorretos.
>
> 7. E muitas outras coisas, confira o código para entender!
------
## Como testar este módulo:
- Basta abrir um terminal na pasta do módulo e digitar:
```bash
$ npm test
```
## Como utilizar este módulo:
- Existem diversas formas de utilizar, mas como se trata de um script que faz uso de `Promises`, irei dar dois exemplos que funcionam bem, lembrando, você pode rodar sem especificar nada pois também funciona desta forma.
- Clique em uma das linhas/setas abaixo para exibir os detalhes!
Descrição de cada parâmetro da execução:
```javascript
// Function especificada
upload('Imagem', 'Formato')
/* ------------------------------------- *
* 1° - Imagem
* Valores: Buffer, Base64 ou Local
* Padrão: 'Image_Test'
* Formatos suportados: png, jpg, jpeg...
* ...gif, mp4, jfif, pjepg, pjp, m4v
* ---------------------------------------
* 2° - Formato
* Valores: Formato de Imagem
* Padrão: 'default'
* ------------------------------------- */
// Function sem especificar [Modo Teste]
upload()
// Retorna o JSON padrão
defaults()
// Retorna os códigos HTTP
http()
// Retorna a package JSON
packages()
// Retorna os formatos suportados
formats()
```
Exemplos de uso:
```javascript
// Usando .then | Modo de uso padrão
const telegraph = require('@killovsky/telegraph');
telegraph.upload('IMAGEM', 'FORMATO').then(data => {
// Faça seu código baseado na object 'data' aqui
// Exemplo: console.log(data);
})
// Usando await [async] | Modo de uso padrão
const telegraph = require('@killovsky/telegraph');
const data = await telegraph.upload('IMAGEM', 'FORMATO');
// Faça seu código aqui usando a const 'data'
// Exemplo: console.log(data);
```
Código já prontos [.then]:
```javascript
// Código usando .then
const telegraph = require('@killovsky/telegraph');
telegraph.upload('Image_Test', 'default').then(data => console.log(data));
```
Código já prontos [async/await]:
```javascript
// Código usando await
const telegraph = require('@killovsky/telegraph');
const data = await telegraph.upload('Image_Test', 'default');
console.log(data);
// Se você não sabe criar uma função async ou ainda não tiver uma, use este código abaixo:
(async () => {
// Cole um código com await aqui dentro
})();
```
Exemplo de resultado com explicações:
```JSON
{
"date": "String | Data [YYYY-MM-DD HH:MM:SS]",
"error": "true | false",
"dev_msg": "String / false | Mensagem adicional de erro",
"error_msg": "String / false | Códigos de erros de execução",
"format_msg": "String / false | Mensagem sobre os formatos",
"code": "Number | String | Código de erro HTTP",
"explain": {
"code": "Number / String | Código escrito de HTTP",
"why": "String | Explicação do código HTTP"
},
"headers": {
"date": "String | Data escrita da requisição",
"content-type": "String | Tipo de resposta",
"content-length": "Number | Tamanho da resposta",
"Outros": "E vários outros headers, faça uma requisição para obter todos."
},
"images": [
{
"src": "String | URL da imagem que foi enviada ao Telegraph",
"error": "false / String | Diz se ocorreu algum erro de servidor ou outro"
}
]
}
```
Exemplo utilizável de resultado:
```JSON
{
"date": "14/10/2022 22:55:30",
"error": false,
"dev_msg": false,
"error_msg": false,
"format_msg": false,
"code": 200,
"explain": {
"code": "OK",
"why": "The request is OK, this response depends on the HTTP method used."
},
"headers": {
"server": "nginx/1.20.1",
"date": "Sat, 15 Oct 2022 01:55:31 GMT",
"content-type": "application/json; charset=utf-8",
"content-length": "45",
"connection": "close",
"pragma": "no-cache",
"cache-control": "no-store",
"strict-transport-security": "max-age=31536000; includeSubDomains; preload"
},
"images": [
{
"src": "https://telegra.ph/file/a5f64ece2d0ab56eab3ce.png",
"error": false
}
]
}
```
## Perguntas e Respostas:
- Isso é bem similar ao seu módulo do Projeto APOD da NASA, não é?
> Sim, é por que quero criar sistemas fáceis de entender e usar, decidi que a melhor forma seria fazendo eles de forma similar, deixando o código bem simples para qualquer um que vier de outros projetos meus.
>
- Por que você utilizou um módulo dessa vez?
> Não tive escolha, tentei infinitas formas de fazer em `Node.js` puro, mas todas falharam, o servidor somente aceitou com [Form-Data](https://www.npmjs.com/package/form-data), então decidi que deveria deixa-lo no módulo e terminar dessa forma.
>
- O que é proibido ao usar este módulo?
> Você jamais deve abusar de qualquer programa, sempre crie um limitador de tempo ou armazene a ultima resposta se caso seja a mesma imagem e use ela, evite ficar utilizando um programa deste estilo muitas vezes seguidas sem esperar.
## Suporte
- Se obtiver algum problema, você pode me dizer [Reportando nas Issues](https://github.com/KillovSky/Telegraph/issues).
- Confira outros projetos meus [Acessando Isto](https://github.com/KillovSky).
- Se gostar, doe para me ajudar a continuar desenvolvendo, mais informações [Clicando Aqui](http://htmlpreview.github.io/?https://github.com/KillovSky/iris/blob/main/.readme/donates/page.html) - [Página do Projeto Íris]