From b070953dd7032c2a643001a5f4f380abbda1e525 Mon Sep 17 00:00:00 2001 From: mpl Date: Wed, 21 Aug 2019 00:03:26 +0200 Subject: [PATCH] WIP nav to the end --- main.go | 48 +++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 43 insertions(+), 5 deletions(-) diff --git a/main.go b/main.go index 637491e..fbeb08a 100644 --- a/main.go +++ b/main.go @@ -2,6 +2,7 @@ package main import ( "context" + "errors" "flag" "fmt" "io/ioutil" @@ -53,8 +54,8 @@ func main() { return nil }), chromedp.Navigate("https://photos.google.com/"), - chromedp.Sleep(30000*time.Millisecond), - // chromedp.Sleep(5000*time.Millisecond), + // chromedp.Sleep(30000*time.Millisecond), + chromedp.Sleep(5000*time.Millisecond), chromedp.ActionFunc(func(ctx context.Context) error { log.Printf("post-navigate") return nil @@ -68,6 +69,36 @@ func main() { log.Fatal(err) } + navEnd := func(ctx context.Context) error { + keyEnd, ok := kb.Keys['\u0305'] + if !ok { + return errors.New("no End key") + } + + down := input.DispatchKeyEventParams{ + Key: keyEnd.Key, + Code: keyEnd.Code, + // Some github issue says to remove NativeVirtualKeyCode, but it does not change anything. + NativeVirtualKeyCode: keyEnd.Native, + WindowsVirtualKeyCode: keyEnd.Windows, + Type: input.KeyDown, + } + if runtime.GOOS == "darwin" { + down.NativeVirtualKeyCode = 0 + } + up := down + up.Type = input.KeyUp + + for _, ev := range []*input.DispatchKeyEventParams{&down, &up} { + log.Printf("Event: %+v", *ev) + if err := ev.Do(ctx); err != nil { + return err + } + } + time.Sleep(5 * time.Second) + return nil + } + download := func(ctx context.Context) (string, error) { dir := s.dlDir keyD, ok := kb.Keys['D'] @@ -203,6 +234,7 @@ func main() { } if err := chromedp.Run(ctx, + chromedp.ActionFunc(navEnd), page.SetDownloadBehavior(page.SetDownloadBehaviorBehaviorAllow).WithDownloadPath(s.dlDir), // TODO(mpl): add policy func over photo URL, which decides what we do with the downloaded file. default policy is storing it on disk. chromedp.Navigate("https://photos.google.com/"), @@ -212,9 +244,13 @@ func main() { log.Printf("body is ready") return nil }), - chromedp.ActionFunc(firstNav), - chromedp.ActionFunc(dlAndMove), - chromedp.ActionFunc(navRightN(*nItemsFlag-1)), + chromedp.KeyEvent(kb.End), + chromedp.Sleep(10000*time.Millisecond), + /* + chromedp.ActionFunc(firstNav), + chromedp.ActionFunc(dlAndMove), + chromedp.ActionFunc(navRightN(*nItemsFlag-1)), + */ ); err != nil { log.Fatal(err) } @@ -224,6 +260,8 @@ func main() { // https://github.com/chromedp/chromedp/issues/400 // https://godoc.org/github.com/chromedp/chromedp/kb + _, _ = firstNav, navRightN + } type Session struct {