diff --git a/app/lib/bot/rodhelper.go b/app/lib/bot/rodhelper.go new file mode 100644 index 0000000..d6445ec --- /dev/null +++ b/app/lib/bot/rodhelper.go @@ -0,0 +1,25 @@ +package bot + +import ( + "time" + + "github.com/go-rod/rod" +) + +type Select struct { + Element *rod.Element + Selector string +} + +func (elemSelector *Select) SelectItem(changeValue string) error { + _, err := elemSelector.Element.Evaluate(rod.Eval(`document.querySelector("` + elemSelector.Selector + `").value = "` + changeValue + `";`)) + _, err = elemSelector.Element.Evaluate(rod.Eval(`document.querySelector("` + elemSelector.Selector + `").dispatchEvent(new Event('change'));`)) + return err + +} +func WaitLoad(frm *rod.Page) error { // belli bir süre redirect ten önceki js fonksiyonunun tamamlanması bekleniyor + wait := frm.WaitRequestIdle(50*time.Millisecond, nil, nil, nil) + wait() + err := frm.WaitLoad() + return err +} diff --git a/app/lib/ocr/readpdf-75de5191c083.json b/app/lib/ocr/readpdf-75de5191c083.json new file mode 100644 index 0000000..3a6344e --- /dev/null +++ b/app/lib/ocr/readpdf-75de5191c083.json @@ -0,0 +1,12 @@ +{ + "type": "service_account", + "project_id": "readpdf-247814", + "private_key_id": "75de5191c0835028caf9413f8023f26e353064f8", + "private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDJ0D23gU4luBgN\nRUmhL9h1qaBqNcv5KGPYUjDcdCGTixea8nOkOxZwYLmKU3VpEmizAAxe2zVrTH0J\nalJwW+u6UUKrgIDbV68/IzYKKKQ7HwrpVnjh0T8kSFTCsfoCcTAmhlFLvHtQBUdU\nxl1E5X+Ckp3K2LOZwi5lrlK3VttSuzFTWmQ2ZMjeEdxwPjsyTsM8XWQ+SQUoPYFj\nuLcqHFf8caZFPWXrxXluTOcJOl/N5OAvObrftUz2stNnwhuPI7648umzdeAuMWGW\nrRd0ZTPDtH0xx56nvSoghNREw9imNVKIlUPwSwCBZ5iNH6fiTO5IdeDG9qWf/STJ\nwVvaDj1xAgMBAAECggEAAdCVktOJgwf8xLcddQ2bwghxy4K1qtqUy0Ux8J7lY7uZ\nzWg7Z1FWClH/A8zBqYg42M3ko+sPYpT1gDgsivDIqzbqhTr1QwOu17/WpJC+U/8b\nd1hdDerLyTpn82LrqfSf8ji9p74Hfdi4+NIv1IbGdsN1bSA1vT7kcUBNY3NXKuSa\nm5ceq6cSzuPH8qxjgkMIxxARCQtNVksMk8lIBoXNk4xxBgGnOwgHWEK9bGarPXZO\n8Z9ruWHCAJL1fiXjyJbVhdz4q8euVdR10KpF+u0/lHx2JMlLBPuIDlC8sxpwX+/V\nSw5wFziGETJiiRgkKxEqKIt/WvjHxDHWkaNZPcXkgQKBgQD0rJvKn4/oS/4kECFo\nAPFZs7uHiMDuTKh9P4aE7Pu1b3sEXAfsjMk3N5j1eV8ACFLzOfCjAStue1MFj81S\nz4dl9NBRNUdE+uTORmiX/Ch2t6bSlKNi8CdkHHKAs6kVk2Wr2XBD0fYKEmGkuh++\nMenBPZuOBjSULy4v1wumW/2UTQKBgQDTJ7tNFzt7hMoW3/djasIHUdJ4m1JZWa1A\n4fDUfvCFARUUr0k1TxcHAtQ5wQwue+uF5J7OixI+xavwHSXBTPQLbn2V2Ypbaa/F\nNr63IR2IKrtwJzt8LTXBvREESajjolvb31Vxf14/0nJgW67bjaLu5/Yq3/mjjRIZ\nqg7PpdNvtQKBgQCD8PTOLn9/CEPTFLO/DwsXkVmmO/O2TbZqXDBhTB5sd+KBtlM7\nl6wGT7/3V+0H6nU43lzKuh2+pVhe3m4dovXj4EHaGP4Gz7lFFyjeFMeJRX37ftYg\ny1qinMiOaNPcY7DnHAlzOS0Rv1nSZ+AoQ2hHob5ZtzTxWAPzHmcU3fR/3QKBgQC8\nJOvcffXvUlurVDafa/GlCgAKnQMcQC6C4I9xGAaBzHwXKTSG/ojbI2csatnK1Xn/\nnLzv9rT0H7fbRG1utn3BbdsS2XpRh3Mpu2Tl0ej5enH3Nc3oEHSUwz1VX7jP08wb\ntvzwG3hET+S//RFp6eMjEqaif111oG5fVcrKtMwX/QKBgCCTlt3lBaZPuUInLEIK\nNRqR7iZnepJsDUMYJj/T/zg+JL0novWViVEQaFB88soNGXjV6WRmytlUDi3PpNe/\nswfxQICn+ylZtYD8VoHL1+l9kDBVUQlKmZuMgh8YKEWKHoAok5gZYedB4Gtte1XQ\n+ase2cuWUegX3FAlcMf3GBqE\n-----END PRIVATE KEY-----\n", + "client_email": "my-vision-sa@readpdf-247814.iam.gserviceaccount.com", + "client_id": "101714157123021750580", + "auth_uri": "https://accounts.google.com/o/oauth2/auth", + "token_uri": "https://oauth2.googleapis.com/token", + "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", + "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/my-vision-sa%40readpdf-247814.iam.gserviceaccount.com" +} diff --git a/app/lib/ocr/screenshot.png b/app/lib/ocr/screenshot.png new file mode 100644 index 0000000..85564c1 Binary files /dev/null and b/app/lib/ocr/screenshot.png differ diff --git a/app/lib/ocr/visionapi.go b/app/lib/ocr/visionapi.go new file mode 100644 index 0000000..04c9734 --- /dev/null +++ b/app/lib/ocr/visionapi.go @@ -0,0 +1,67 @@ +package ocr + +import ( + "context" + "fmt" + "os" + + "google.golang.org/api/option" + + vision "cloud.google.com/go/vision/apiv1" +) + +var credsPath = "C:/Users/huseyin/Desktop/project/notitek/BordroRobot/app/lib/ocr/readpdf-75de5191c083.json" + +func detectText(filePath string) ([]string, error) { + ctx := context.Background() + + client, err := vision.NewImageAnnotatorClient(ctx, option.WithCredentialsFile(credsPath)) + if err != nil { + return nil, fmt.Errorf("ImageAnnotatorClient oluşturulamadı: %v", err) + } + + f, err := os.Open(filePath) + if err != nil { + return nil, fmt.Errorf("Dosya açılamadı: %v", err) + } + defer f.Close() + + image, err := vision.NewImageFromReader(f) + if err != nil { + return nil, fmt.Errorf("Resim oluşturulamadı: %v", err) + } + + annotations, err := client.DetectTexts(ctx, image, nil, 10) + if err != nil { + return nil, fmt.Errorf("Metin tespit edilemedi: %v", err) + } + + res := make([]string, 0) + if len(annotations) == 0 { + return nil, fmt.Errorf("Metin tespit edilemedi: %v", err) + } else { + fmt.Println("Metin:") + for _, annotation := range annotations { + // fmt.Println(annotation) + res = append(res, annotation.Description) + + } + } + + return res, nil + +} + +func VisionApi(path string) ([]string, error) { + filePath := path // Örnek bir dosya yolu + + resp, err := detectText(filePath) + if err != nil { + fmt.Printf("Metin tespit edilemedi: %v\n", err) + return nil, err + } + for _, txt := range resp { + fmt.Println(txt) + } + return resp, nil +} diff --git a/docs/deneme.xlsx b/docs/deneme.xlsx new file mode 100644 index 0000000..1ffdf3f Binary files /dev/null and b/docs/deneme.xlsx differ