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 0000000..85a36a2 Binary files /dev/null and b/__pycache__/debit_notes_pdf_reader.cpython-313.pyc differ 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()