tiktok-dl/models/config/config.go

58 lines
1.7 KiB
Go
Raw Normal View History

package config
2020-01-19 04:11:53 +02:00
import (
2020-02-25 01:01:10 +02:00
"flag"
"fmt"
"os"
2020-01-19 04:11:53 +02:00
)
// Config - Runtime configuration
var Config struct {
2020-02-25 01:01:10 +02:00
URL string
OutputPath string
BatchFilePath string
Debug bool
MetaData bool
Quiet bool
Deadline int
Limit int
JSONOnly bool
2020-01-19 04:11:53 +02:00
}
// GetConfig - Returns Config object
func GetConfig() {
2020-02-25 01:01:10 +02:00
outputPath := flag.String("output", "./downloads", "Output path")
batchFilePath := flag.String("batch-file", "", "File containing URLs/Usernames to download, one value per line. Lines starting with '#', are considered as comments and ignored.")
debug := flag.Bool("debug", false, "Enables debug mode")
metadata := flag.Bool("metadata", false, "Write video metadata to a .json file")
quiet := flag.Bool("quiet", false, "Supress output")
deadline := flag.Int("deadline", 1500, "Sets the timout for scraper logic in seconds (used as a workaround for 'context deadline exceeded' error)")
limit := flag.Int("limit", 0, "Sets the videos count limit (useful when there too many videos from the user or by hashtag)")
jsonOnly := flag.Bool("json", false, "Just get JSON data from scraper (without video downloading)")
flag.Parse()
2020-01-19 04:11:53 +02:00
2020-02-25 01:01:10 +02:00
args := flag.Args()
if len(args) < 1 && *batchFilePath == "" {
fmt.Println("Usage: tiktok-dl [OPTIONS] TIKTOK_USERNAME|TIKTOK_URL")
fmt.Println(" or: tiktok-dl [OPTIONS] -batch-file path/to/users.txt")
os.Exit(2)
}
2020-01-19 04:11:53 +02:00
2020-02-25 01:01:10 +02:00
if len(args) > 0 {
Config.URL = flag.Args()[len(args)-1]
} else {
Config.URL = ""
}
Config.OutputPath = *outputPath
Config.BatchFilePath = *batchFilePath
Config.Debug = *debug
Config.MetaData = *metadata
Config.Quiet = *quiet
if *jsonOnly {
Config.Quiet = true
}
Config.Deadline = *deadline
Config.Limit = *limit
Config.JSONOnly = *jsonOnly
2020-01-19 04:11:53 +02:00
}