From 87567b87e63c9dcc501307a872e7eece85bd9216 Mon Sep 17 00:00:00 2001 From: fox-kazuki-matsumoto Date: Sat, 26 Jan 2019 17:16:25 +0900 Subject: [PATCH] =?UTF-8?q?Update=20=E5=87=BA=E5=8A=9B=E5=BD=A2=E5=BC=8F?= =?UTF-8?q?=E3=82=92=E3=83=86=E3=83=BC=E3=83=96=E3=83=AB=E3=81=AB=E5=A4=89?= =?UTF-8?q?=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/qiita.go | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/api/qiita.go b/api/qiita.go index aef8a7e..639b9ed 100644 --- a/api/qiita.go +++ b/api/qiita.go @@ -8,6 +8,8 @@ import ( "net/url" "os" "time" + "github.com/olekukonko/tablewriter" + "strconv" ) // jsonのパース用に構造体を定義 @@ -112,7 +114,7 @@ func RunQiitaSearch() { var baseDate time.Time - fmt.Println("いいね数 タイトル URL") + //fmt.Println("いいね数 タイトル URL") // コマンドライン引数がある場合 YYYY-MM-DD の形で指定 不適切な方の場合エラー //var err error @@ -136,8 +138,33 @@ func RunQiitaSearch() { targetDate := startDate.AddDate(0, 0, i) fmt.Printf("%d-%d-%d\n", targetDate.Year(), int(targetDate.Month()), targetDate.Day()) + var output [][]string + // データ取得 datas := fetchQiitaData(qiitaToken, targetDate) - outputQiitaData(datas) + // 出力用データ整形 + for _, val := range datas { + title := "" + splitlen := 40 + runes := []rune(val.Title) + + for i := 0; i< len(runes); i += splitlen { + if i+splitlen < len(runes) { + title += string(runes[i:(i+splitlen)]) + "\n" + } else { + title += string(runes[i:]) + } + } + + output = append(output, []string{strconv.Itoa(val.LikesCount), title, val.Url}) + } + + // テーブル描画 + table := tablewriter.NewWriter(os.Stdout) + table.SetHeader([]string{"いいね数", "タイトル", "URL"}) + table.SetAutoMergeCells(true) + table.SetRowLine(true) + table.AppendBulk(output) + table.Render() } }