@@ -9,9 +9,10 @@ import (
99)
1010
1111type release struct {
12- Name string `json:"name"`
13- PublishedAt string `json:"published_at"`
14- Assets []struct {
12+ Name string `json:"name"`
13+ PublishedAt string `json:"published_at"`
14+ TotalDownloads int
15+ Assets []struct {
1516 Downloads int `json:"download_count"`
1617 } `json:"assets"`
1718}
@@ -23,6 +24,9 @@ func HandleDownloadsCommand(user string, repo string, verbose bool) {
2324 releaseCount := 0
2425 page := 1
2526
27+ releases := make ([]release , 0 )
28+ longestName := 0
29+
2630 for {
2731 resp , err := utils .Get (fmt .Sprintf ("%s%d" , baseUrl , page ))
2832 if err != nil {
@@ -52,19 +56,20 @@ func HandleDownloadsCommand(user string, repo string, verbose bool) {
5256 for _ , asset := range release .Assets {
5357 releaseAssetDownloads += asset .Downloads
5458 }
59+
5560 if verbose {
56- publishedAt , err := utils .RFC3339StrToPrettyStr (release .PublishedAt )
57- if err != nil {
58- fmt .Println (err )
59- return
61+ if len (release .Name ) > longestName {
62+ longestName = len (release .Name )
6063 }
61- fmt .Printf ("%s%-10d%s%-20s%s\n " , ansi .Bold , releaseAssetDownloads , ansi .Reset , release .Name , publishedAt )
64+
65+ release .TotalDownloads = releaseAssetDownloads
66+ releases = append (releases , release )
6267 }
68+
6369 downloadCount += releaseAssetDownloads
6470 }
6571
6672 releaseCount += len (releaseList )
67-
6873 page ++
6974 }
7075
@@ -73,5 +78,18 @@ func HandleDownloadsCommand(user string, repo string, verbose bool) {
7378 return
7479 }
7580
81+ if verbose {
82+ for _ , release := range releases {
83+ publishedAt , err := utils .RFC3339StrToPrettyStr (release .PublishedAt )
84+
85+ if err != nil {
86+ fmt .Println (err )
87+ continue
88+ }
89+
90+ fmt .Printf ("%s%-10d%s%-*s%s\n " , ansi .Bold , release .TotalDownloads , ansi .Reset , longestName + 5 , release .Name , publishedAt )
91+ }
92+ }
93+
7694 fmt .Printf ("%s/%s has %s%d%s downloads, across %s%d%s releases\n " , user , repo , ansi .Bold , downloadCount , ansi .Reset , ansi .Bold , releaseCount , ansi .Reset )
7795}
0 commit comments