mirror of
				https://gitea.com/gitea/tea.git
				synced 2025-10-31 01:05:26 +01:00 
			
		
		
		
	Show issue reactions (#421)
``` $ tea issue 230 #230 issue/pull details: show reactions (open) @6543 created 2020-10-22 16:39 since reactions are utf8 now and most terminals too, we can display them nicely :) https://gitea.com/api/v1/repos/gitea/tea/issues/230/reactions -------- 1x 🎉 | 1x 👀 | 1x| 1x 👍 | 1x 👎 | 1x 😆 | 1x 😕 | 1x ❤️ ``` caveats: - reactions are not returned as UTF8 (as was claimed in #230), so they need to be parsed. the library I use doesn't (and can't →
) support all reactions available in gitea - currently only for issues, as reactions for comments mean an additional API request for each comment.. fixes #230 Co-authored-by: Norwin <git@nroo.de> Reviewed-on: https://gitea.com/gitea/tea/pulls/421 Reviewed-by: Lunny Xiao <xiaolunwen@gmail.com> Reviewed-by: techknowlogick <techknowlogick@gitea.io> Co-authored-by: Norwin <noerw@noreply.gitea.io> Co-committed-by: Norwin <noerw@noreply.gitea.io>
This commit is contained in:
		| @@ -9,11 +9,12 @@ import ( | ||||
| 	"strings" | ||||
|  | ||||
| 	"code.gitea.io/sdk/gitea" | ||||
| 	"github.com/enescakir/emoji" | ||||
| ) | ||||
|  | ||||
| // IssueDetails print an issue rendered to stdout | ||||
| func IssueDetails(issue *gitea.Issue) { | ||||
| 	outputMarkdown(fmt.Sprintf( | ||||
| func IssueDetails(issue *gitea.Issue, reactions []*gitea.Reaction) { | ||||
| 	out := fmt.Sprintf( | ||||
| 		"# #%d %s (%s)\n@%s created %s\n\n%s\n", | ||||
| 		issue.Index, | ||||
| 		issue.Title, | ||||
| @@ -21,7 +22,27 @@ func IssueDetails(issue *gitea.Issue) { | ||||
| 		issue.Poster.UserName, | ||||
| 		FormatTime(issue.Created), | ||||
| 		issue.Body, | ||||
| 	), issue.HTMLURL) | ||||
| 	) | ||||
|  | ||||
| 	if len(reactions) > 0 { | ||||
| 		out += fmt.Sprintf("\n---\n\n%s\n", formatReactions(reactions)) | ||||
| 	} | ||||
|  | ||||
| 	outputMarkdown(out, issue.HTMLURL) | ||||
| } | ||||
|  | ||||
| func formatReactions(reactions []*gitea.Reaction) string { | ||||
| 	reactionCounts := make(map[string]uint16) | ||||
| 	for _, r := range reactions { | ||||
| 		reactionCounts[r.Reaction] += 1 | ||||
| 	} | ||||
|  | ||||
| 	reactionStrings := make([]string, 0, len(reactionCounts)) | ||||
| 	for reaction, count := range reactionCounts { | ||||
| 		reactionStrings = append(reactionStrings, fmt.Sprintf("%dx :%s:", count, reaction)) | ||||
| 	} | ||||
|  | ||||
| 	return emoji.Parse(strings.Join(reactionStrings, "  |  ")) | ||||
| } | ||||
|  | ||||
| // IssuesPullsList prints a listing of issues & pulls | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Norwin
					Norwin