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 | 104 | for _, t := range m.Types { |
| 105 | 105 | if t.T == "fullview" { |
| 106 | 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 | 108 | if len(thumb) != 0 { |
| 109 | 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 | 88 | buildurl.WriteString("dabrowse/search/all?q=") |
| 89 | 89 | case 't': // поиск артов по тегам |
| 90 | 90 | 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 { |
| 97 | 93 | e = errors.New("missing username (last argument)") |
| 98 | 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 | 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 | 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 | 119 | ujson(buildurl.String(), &ss) |
| 114 | 120 | |
| 115 | | if scope == 'g' { |
| 121 | if ss.Results == nil { |
| 116 | 122 | ss.Results = ss.ResultsGalleryTemp |
| 117 | 123 | } |
| 118 | 124 | |
| 119 | | // расчёт, сколько всего страниц по запросу. без токена 417 страниц - максимум |
| 125 | // расчёт, сколько всего страниц по запросу. без токена, 417 страниц - максимум |
| 120 | 126 | totalfloat := int(math.Round(float64(ss.Total / 25))) |
| 121 | 127 | for x := 0; x < totalfloat; x++ { |
| 122 | 128 | if x <= 417 { |
user-group.go
+32 −6
| @@ -46,10 +46,11 @@ type Gallery struct { |
| 46 | 46 | Folders struct { |
| 47 | 47 | HasMore bool |
| 48 | 48 | 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 |
| 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 | 79 | if s.Name == "" { |
| 79 | 80 | return g, errors.New("missing Name field") |
| 80 | 81 | } |
| @@ -83,8 +84,33 @@ func (s Group) GetGroup() (g GRuser, err error) { |
| 83 | 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 | 114 | if s.Name == "" { |
| 89 | 115 | return g, errors.New("missing Name field") |
| 90 | 116 | } |