GabrielRF / RastreioBot

Telegram Bot @RastreioBot
https://rastreiobot.xyz
GNU General Public License v3.0
365 stars 56 forks source link

Verificação em lote de pacotes dos Correios #123

Closed GabrielRF closed 3 years ago

GabrielRF commented 3 years ago

É possível enviar uma sequência de pacotes de uma vez só, bastando enviar na mesma string os diversos códigos. https://github.com/GabrielRF/RastreioBot/blob/81109675cc6e47327c128e1705d8ea1d51b7a0f4/apis/apicorreios.py#L131 Exemplo: <objetos>AB123456789CDEF123456789GHIJ123456789KL</objetos> faria a verificação de três pacotes de uma vez só.

A resposta de cada um dos pacotes seria vista em objeto[i] https://github.com/GabrielRF/RastreioBot/blob/81109675cc6e47327c128e1705d8ea1d51b7a0f4/apis/apicorreios.py#L26

Isso reduziria a quantidade de requests para conferir uma mesma quantidade de pacotes. O tamanho do lote* poderia ser uma variável em bot.conf

* aparentemente tamanho máximo do lote é 5000.

GabrielRF commented 3 years ago

O servidor dos Correios está bloqueando o IP do RastreioBot quando aumento o número de requisições por unidade de tempo. Desta forma, para diminuir cada vez mais o atraso entre o acontecimento e o envio da mensagem, pensei em partir para a verificação em lotes.

rougeth commented 3 years ago

Não tem nenhum separador entre os objetos na requisição? Todos colados uns nos outros?

GabrielRF commented 3 years ago

Tem as duas formas

<objetos>AA598971235BRBB123456789BRCC123456789BR</objetos>

ou

<objetos>AA598971235BR</objetos>
<objetos>BB123456789BR</objetos>
<objetos>CC123456789BR</objetos>
GabrielRF commented 3 years ago

2a2b20448d44c4028f22b33b3e6dea49e7d17915