Commit 4487cdcbe9

4487cdcbe9ed2ad4bc661c04600336505054177c

parent: 42ea2980f9

Unsigned

lost+skunk <skunky@ebloid.ru> · 2024-08-14 16:18 UTC

user favs

Layout: unified · split

deviantion.go +1 −1
@@ -104,7 +104,7 @@ func UrlFromMedia(m Media, thumb ...int) string {
104104 for _, t := range m.Types {
105105 if t.T == "fullview" {
106106 url.WriteString(m.BaseUri)
107 if m.BaseUri[len(m.BaseUri)-3:] != "gif" && t.W*t.H < 33177600 {
107 if l := len(m.BaseUri); l != 0 && (m.BaseUri[l-3:] != "gif" && t.W*t.H < 33177600) {
108108 if len(thumb) != 0 {
109109 subtractWidthHeight(thumb[0], &t.W, &t.H)
110110 }
misc.go +15 −9
@@ -88,17 +88,23 @@ func PerformSearch(query string, page int, scope rune, user ...string) (ss Searc
8888 buildurl.WriteString("dabrowse/search/all?q=")
8989 case 't': // поиск артов по тегам
9090 buildurl.WriteString("dabrowse/networkbar/tag/deviations?tag=")
91 case 'g': // поиск артов пользователя или группы
92 if user != nil {
93 buildurl.WriteString("dashared/gallection/search?username=")
94 buildurl.WriteString(user[0])
95 buildurl.WriteString("&type=gallery&order=most-recent&init=true&limit=50&q=")
96 } else {
91 case 'g', 'f': // поиск артов пользователя или группы
92 if user == nil {
9793 e = errors.New("missing username (last argument)")
9894 return
9995 }
96
97 buildurl.WriteString("dashared/gallection/search?username=")
98 buildurl.WriteString(user[0])
99 buildurl.WriteString("&type=")
100 if scope == 'g' {
101 buildurl.WriteString("gallery")
102 } else {
103 buildurl.WriteString("collection")
104 }
105 buildurl.WriteString("&order=most-recent&init=true&limit=50&q=")
100106 default:
101 log.Fatalln("Invalid type.\n- 'a' -- all;\n- 't' -- tag;\n- 'g' - gallery.")
107 log.Fatalln("Invalid type.\n- 'a' -- all;\n- 't' -- tag;\n- 'g' - gallery\n- 'f' - folders.")
102108 }
103109
104110 buildurl.WriteString(url.QueryEscape(query))
@@ -112,11 +118,11 @@ func PerformSearch(query string, page int, scope rune, user ...string) (ss Searc
112118
113119 ujson(buildurl.String(), &ss)
114120
115 if scope == 'g' {
121 if ss.Results == nil {
116122 ss.Results = ss.ResultsGalleryTemp
117123 }
118124
119 // расчёт, сколько всего страниц по запросу. без токена 417 страниц - максимум
125 // расчёт, сколько всего страниц по запросу. без токена, 417 страниц - максимум
120126 totalfloat := int(math.Round(float64(ss.Total / 25)))
121127 for x := 0; x < totalfloat; x++ {
122128 if x <= 417 {
user-group.go +32 −6
@@ -46,10 +46,11 @@ type Gallery struct {
4646 Folders struct {
4747 HasMore bool
4848 Results []struct {
49 FolderId int
50 Size int
51 Name string
52 Thumb Deviation
49 Deviations int `json:"totalItemCount"`
50 FolderId int
51 Size int
52 Name string
53 Thumb Deviation
5354 }
5455 }
5556
@@ -74,7 +75,7 @@ type Group struct {
7475}
7576
7677// подходит как группа, так и пользователь
77func (s Group) GetGroup() (g GRuser, err error) {
78func (s Group) Get() (g GRuser, err error) {
7879 if s.Name == "" {
7980 return g, errors.New("missing Name field")
8081 }
@@ -83,8 +84,33 @@ func (s Group) GetGroup() (g GRuser, err error) {
8384 return
8485}
8586
87func (s Group) Favourites(page int, all bool, folderid ...int) (g Group) {
88 var url strings.Builder
89
90 if fid := folderid[0]; fid > 0 || all {
91 url.WriteString("dashared/gallection/contents")
92 if all {
93 url.WriteString("?all_folder=true")
94 } else {
95 url.WriteString("?folderid=")
96 url.WriteString(strconv.Itoa(fid))
97 }
98 url.WriteString("&type=collection&")
99 } else {
100 url.WriteString("dauserprofile/init/favourites?deviations_")
101 }
102
103 url.WriteString("limit=50&username=")
104 url.WriteString(s.Name)
105 url.WriteString("&with_subfolders=true&offset=")
106 url.WriteString(strconv.Itoa(page * 50))
107
108 ujson(url.String(), &g.Content)
109 return
110}
111
86112// гарелея пользователя или группы
87func (s Group) GetGallery(page int, folderid ...int) (g Group, err error) {
113func (s Group) Gallery(page int, folderid ...int) (g Group, err error) {
88114 if s.Name == "" {
89115 return g, errors.New("missing Name field")
90116 }