diff options
| -rw-r--r-- | deviantion.go | 15 | ||||
| -rw-r--r-- | misc.go | 7 | ||||
| -rw-r--r-- | user-group.go | 24 | ||||
| -rw-r--r-- | 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 } @@ -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 { @@ -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 { |
