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// подходит как группа, так и пользователь
77func (s Group) GetGroup() (g GRuser, err error) { 78func (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
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
86// гарелея пользователя или группы 112// гарелея пользователя или группы
87func (s Group) GetGallery(page int, folderid ...int) (g Group, err error) { 113func (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 }