yapusher/domains/yandex/v1/exported.go

78 lines
1.9 KiB
Go

// Yandex Disk File Pusher
// Copyright (c) 2019 Vladimir "fat0troll" Hodakov
package yandexv1
import (
"github.com/fat0troll/yapusher/internal/context"
"github.com/rs/zerolog"
"gitlab.com/pztrn/flagger"
)
const YandexAppID = "7d8a0561fdc44c05bb6695b464403f9c"
const YandexAppPw = "56e12e4ed0d64738bf441a47f68c7146"
const DefaultDeviceName = "yapusher-cli"
const MaxUploadSize = 10 * 1024 * 1024 * 1024 // 10 gigabytes
var (
c *context.Context
dlog zerolog.Logger
)
// New initializes package
func New(cc *context.Context) {
c = cc
dlog = c.Logger.With().Str("domain", "yandex").Int("version", 1).Logger()
_ = c.Flagger.AddFlag(&flagger.Flag{
Name: "authCode",
Description: "Auth code obtained from Yandex (seven digits).",
Type: "int",
DefaultValue: 0000000,
})
_ = c.Flagger.AddFlag(&flagger.Flag{
Name: "uploadPath",
Description: "Path to upload your file on Yandex.Disk. Must exist before uploading.",
Type: "string",
DefaultValue: "",
})
_ = c.Flagger.AddFlag(&flagger.Flag{
Name: "file",
Description: "Path to file that will be uploaded. Max upload size - 10 GB",
Type: "string",
DefaultValue: "",
})
_ = c.Flagger.AddFlag(&flagger.Flag{
Name: "force",
Description: "Force file to be uploaded even if destination file on Yandex.Disk already exists.",
Type: "bool",
DefaultValue: false,
})
dlog.Info().Msg("Domain initialized")
}
// Process handles authorization and files
func Process() {
authCode, _ := c.Flagger.GetIntValue("authCode")
if authCode != 0 {
sendCode(authCode)
}
if !checkAuth() {
authorize()
} else {
filePath, _ := c.Flagger.GetStringValue("file")
if filePath != "" {
uploadPath, _ := c.Flagger.GetStringValue("uploadPath")
forceUpload, _ := c.Flagger.GetBoolValue("force")
uploadFile(uploadPath, filePath, forceUpload)
}
}
showHelp()
}