diff --git a/.gitignore b/.gitignore index a2fe8ee..0c0d765 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,5 @@ ad.txt __pycache__ bot.log* *.pyc -*.lock \ No newline at end of file +*.lock +.idea \ No newline at end of file diff --git a/check_update.py b/check_update.py index 0c69f2f..479f158 100644 --- a/check_update.py +++ b/check_update.py @@ -4,6 +4,9 @@ from misc import check_type import apicorreios as correios import apitrackingmore as trackingmore +from numpy import busday_count +import holidays + def check_update(code, max_retries=3): # print('check_update') @@ -41,14 +44,23 @@ def check_update(code, max_retries=3): ano1 = int(evento['data'].split('/')[2]) data1 = date(ano1, mes1, dia1) delta = data1 - data0 + dias_uteis = busday_count(data0, data1) + todos_feriados = holidays.BR() + # feriados TODO: adicionar feriados estaduais + feriados_entre_datas = todos_feriados[data0:data1] + feriados_uteis = 0 + for f in feriados_entre_datas: + feriados_uteis += 1 if f.weekday() < 5 else 0 + dias_uteis -= feriados_uteis except Exception: delta = 0 + dias_uteis = 0 pass - data = evento['data'] + ' ' + evento['hora'] + data = f'{evento["data"]} {evento["hora"]}' if delta.days == 1: - data = data + ' (' + str(delta.days) + ' dia)' + data += f' ({delta.days} dia - {dias_uteis} útil)' elif delta.days > 1: - data = data + ' (' + str(delta.days) + ' dias)' + data += f' ({delta.days} dias - {dias_uteis} úteis)' try: local = evento['unidade']['local'] except Exception: @@ -57,10 +69,10 @@ def check_update(code, max_retries=3): if 'endereço indicado' in evento['descricao']: try: situacao = ( - situacao + '\n' + - evento['unidade']['endereco']['numero'] + ' ' + - evento['unidade']['endereco']['logradouro'] + '\n' + - evento['unidade']['endereco']['bairro'] + '' + situacao + '\n' + + evento['unidade']['endereco']['numero'] + ' ' + + evento['unidade']['endereco']['logradouro'] + '\n' + + evento['unidade']['endereco']['bairro'] + '' ) except Exception: pass @@ -73,8 +85,8 @@ def check_update(code, max_retries=3): mensagem = mensagem + '\nLocal: ' + local.strip().title() if situacao: mensagem = ( - mensagem + '\nSituação: ' + - situacao.strip() + '' + mensagem + '\nSituação: ' + + situacao.strip() + '' ) if 'objeto entregue ao' in situacao.lower(): mensagem = mensagem + ' ' + str(u'\U0001F381') @@ -96,12 +108,12 @@ def check_update(code, max_retries=3): mensagem = mensagem + ' ' + str(u'\U0001F4B8') elif 'aduaneira finalizada' in situacao.lower(): mensagem = (mensagem + '\nAcesse o ambiente ' + - 'Minhas Importações') + 'Minhas Importações') elif 'aguardando pagamento' in situacao.lower(): - mensagem = (mensagem + ' ' + str(u'\U0001F52B') + - '\nLinks para efetuar pagamentos aos Correios:' + - '\nRastreamento' + - '\nPortal Importador') + mensagem = (mensagem + ' ' + str(u'\U0001F52B') + + '\nLinks para efetuar pagamentos aos Correios:' + + '\nRastreamento' + + '\nPortal Importador') elif 'liberado sem' in situacao.lower(): mensagem = mensagem + ' ' + str(u'\U0001F389') if observacao: @@ -109,7 +121,7 @@ def check_update(code, max_retries=3): if 'liberado sem' in observacao.lower(): mensagem = mensagem + ' ' + str(u'\U0001F389') elif 'pagamento' in observacao.lower(): - mensagem = (mensagem + - '\nhttps://www2.correios.com.br/sistemas/rastreamento/') + mensagem = (mensagem + + '\nhttps://www2.correios.com.br/sistemas/rastreamento/') stats.append(mensagem) return stats diff --git a/requirements.txt b/requirements.txt index 1552515..9b87151 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,3 +4,4 @@ pyTelegramBotAPI==3.* pytest==5.* requests==2.* sentry-sdk==0.* +holidays==0.*