hydroxide-push/cmd/hydroxide/hydroxide.go

61 lines
1.0 KiB
Go
Raw Normal View History

2017-08-22 01:04:16 +03:00
package main
import (
"bufio"
"fmt"
"log"
"os"
"github.com/emersion/hydroxide/protonmail"
)
func main() {
c := &protonmail.Client{
2017-08-22 11:16:20 +03:00
RootURL: "https://dev.protonmail.com/api",
AppVersion: "Web_3.11.1",
ClientID: "Web",
2017-08-22 01:04:16 +03:00
ClientSecret: "4957cc9a2e0a2a49d02475c9d013478d",
}
scanner := bufio.NewScanner(os.Stdin)
fmt.Printf("Username: ")
scanner.Scan()
username := scanner.Text()
fmt.Printf("Password: ")
scanner.Scan()
password := scanner.Text()
2017-08-22 11:51:48 +03:00
authInfo, err := c.AuthInfo(username)
if err != nil {
log.Fatal(err)
}
var twoFactorCode string
if authInfo.TwoFactor == 1 {
fmt.Printf("2FA code: ")
scanner.Scan()
twoFactorCode = scanner.Text()
}
2017-08-22 01:04:16 +03:00
2017-08-22 11:51:48 +03:00
auth, err := c.Auth(username, password, twoFactorCode, authInfo)
2017-08-22 01:04:16 +03:00
if err != nil {
log.Fatal(err)
}
2017-08-22 10:41:47 +03:00
log.Println(auth)
2017-08-22 11:51:48 +03:00
var mailboxPassword string
if auth.PasswordMode == protonmail.PasswordTwo {
fmt.Printf("Mailbox password: ")
scanner.Scan()
mailboxPassword = scanner.Text()
}
_, err = c.Unlock(auth, mailboxPassword)
if err != nil {
log.Fatal(err)
}
2017-08-22 01:04:16 +03:00
}