summaryrefslogtreecommitdiff
path: root/user-group.go
diff options
context:
space:
mode:
authorlost+skunk <[email protected]>2024-07-04 11:27:56 +0300
committerlost+skunk <[email protected]>2024-07-04 11:27:56 +0300
commit0a6260b2e026c073f13534dbc882813d3d74b32a (patch)
tree9deac1966fa6b11c2c73374cc8e6453cadbf11a6 /user-group.go
parent949bef2c5d5ee53a5d6158e16921c698f8a6e266 (diff)
downloaddevianter-0a6260b2e026c073f13534dbc882813d3d74b32a.tar.gz
devianter-0a6260b2e026c073f13534dbc882813d3d74b32a.tar.bz2
devianter-0a6260b2e026c073f13534dbc882813d3d74b32a.zip
Небольшие улучшения в группах
Diffstat (limited to 'user-group.go')
-rw-r--r--user-group.go77
1 files changed, 54 insertions, 23 deletions
diff --git a/user-group.go b/user-group.go
index 1247ffe..bfa1971 100644
--- a/user-group.go
+++ b/user-group.go
@@ -6,13 +6,14 @@ import (
)
// структура группы или пользователя
-type groups struct {
- GroupAbout struct {
- FoundatedAt time `json:"foundationTs"`
- Description Text
- }
- GroupAdmins struct {
- Results []struct {
+type GroupAbout struct {
+ FoundatedAt time `json:"foundationTs"`
+ Description Text
+}
+type GroupAdmins struct {
+ Results []struct {
+ TypeId int
+ User struct {
Username string
}
}
@@ -50,11 +51,32 @@ type GRuser struct {
Modules []struct {
Name string
ModuleData struct {
- groups
+ GroupAbout GroupAbout
+ GroupAdmins GroupAdmins
users
+ }
+ }
+ }
+ }
+ Extra struct {
+ Tag string `json:"gruserTagline"`
+ Stats struct {
+ Deviations, Watchers, Watching, Pageviews, CommentsMade, Favourites, Friends int
+ FeedComments int `json:"commentsReceivedProfile"`
+ }
+ } `json:"pageExtraData"`
+}
+type Gallery struct {
+ Gruser struct {
+ ID int `json:"gruserId"`
+ Page struct {
+ Modules []struct {
+ Name string
+ ModuleData struct {
// группы
Folders struct {
+ HasMore bool
Results []struct {
FolderId int
Name string
@@ -63,6 +85,7 @@ type GRuser struct {
// галерея
Folder struct {
+ HasMore bool
Username string
Pages int `json:"totalPageCount"`
Deviations []Deviation
@@ -71,18 +94,13 @@ type GRuser struct {
}
}
}
- Extra struct {
- Tag string `json:"gruserTagline"`
- Stats struct {
- Deviations, Watchers, Watching, Pageviews, CommentsMade, Favourites, Friends int
- FeedComments int `json:"commentsReceivedProfile"`
- }
- } `json:"pageExtraData"`
+ HasMore bool
+ Results []Deviation
}
type Group struct {
Name string // обязательно заполнить
- Content GRuser
+ Content Gallery
}
// подходит как группа, так и пользователь
@@ -93,14 +111,27 @@ func (s Group) GroupFunc() (g GRuser) {
}
// гарелея пользователя или группы
-func (s Group) Gallery(page int) (g Group) {
+func (s Group) Gallery(page int, folderid ...int) (g Group) {
var url strings.Builder
- url.WriteString("dauserprofile/init/gallery?username=")
- url.WriteString(s.Name)
- url.WriteString("&page=")
- url.WriteString(strconv.Itoa(page))
- url.WriteString("&deviations_limit=50&with_subfolders=false")
+ if folderid[0] > 0 {
+ page--
+ url.WriteString("dashared/gallection/contents?username=")
+ url.WriteString(s.Name)
+ url.WriteString("&folderid=")
+ url.WriteString(strconv.Itoa(folderid[0]))
+ url.WriteString("&offset=")
+ url.WriteString(strconv.Itoa(page * 50))
+ url.WriteString("&type=gallery&")
+ } else {
+ url.WriteString("dauserprofile/init/gallery?username=")
+ url.WriteString(s.Name)
+ url.WriteString("&page=")
+ url.WriteString(strconv.Itoa(page))
+ url.WriteString("&deviations_")
+ }
+ url.WriteString("limit=50")
+ url.WriteString("&with_subfolders=false")
- ujson(url.String(), &g)
+ ujson(url.String(), &g.Content)
return
}