From cb4e31c8e691f9ee1f0868cec9114688eee6eec5 Mon Sep 17 00:00:00 2001 From: thanhtl Date: Fri, 23 May 2025 15:46:10 +0700 Subject: [PATCH] Add Tagging --- Tagging | 176 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 176 insertions(+) create mode 100644 Tagging diff --git a/Tagging b/Tagging new file mode 100644 index 0000000..0a4390c --- /dev/null +++ b/Tagging @@ -0,0 +1,176 @@ +tell application id "DNtp" + try + set selectedRecords to selection + if (count of selectedRecords) = 0 then + display dialog "Please select one or more files first" buttons {"OK"} default button 1 + return + end if + + set taggedCount to 0 + set errorFiles to {} + + repeat with theRecord in selectedRecords + try + -- Try multiple methods to get content + set recordContent to "" + try + set recordContent to content of theRecord + on error + try + set recordContent to plain text of theRecord + on error + try + set recordContent to rich text of theRecord + end try + end try + end try + + if recordContent is "" then + error "Could not read content" + end if + + -- Check for Hoàng Thị Quỳnh Hoa + if (recordContent contains "Hoàng Thị Quỳnh Hoa") then + if not (tags of theRecord contains "PB.Hoa") then + set tags of theRecord to tags of theRecord & "PB.Hoa" + set taggedCount to taggedCount + 1 + end if + end if + + -- Check for Đặng Thu Thủy + if (recordContent contains "Đặng Thu Thủy") then + if not (tags of theRecord contains "PB.Thuỷ") then + set tags of theRecord to tags of theRecord & "PB.Thuỷ" + set taggedCount to taggedCount + 1 + end if + end if + + -- Check for Định Quang Dân + if (recordContent contains "Đinh Quang Dân") then + if not (tags of theRecord contains "PB.Dân") then + set tags of theRecord to tags of theRecord & "PB.Dân" + set taggedCount to taggedCount + 1 + end if + end if + + -- Check for Lê Hải Hà + if (recordContent contains "Lê Hải Hà") then + if not (tags of theRecord contains "TB.Hà") then + set tags of theRecord to tags of theRecord & "TB.Hà" + set taggedCount to taggedCount + 1 + end if + end if + + -- Check for Phạm Minh Thư + if (recordContent contains "Phạm Minh Thư") then + if not (tags of theRecord contains "PB.Thư") then + set tags of theRecord to tags of theRecord & "PB.Thư" + set taggedCount to taggedCount + 1 + end if + end if + + -- Check for Chu Ngọc Quý + if (recordContent contains "Chu Ngọc Quý") then + if not (tags of theRecord contains "PB.Quý") then + set tags of theRecord to tags of theRecord & "PB.Quý" + set taggedCount to taggedCount + 1 + end if + end if + + -- Check for THƯ CÔNG TÁC (strictly case sensitive) + considering case + if (recordContent contains "THƯ CÔNG TÁC") then + if not (tags of theRecord contains "TCT") then + set tags of theRecord to tags of theRecord & "TCT" + set taggedCount to taggedCount + 1 + end if + end if + end considering + + -- Check for TỜ TRÌNH (strictly case sensitive) + considering case + if (recordContent contains "TỜ TRÌNH") then + if not (tags of theRecord contains "TTr") then + set tags of theRecord to tags of theRecord & "TTr" + set taggedCount to taggedCount + 1 + end if + end if + end considering + + -- Check for GIẤY MỜI (strictly case sensitive) + considering case + if (recordContent contains "GIẤY MỜI") then + if not (tags of theRecord contains "GM") then + set tags of theRecord to tags of theRecord & "GM" + set taggedCount to taggedCount + 1 + end if + end if + end considering + + -- Check for PHIẾU YÊU CẦU (strictly case sensitive) + considering case + if (recordContent contains "PHIẾU YÊU CẦU") then + if not (tags of theRecord contains "PYC") then + set tags of theRecord to tags of theRecord & "PYC" + set taggedCount to taggedCount + 1 + end if + end if + end considering + + -- Check for NGHỊ QUYẾT (strictly case sensitive) + considering case + if (recordContent contains "NGHỊ QUYẾT") then + if not (tags of theRecord contains "NQ") then + set tags of theRecord to tags of theRecord & "NQ" + set taggedCount to taggedCount + 1 + end if + end if + end considering + + -- Check for THÔNG BÁO (strictly case sensitive) + considering case + if (recordContent contains "THÔNG BÁO") then + if not (tags of theRecord contains "TB") then + set tags of theRecord to tags of theRecord & "TB" + set taggedCount to taggedCount + 1 + end if + end if + end considering + + -- Check for BÁO CÁO (strictly case sensitive) + considering case + if (recordContent contains "BÁO CÁO") then + if not (tags of theRecord contains "BC") then + set tags of theRecord to tags of theRecord & "BC" + set taggedCount to taggedCount + 1 + end if + end if + end considering + + -- Check for PHIẾU GIAO VIỆC (strictly case sensitive) + considering case + if (recordContent contains "PHIẾU GIAO VIỆC") then + if not (tags of theRecord contains "PGV") then + set tags of theRecord to tags of theRecord & "PGV" + set taggedCount to taggedCount + 1 + end if + end if + end considering + + on error errText + -- Add the problematic file to our list with error details + set errorFiles to errorFiles & ((name of theRecord) & " (Error: " & errText & ")" & return) + end try + end repeat + + -- Show results + if (count of errorFiles) > 0 then + display dialog "Added " & taggedCount & " tags." & return & return & "The following files could not be read:" & return & errorFiles buttons {"OK"} default button 1 + else + display notification "Successfully added " & taggedCount & " tags to all selected files." + end if + + on error errMsg + display dialog "Error: " & errMsg buttons {"OK"} default button 1 + end try +end tell \ No newline at end of file