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 { |
| 104 | for _, t := range m.Types { |
104 | for _, t := range m.Types { |
| 105 | if t.T == "fullview" { |
105 | if t.T == "fullview" { |
| 106 | url.WriteString(m.BaseUri) |
106 | 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) { |
| 108 | if len(thumb) != 0 { |
108 | if len(thumb) != 0 { |
| 109 | subtractWidthHeight(thumb[0], &t.W, &t.H) |
109 | subtractWidthHeight(thumb[0], &t.W, &t.H) |
| 110 | } |
110 | } |
misc.go
+15 −9
| @@ -88,17 +88,23 @@ func PerformSearch(query string, page int, scope rune, user ...string) (ss Searc |
| 88 | buildurl.WriteString("dabrowse/search/all?q=") |
88 | buildurl.WriteString("dabrowse/search/all?q=") |
| 89 | case 't': // поиск артов по тегам |
89 | case 't': // поиск артов по тегам |
| 90 | buildurl.WriteString("dabrowse/networkbar/tag/deviations?tag=") |
90 | buildurl.WriteString("dabrowse/networkbar/tag/deviations?tag=") |
| 91 | case 'g': // поиск артов пользователя или группы |
91 | case 'g', 'f': // поиск артов пользователя или группы |
| 92 | if user != nil { |
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 { |
| |
| 97 | e = errors.New("missing username (last argument)") |
93 | e = errors.New("missing username (last argument)") |
| 98 | return |
94 | return |
| 99 | } |
95 | } |
| |
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=") |
| 100 | default: |
106 | 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.") |
| 102 | } |
108 | } |
| 103 | |
109 | |
| 104 | buildurl.WriteString(url.QueryEscape(query)) |
110 | buildurl.WriteString(url.QueryEscape(query)) |
| @@ -112,11 +118,11 @@ func PerformSearch(query string, page int, scope rune, user ...string) (ss Searc |
| 112 | |
118 | |
| 113 | ujson(buildurl.String(), &ss) |
119 | ujson(buildurl.String(), &ss) |
| 114 | |
120 | |
| 115 | if scope == 'g' { |
121 | if ss.Results == nil { |
| 116 | ss.Results = ss.ResultsGalleryTemp |
122 | ss.Results = ss.ResultsGalleryTemp |
| 117 | } |
123 | } |
| 118 | |
124 | |
| 119 | // расчёт, сколько всего страниц по запросу. без токена 417 страниц - максимум |
125 | // расчёт, сколько всего страниц по запросу. без токена, 417 страниц - максимум |
| 120 | totalfloat := int(math.Round(float64(ss.Total / 25))) |
126 | totalfloat := int(math.Round(float64(ss.Total / 25))) |
| 121 | for x := 0; x < totalfloat; x++ { |
127 | for x := 0; x < totalfloat; x++ { |
| 122 | if x <= 417 { |
128 | if x <= 417 { |
user-group.go
+32 −6
| @@ -46,10 +46,11 @@ type Gallery struct { |
| 46 | Folders struct { |
46 | Folders struct { |
| 47 | HasMore bool |
47 | HasMore bool |
| 48 | Results []struct { |
48 | Results []struct { |
| 49 | FolderId int |
49 | Deviations int `json:"totalItemCount"` |
| 50 | Size int |
50 | FolderId int |
| 51 | Name string |
51 | Size int |
| 52 | Thumb Deviation |
52 | Name string |
| |
53 | Thumb Deviation |
| 53 | } |
54 | } |
| 54 | } |
55 | } |
| 55 | |
56 | |
| @@ -74,7 +75,7 @@ type Group struct { |
| 74 | } |
75 | } |
| 75 | |
76 | |
| 76 | // подходит как группа, так и пользователь |
77 | // подходит как группа, так и пользователь |
| 77 | func (s Group) GetGroup() (g GRuser, err error) { |
78 | func (s Group) Get() (g GRuser, err error) { |
| 78 | if s.Name == "" { |
79 | if s.Name == "" { |
| 79 | return g, errors.New("missing Name field") |
80 | return g, errors.New("missing Name field") |
| 80 | } |
81 | } |
| @@ -83,8 +84,33 @@ func (s Group) GetGroup() (g GRuser, err error) { |
| 83 | return |
84 | return |
| 84 | } |
85 | } |
| 85 | |
86 | |
| |
87 | func (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 | |
| 86 | // гарелея пользователя или группы |
112 | // гарелея пользователя или группы |
| 87 | func (s Group) GetGallery(page int, folderid ...int) (g Group, err error) { |
113 | func (s Group) Gallery(page int, folderid ...int) (g Group, err error) { |
| 88 | if s.Name == "" { |
114 | if s.Name == "" { |
| 89 | return g, errors.New("missing Name field") |
115 | return g, errors.New("missing Name field") |
| 90 | } |
116 | } |