project flow completed

This commit is contained in:
hysn99
2024-04-15 14:50:36 +03:00
parent a5612d6d9e
commit bfcb484104
9 changed files with 143 additions and 58 deletions

View File

@@ -11,6 +11,8 @@ import (
"strings"
"time"
"github.com/shopspring/decimal"
"github.com/go-rod/rod"
"github.com/go-rod/rod/lib/launcher"
"github.com/go-rod/rod/lib/proto"
@@ -28,8 +30,9 @@ type errorInfo struct {
Index int
}
type BordroPageScript struct {
Index string
Value string
Index string
Value string
itemType string
}
func (l *Luca) ErrFunc(index bool) {
@@ -121,7 +124,7 @@ func VerifyCaptcha(page *rod.Page) error {
}
func NewLucaBot() *Luca {
l := launcher.New().
Headless(false).
Headless(true).
Devtools(true)
//defer l.Cleanup()
@@ -334,37 +337,49 @@ func (l *Luca) BordroTableMaping(frame *rod.Page, b *LucaBordro) ([]BordroPageSc
fmt.Print(err)
pageScript := BordroPageScript{
Value: text,
Index: *id,
Value: text,
Index: *id,
itemType: "input",
}
scriptIndexArray = append(scriptIndexArray, pageScript)
fmt.Println("Text:", text)
fmt.Println("ID:", *id)
fmt.Println("--------------------")
mainText = ""
}
} else {
if t <= len(table)-2 {
if text != "" {
aad, err := table[t+1].Element("input")
inputBox, err := table[t+1].Element("input")
selectBox, err := table[t+1].Element("select")
fmt.Print(err)
if aad != nil {
aa, err := aad.Attribute("type")
if inputBox != nil {
types, err := inputBox.Attribute("type")
if err != nil {
return nil, err
}
if *aa != "hidden" {
id, err := aad.Attribute("id")
if *types != "hidden" {
id, err := inputBox.Attribute("id")
pageScript := BordroPageScript{
Value: text,
Index: *id,
Value: text,
Index: *id,
itemType: "input",
}
scriptIndexArray = append(scriptIndexArray, pageScript)
fmt.Print(aad, err, id, aa)
fmt.Print(inputBox, err, id, types)
}
} else if selectBox != nil {
id, err := selectBox.Attribute("id")
if err != nil {
return nil, err
}
pageScript := BordroPageScript{
Value: text,
Index: *id,
itemType: "selectBox",
}
scriptIndexArray = append(scriptIndexArray, pageScript)
}
mainText = ""
}
}
@@ -590,22 +605,56 @@ func (l *Luca) BordroYaz(month, year int, b *LucaBordro, lastItem bool) error {
}
fmt.Print(rsp)
//rsp den dönden değerler ile matchlencek ve yazılcak
firsts := make(map[string]decimal.Decimal)
if value, ok := b.Ucretler["Normal Gün"]; ok {
// Anahtarı ve değeri yeni map'e ekle
firsts["Normal Gün"] = value
}
for k, v := range firsts {
fmt.Print(v)
for i := 0; i < len(rsp); i++ {
if k == rsp[i].Value {
el, err := frame3.Element("#" + rsp[i].Index)
if err != nil {
return err
}
err = el.Input(v.String())
el.Eval(`this.dispatchEvent(new KeyboardEvent('keydown', {'key': 'Enter'}))`)
break
}
}
break
}
for k, v := range b.Ucretler {
var elementInsertControl bool = true
tt := v.String()
fmt.Print(tt)
if k == "Normal Gün" {
continue
}
Wait(frame3, 100)
for i := 0; i < len(rsp); i++ {
if k == rsp[i].Value {
if rsp[i].itemType == "selectBox" {
elemBox, err := frame3.Element("#" + rsp[i].Index)
if err != nil {
return err
}
selectInput = Select{Element: elemBox, Selector: "#" + rsp[i].Index}
err = selectInput.SelectItem(v.String())
if err != nil {
return err
}
elementInsertControl = false
break
}
el, err := frame3.Element("#" + rsp[i].Index)
if err != nil {
return err
}
err = el.Input(v.String())
elementInsertControl = false
//el.Eval(`this.dispatchEvent(new KeyboardEvent('keydown', {'key': 'Enter'}))`)
break
}
}
@@ -628,8 +677,6 @@ func (l *Luca) BordroYaz(month, year int, b *LucaBordro, lastItem bool) error {
return errors.New(k + " Sütunu Bulunamadı Taslak Hatası, ")
}
}
fmt.Print(v, k)
}
err = ClickItem(frame3, "body > form > table > tbody > tr.altBar.alt-button-bar > th > table > tbody > tr > td.right > button", 1)
if err != nil {