krz/devianter

A DeviantArt guest API library for Go.

clone: git clone https://gitbay.org/krz/devianter.git

edfc25e18c4585b2deed7b7d9531cc3fcecf1d4f

verified · cmc

author: Christian Cleberg <hello@cleberg.net> · 2026-07-15T00:09:21Z

fix: resolve golandci-lint errors
 deviantion.go | 15 +++++++++------
 misc.go       |  7 ++++++-
 user-group.go | 24 ++++++++++++------------
 util.go       |  6 +++++-
 4 files changed, 32 insertions(+), 20 deletions(-)

diff --git a/deviantion.go b/deviantion.go
index 288b0e2..197f2af 100644
--- a/deviantion.go
+++ b/deviantion.go
@@ -149,12 +149,15 @@ func GetDeviation(id string, user string) (st Post, err Error) {
 			}
 		}
 
-		json.Unmarshal([]byte(txt), &description)
-		for _, a := range description.Blocks {
-			txt = a.Text
-		}
-	}
+        if err := json.Unmarshal([]byte(txt), &description); err != nil {
+            // Handle error appropriately
+            try(err) // or log/return the error
+        }
+        for _, a := range description.Blocks {
+            txt = a.Text
+        }
+    }
 	st.Description = txt
-	
+
 	return
 }
diff --git a/misc.go b/misc.go
index cda4374..8e6c5aa 100644
--- a/misc.go
+++ b/misc.go
@@ -78,9 +78,14 @@ type Search struct {
 	ResultsGalleryTemp []Deviation `json:"results"`
 }
 
-func PerformSearch(query string, page int, scope rune, user ...string) (ss Search, err error, daError Error) {
+func PerformSearch(query string, page int, scope rune, user ...string) (ss Search, daError Error, err error) {
 	var buildurl strings.Builder
 
+    if user == nil {
+        err = errors.New("missing username (last argument)")
+        return
+    }
+
 	// о5 построение ссылок.
 	switch scope {
 	case 'a': // поиск артов по названию
diff --git a/user-group.go b/user-group.go
index 733eda5..d84c2c8 100644
--- a/user-group.go
+++ b/user-group.go
@@ -75,13 +75,13 @@ type Group struct {
 }
 
 // подходит как группа, так и пользователь
-func (s Group) Get() (g GRuser, err error, daError Error) {
-	if s.Name == "" {
-		return g, errors.New("missing Name field"), daError
-	}
-	daError = ujson("dauserprofile/init/about?username="+s.Name, &g)
+func (s Group) Get() (g GRuser, daError Error, err error) {
+    if s.Name == "" {
+        return g, daError, errors.New("missing Name field")
+    }
+    daError = ujson("dauserprofile/init/about?username="+s.Name, &g)
 
-	return
+    return
 }
 
 func (s Group) Favourites(page int, all bool, folderid ...int) (g Group, err Error) {
@@ -110,10 +110,10 @@ func (s Group) Favourites(page int, all bool, folderid ...int) (g Group, err Err
 }
 
 // гарелея пользователя или группы
-func (s Group) Gallery(page int, folderid ...int) (g Group, err error, daError Error) {
-	if s.Name == "" {
-		return g, errors.New("missing Name field"), daError
-	}
+func (s Group) Gallery(page int, folderid ...int) (g Group, daError Error, err error) {
+    if s.Name == "" {
+        return g, daError, errors.New("missing Name field")
+    }
 
 	var url strings.Builder
 	if folderid[0] > 0 {
@@ -135,8 +135,8 @@ func (s Group) Gallery(page int, folderid ...int) (g Group, err error, daError E
 	url.WriteString("limit=50")
 	url.WriteString("&with_subfolders=false")
 
-	daError = ujson(url.String(), &g.Content)
-	return
+    daError = ujson(url.String(), &g.Content)
+    return
 }
 
 type GroupAbout struct {
diff --git a/util.go b/util.go
index dddd7db..ac3e3e4 100644
--- a/util.go
+++ b/util.go
@@ -94,7 +94,11 @@ func request(uri string, other ...string) reqrt {
 		r.Err = e
 		return r
 	}
-	defer resp.Body.Close()
+    defer func() {
+        if err := resp.Body.Close(); err != nil {
+            try(err)
+        }
+    }()
 
 	body, e := io.ReadAll(resp.Body)
 	if e != nil {