示例#1
0
文件: shubc.go 项目: kevinxusz/shubc
func cmd_items(conn *scrapinghub.Connection, args []string, flags *PFlags) {
	if len(args) < 1 {
		log.Fatalf("Missing argument: <job_id>\n")
	}

	job_id := args[0]
	count := flags.Count
	offset := flags.Offset
	ls := scrapinghub.LinesStream{Conn: conn, Count: count, Offset: offset}

	if flags.AsJsonLines {
		ch_lines, errch := ls.ItemsAsJsonLines(job_id)

		for line := range ch_lines {
			print_out(flags, line)
		}
		for err := range errch {
			log.Fatalf("items error: %s\n", err)
		}
	} else if flags.AsCSV {
		ch_lines, errch := ls.ItemsAsCSV(job_id, flags.CSVFlags.IncludeHeaders, flags.CSVFlags.Fields)
		for line := range ch_lines {
			print_out(flags, line)
		}
		for err := range errch {
			log.Fatalf("items error: %s\n", err)
		}
	} else {
		items, err := scrapinghub.RetrieveItems(conn, job_id, count, offset)
		if err != nil {
			log.Fatalf("items error: %s\n", err)
		}
		for i, e := range items {
			print_out(flags, "Item %5d %s\n", i, dashes(129))
			for k, v := range e {
				//fmt.Printf("| %-33s | %100s |\n", k, fmt.Sprintf("%v", v))
				print_out(flags, "| %-33s | %100s |\n", k, fmt.Sprintf("%v", v))
			}
			print_out(flags, dashes(140))
		}
	}
}