From 60cc36893e2a94c9f8611e97b98f1ac0b1db085b Mon Sep 17 00:00:00 2001 From: dat972 Date: Thu, 9 Jul 2026 16:21:20 -0500 Subject: [PATCH] updated scan.py to help us error handle the weird searches and alos build an ignore list --- README.md | 9 ++++++-- __pycache__/fccs_config.cpython-313.pyc | Bin 6959 -> 7844 bytes config.ini | 1 + fccs_config.py | 20 ++++++++++++++++ fccs_export.py | 5 +++- fccs_scan.py | 29 +++++++++++++++++++++++- 6 files changed, 60 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 7d1b134..d9de38d 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,12 @@ Extracts and organizes documents from FileCabinet CS (Thomson Reuters) using GUI python fccs_scan.py ``` -Reads the restored FCCS backup directory and writes all drawer IDs (subfolder names) to `drawer_ids.txt`. +Reads the restored FCCS backup directory and writes all drawer IDs (subfolder names) to `drawer_ids.txt`. It also: + +- **Flags prefix clashes** — if one drawer ID is a prefix of another (e.g. `02218` and `02218A`), searching the shorter ID in FCCS pops up a selection box that breaks automated navigation. These are reported so you can export them manually or ignore the shorter ID. +- **Reports ignored drawers** — any IDs listed in `ignore.txt` that exist in this backup are shown as ones the export will skip. + +**Ignoring drawers:** To exclude specific drawers from export (e.g. password-protected folders that would stall the automation), add their IDs to the file at `ignore_file` (default `C:\Migration\ignore.txt`), one per line. `drawer_ids.txt` stays a full inventory; the export skips anything in the ignore list. Lines starting with `#` are treated as comments. ### Step 2: Export Documents @@ -88,6 +93,6 @@ Exported filenames follow the format `{drawer_id}_{client_name}_{folder_name}_{c All scripts read from `config.ini` (or specify `--config path\to\config.ini`). -- **`[paths]`** -- backup_dir, export_dir, output_dir, drawer_id_file, completed_file, log_file, screenshot_dir, folder_list +- **`[paths]`** -- backup_dir, export_dir, output_dir, drawer_id_file, completed_file, ignore_file, log_file, screenshot_dir, manifest_dir, folder_list - **`[timeouts]`** -- nav_timeout, dialog_timeout, progress_appear, progress_finish, settle, confirm_timeout - **`[controls]`** -- FCCS window class names and button titles (rarely need changing) diff --git a/__pycache__/fccs_config.cpython-313.pyc b/__pycache__/fccs_config.cpython-313.pyc index e50ec3bcc7fffbab75607bb8b83a446f56a3ab7e..413bac701b1f873d6285e1c56c7ab03e73ebbad8 100644 GIT binary patch delta 947 zcmY*Y&1(}u9G%@{6T0~@X<}Ma#8GS0#jw$0t1T3)v9*GUwIxz4Ql`lyyEd6!cDANH zCC7SELo5_eDqcm3mtOr3`~Vx*gEu`1wGqUdv-z+%urog%@4erf-|oI1dpYTE`g|f_ z>%cd6&kWc6{hV2g&2qk)J|r%9qrf;);3fag(;r;qbVAWeI8jC$iFvGRG%=G*E+pP; z@gMr?JAIMLH)gX1mN?taUQ3Sl2|xyncF^ugxC9`4h6{n&n*b1pUEOw4J^?7tutA17 z7n2iZ0CGG4DHbu~oEN%&hiAsobsVmX{hmtdl+B#uQ$qlF00cxJ&WteJ5wyG}8H1m9 zA9{4F#nB6V*A0Tyt+qpkA7q&zdx$d+Bo3w6Rc2I@gE<40u>r4NrO;H636X&-5JBC* zd37CXd5DN+Dva@uD2t*!Ge|KqvI?efWurrnL#lOPl@ypChE&lEv*izmv0RX0?A*x6 z`AacL)HR*LHJ$aMxQMf+su8%Nt;4c%0~3Z8HBx8`@w!S)`k#I(CdI|FqGlDiVqmmt zhsO}DnOX^%I0p&3uNIK)S@#Dbl~#&nH5Z3VZCh4TS(fig&|K4tnA*u%&YXRhE?E|* zOS-uMi>x~=VMHh-8q5|EWtWyk$!WRTBFjOsX^gWsU`()0a#><~Saui7q2?;oa(8r= z(6YCL)=(`si)+u2x|k5Qmf>Ti6=Z03bvdsY%N?ab82*qwlzmU23VwxwC-@}v_)h)A zNAYAe+3*Ld*S-Y9o5JTIsR_8y74AiLJJW~^)N-Wh0O4Z|N#2vj-%I1WXZEDazisGw zcGJDz;(qt^ZeDD7LyyuA(%aMT2F`x+#((yJ-lO{>@P?}CKLlS>|ceZ>R+SNfrBxDLtHZu&d delta 102 zcmZ2tyWWiNGcPX}0}%X`_Q^^Vn#d=?m^V?~gOO)qff`FXlP2%R1#cPoq?4^;obyvs zW89pbgJU)?X1XNKs>$f5$v^qJY`|n4IZ3WGpb?BfT also matches: {', '.join(matches)}") + log("-" * 60) + else: + log("No drawer ID prefix clashes found.") + if __name__ == "__main__": main()