rod helper added
This commit is contained in:
25
app/lib/bot/rodhelper.go
Normal file
25
app/lib/bot/rodhelper.go
Normal file
@@ -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
|
||||||
|
}
|
||||||
12
app/lib/ocr/readpdf-75de5191c083.json
Normal file
12
app/lib/ocr/readpdf-75de5191c083.json
Normal file
@@ -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"
|
||||||
|
}
|
||||||
BIN
app/lib/ocr/screenshot.png
Normal file
BIN
app/lib/ocr/screenshot.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 21 KiB |
67
app/lib/ocr/visionapi.go
Normal file
67
app/lib/ocr/visionapi.go
Normal file
@@ -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
|
||||||
|
}
|
||||||
BIN
docs/deneme.xlsx
Normal file
BIN
docs/deneme.xlsx
Normal file
Binary file not shown.
Reference in New Issue
Block a user