From bd1c1f3a08b933bc3700110a22ed9e88c5614517 Mon Sep 17 00:00:00 2001 From: "Andrey Cunh@" Date: Thu, 26 Feb 2026 13:12:25 -0300 Subject: [PATCH] att --- .../debit_notes_pdf_reader.cpython-313.pyc | Bin 0 -> 28577 bytes debit_notes_pdf_reader.py | 20 ++++++++++++++++-- trf.py | 4 ++-- 3 files changed, 20 insertions(+), 4 deletions(-) create mode 100644 __pycache__/debit_notes_pdf_reader.cpython-313.pyc diff --git a/__pycache__/debit_notes_pdf_reader.cpython-313.pyc b/__pycache__/debit_notes_pdf_reader.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..85a36a2f3a25326a36e4cd91269875ee565b0d83 GIT binary patch literal 28577 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 bJVBE-KN(a+)6vBJpvlm2ME!%qJktLUXQ&kR literal 0 HcmV?d00001 diff --git a/debit_notes_pdf_reader.py b/debit_notes_pdf_reader.py index bb1a483..41a850e 100644 --- a/debit_notes_pdf_reader.py +++ b/debit_notes_pdf_reader.py @@ -451,6 +451,7 @@ def main() -> None: CP_ID = 10269 TAKE = 25 MAX_PAGINAS_RECENTES = 15 + MAX_PAGINAS_SEM_NOVIDADE = 5 DOCUMENT_TYPE = "NDEB" SQL_CONN = ( "DRIVER={ODBC Driver 17 for SQL Server};" @@ -478,6 +479,7 @@ def main() -> None: total_paginas = None relogins = 0 max_relogins = 20 + paginas_sem_novidade = 0 while True: try: page = get_debit_notes_page(session, auth, CP_ID, skip, TAKE, franchises) @@ -569,6 +571,7 @@ def main() -> None: except Exception as e: print(f"[erro] {doc_id} -> {e}") + novos_na_pagina = len(page_rows) if page_rows: stats_page = upsert_rows_sqlserver(page_rows, SQL_CONN) total_docs_upsert += int(stats_page.get("documentos") or 0) @@ -578,14 +581,25 @@ def main() -> None: f"parc_upsert={stats_page['parcelas']} acumulado_docs={total_docs_upsert} " f"acumulado_parc={total_parcs_upsert}" ) - if skipped_existing: - print(f"[page] pagina={pagina} skip_sql={skipped_existing}") + + if novos_na_pagina == 0: + paginas_sem_novidade += 1 + else: + paginas_sem_novidade = 0 + + print( + f"[page] pagina={pagina} novos={novos_na_pagina} skip_sql={skipped_existing} " + f"sem_novidade={paginas_sem_novidade}/{MAX_PAGINAS_SEM_NOVIDADE}" + ) skip += TAKE print(f"[page] concluida {pagina} acumulado_docs={total_docs_upsert} total={total}") if pagina >= MAX_PAGINAS_RECENTES: print(f"[stop] limite diario atingido: {MAX_PAGINAS_RECENTES} paginas recentes") break + if paginas_sem_novidade >= MAX_PAGINAS_SEM_NOVIDADE: + print(f"[stop] sem novidades por {MAX_PAGINAS_SEM_NOVIDADE} paginas consecutivas") + break if total and skip >= total: break @@ -594,3 +608,5 @@ def main() -> None: if __name__ == "__main__": main() + + diff --git a/trf.py b/trf.py index 1774ac9..4e92057 100644 --- a/trf.py +++ b/trf.py @@ -1228,8 +1228,8 @@ if __name__ == "__main__": document_type="EFAT", limit=100, only_channels=None, - max_paginas_sem_novidade=3, - max_paginas=20, + max_paginas_sem_novidade=5, + max_paginas=15, ) else: c = Client()