Improve search command
parent
0c6b340499
commit
d2547229dd
57
main.go
57
main.go
|
|
@ -48,29 +48,32 @@ func formatSize(size int64) string {
|
||||||
}
|
}
|
||||||
|
|
||||||
func searchCommand(args []string) {
|
func searchCommand(args []string) {
|
||||||
|
searchCmd := flag.NewFlagSet("search", flag.ExitOnError)
|
||||||
|
sortByFilename := searchCmd.Bool("s", false, "sort results by filename")
|
||||||
|
|
||||||
|
args = parseFlags(searchCmd, args)
|
||||||
|
|
||||||
printer := NewTablePrinter([]string{"File Name", "Size", "URL"})
|
printer := NewTablePrinter([]string{"File Name", "Size", "URL"})
|
||||||
printer.SetMaxWidths(defaultColWidths)
|
printer.SetMaxWidths(defaultColWidths)
|
||||||
|
|
||||||
|
if len(args) < 1 {
|
||||||
|
fmt.Println("search: no keyword provided.")
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
|
||||||
res, _ := registry.Search(args[0])
|
res, _ := registry.Search(args[0])
|
||||||
for _, fileInfo := range res {
|
for _, fileInfo := range res {
|
||||||
printer.AddRow(Row{fileInfo.Name, formatSize(fileInfo.Size), fileInfo.Url})
|
printer.AddRow(Row{fileInfo.Name, formatSize(fileInfo.Size), fileInfo.Url})
|
||||||
}
|
}
|
||||||
|
|
||||||
printer.SortByColumn(0) // sort by filename
|
if *sortByFilename {
|
||||||
|
printer.SortByColumn(0)
|
||||||
|
}
|
||||||
printer.Print()
|
printer.Print()
|
||||||
}
|
}
|
||||||
|
|
||||||
func doTransfer(transfer *XdccTransfer) {
|
func transferLoop(transfer *XdccTransfer) {
|
||||||
//pb := NewProgressBar()
|
pb := NewProgressBar()
|
||||||
|
|
||||||
err := transfer.Start()
|
|
||||||
|
|
||||||
fmt.Println(err)
|
|
||||||
|
|
||||||
if err != nil {
|
|
||||||
fmt.Println(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
evts := transfer.PollEvents()
|
evts := transfer.PollEvents()
|
||||||
quit := false
|
quit := false
|
||||||
|
|
@ -78,20 +81,30 @@ func doTransfer(transfer *XdccTransfer) {
|
||||||
e := <-evts
|
e := <-evts
|
||||||
switch evtType := e.(type) {
|
switch evtType := e.(type) {
|
||||||
case *TransferStartedEvent:
|
case *TransferStartedEvent:
|
||||||
// pb.SetTotal(int(evtType.FileSize))
|
pb.SetTotal(int(evtType.FileSize))
|
||||||
// pb.SetFileName(evtType.FileName)
|
pb.SetFileName(evtType.FileName)
|
||||||
// pb.SetState(ProgressStateDownloading)
|
pb.SetState(ProgressStateDownloading)
|
||||||
case *TransferProgessEvent:
|
case *TransferProgessEvent:
|
||||||
// pb.Increment(int(evtType.transferBytes))
|
pb.Increment(int(evtType.transferBytes))
|
||||||
case *TransferCompletedEvent:
|
case *TransferCompletedEvent:
|
||||||
// pb.SetState(ProgressStateCompleted)
|
pb.SetState(ProgressStateCompleted)
|
||||||
print(evtType)
|
|
||||||
quit = true
|
quit = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// TODO: do clean-up operations here
|
// TODO: do clean-up operations here
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func doTransfer(transfer *XdccTransfer) {
|
||||||
|
err := transfer.Start()
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
transferLoop(transfer)
|
||||||
|
}
|
||||||
|
|
||||||
func parseFlags(flagSet *flag.FlagSet, args []string) []string {
|
func parseFlags(flagSet *flag.FlagSet, args []string) []string {
|
||||||
findFirstFlag := func(args []string) int {
|
findFirstFlag := func(args []string) int {
|
||||||
for i, arg := range args {
|
for i, arg := range args {
|
||||||
|
|
@ -133,11 +146,11 @@ func loadUrlListFile(filePath string) []string {
|
||||||
}
|
}
|
||||||
|
|
||||||
func getCommand(args []string) {
|
func getCommand(args []string) {
|
||||||
searchCmd := flag.NewFlagSet("get", flag.ExitOnError)
|
getCmd := flag.NewFlagSet("get", flag.ExitOnError)
|
||||||
path := searchCmd.String("o", ".", "output folder of dowloaded file")
|
path := getCmd.String("o", ".", "output folder of dowloaded file")
|
||||||
inputFile := searchCmd.String("i", "", "input file containing a list of urls")
|
inputFile := getCmd.String("i", "", "input file containing a list of urls")
|
||||||
|
|
||||||
urlList := parseFlags(searchCmd, args)
|
urlList := parseFlags(getCmd, args)
|
||||||
|
|
||||||
if *inputFile != "" {
|
if *inputFile != "" {
|
||||||
urlList = append(urlList, loadUrlListFile(*inputFile)...)
|
urlList = append(urlList, loadUrlListFile(*inputFile)...)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue