From d1f3414bbff4bdbf437082c2d9f87ffde485af50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Wed, 22 Apr 2015 21:46:31 +0200 Subject: [PATCH] Add link support to description --- fdroidcl.go | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/fdroidcl.go b/fdroidcl.go index 4c70b21..4e2e9fc 100644 --- a/fdroidcl.go +++ b/fdroidcl.go @@ -82,6 +82,8 @@ func (app *App) writeTextDesc(w io.Writer) { firstParagraph := true linePrefix := "" colsUsed := 0 + var links []string + linked := false for { token, err := decoder.Token() if err == io.EOF || token == nil { @@ -102,6 +104,14 @@ func (app *App) writeTextDesc(w io.Writer) { fmt.Fprint(w, "\n *") linePrefix = " " colsUsed = 0 + case "a": + for _, attr := range t.Attr { + if attr.Name.Local == "href" { + links = append(links, attr.Value) + linked = true + break + } + } } case xml.EndElement: switch t.Name.Local { @@ -114,6 +124,10 @@ func (app *App) writeTextDesc(w io.Writer) { } case xml.CharData: left := string(t) + if linked { + left += fmt.Sprintf("[%d]", len(links)-1) + linked = false + } limit := 80 - len(linePrefix) - colsUsed firstLine := true for len(left) > limit { @@ -145,6 +159,12 @@ func (app *App) writeTextDesc(w io.Writer) { colsUsed += len(left) } } + if len(links) > 0 { + fmt.Fprintln(w) + for i, link := range links { + fmt.Fprintf(w, "[%d] %s\n", i, link) + } + } } func (app *App) prepareData() {