project flow completed
This commit is contained in:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user