From 5f86eec814194554d7b9b0f27d171831b9d95a60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Dvo=C5=99=C3=A1k?= <150935816+Dvorinka@users.noreply.github.com> Date: Thu, 22 May 2025 09:44:21 +0200 Subject: [PATCH] Add files via upload --- contact-scrape-test/contact-scrape.go | 49 +- contact-scrape-test/contacts.xlsx | Bin 12890 -> 12928 bytes contact-scrape-test/index.html | 743 +++++++++++++------------- 3 files changed, 381 insertions(+), 411 deletions(-) diff --git a/contact-scrape-test/contact-scrape.go b/contact-scrape-test/contact-scrape.go index 2da9315..9369186 100644 --- a/contact-scrape-test/contact-scrape.go +++ b/contact-scrape-test/contact-scrape.go @@ -187,7 +187,6 @@ func parseExcelFile(filename string) ([]Contact, error) { func parseTable(f *excelize.File, sheetName, startCol, endCol string, tableNum int) []Contact { var contacts []Contact var currentContact *Contact - var lastUpdate string // Get all rows in the sheet rows, err := f.GetRows(sheetName) @@ -220,8 +219,6 @@ func parseTable(f *excelize.File, sheetName, startCol, endCol string, tableNum i // Check for "Aktualizace" - end of data if len(row) > nameCol && strings.Contains(strings.ToLower(row[nameCol]), "aktualizace") { - lastUpdate = row[nameCol] - currentContact = nil // Reset to avoid attaching to previous contact break } @@ -259,43 +256,19 @@ func parseTable(f *excelize.File, sheetName, startCol, endCol string, tableNum i Table: tableNum, } contacts = append(contacts, *currentContact) - } else if strings.Contains(name, "Aktualizace") { - // Capture the update date - lastUpdate = name - currentContact = nil // Reset to avoid attaching to previous contact - } else if currentContact != nil && name == "" { - // This is additional data for the current contact or a general contact - if position != "" && !strings.Contains(position, "Vorlová") && !strings.Contains(position, "inženýrka") { - // Treat as a general contact if it doesn't contain specific personal identifiers - currentContact = &Contact{ - Name: position, // Use position as the name for general contacts - Position: "", - Phone: phone, - ServicePhone: servicePhone, - Table: tableNum, - } - contacts = append(contacts, *currentContact) - } else if position != "" { - newContact := *currentContact + } else if currentContact != nil { + // This is additional data for the current contact + newContact := *currentContact + if position != "" { newContact.Position = position - if phone != "" { - newContact.Phone = phone - } - if servicePhone != "" { - newContact.ServicePhone = servicePhone - } - contacts = append(contacts, newContact) } - } - } - - // Update last updated date - if lastUpdate != "" { - lastUpdated, err := time.Parse("2.1.2006", lastUpdate) - if err != nil { - log.Printf("Error parsing last updated date: %v", err) - } else { - currentData.LastUpdated = lastUpdated + if phone != "" { + newContact.Phone = phone + } + if servicePhone != "" { + newContact.ServicePhone = servicePhone + } + contacts = append(contacts, newContact) } } diff --git a/contact-scrape-test/contacts.xlsx b/contact-scrape-test/contacts.xlsx index b1ef6f53d7b23ecca2dcc6642654c646655fe69c..07b950b678627b7bafe834db18cea42ef60872a1 100644 GIT binary patch delta 5979 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 diff --git a/contact-scrape-test/index.html b/contact-scrape-test/index.html index 9bd11c8..a1969a8 100644 --- a/contact-scrape-test/index.html +++ b/contact-scrape-test/index.html @@ -1,374 +1,371 @@ - - - - - - Kontakty - - - - -
-
- -
-
-

📞 Kontakty

-

Firemní telefonní seznam

-
- -
- - -
-
- - - - -
-
- - -
- - - -
- - -
-
-

Načítání kontaktů...

-
- - - - - - -
-
- - - + + + + + + Kontakty + + + + + +
+
+

Poppe + Potthoff - Kontakty

+

Firemní telefonní seznam

+
+
+ +
+ +
+
+ +
+ +
+
+
+ + +
+ + + +
+ + +
+
+

Načítání kontaktů...

+
+ + + + + + +
+ +
+
+

2025 Poppe + Potthoff

+
+
+ + + \ No newline at end of file