по мелочи
This commit is contained in:
parent
efa4b86a67
commit
949bef2c5d
@ -1,6 +1,6 @@
|
||||
# Devianter
|
||||
|
||||
[![Please don't upload to GitHub](https://nogithub.codeberg.page/badge.svg)](https://nogithub.codeberg.page)
|
||||
[![Please don't upload to GitHub](https://nogithub.codeberg.page/badge.svg)](https://nogithub.codeberg.page) [![Go Reference](https://pkg.go.dev/badge/git.macaw.me/skunky/devianter.svg)](https://pkg.go.dev/git.macaw.me/skunky/devianter) [![License: AGPL v3](https://img.shields.io/badge/License-AGPL%20v3-blue.svg)](https://www.gnu.org/licenses/agpl-3.0)
|
||||
|
||||
|
||||
A DeviantART API library for Go.
|
||||
|
51
comments.go
51
comments.go
@ -2,48 +2,45 @@ package devianter
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"net/url"
|
||||
"strconv"
|
||||
"strings"
|
||||
)
|
||||
|
||||
type Thread struct {
|
||||
Replies, Likes int
|
||||
ID int `json:"commentId"`
|
||||
Parent int `json:"parentId"`
|
||||
|
||||
Posted time
|
||||
Author bool `json:"isAuthorHighlited"`
|
||||
|
||||
Desctiption string
|
||||
Comment string
|
||||
|
||||
TextContent Text
|
||||
|
||||
User struct {
|
||||
Username string
|
||||
Banned bool `json:"isBanned"`
|
||||
}
|
||||
}
|
||||
|
||||
type Comments struct {
|
||||
Cursor string
|
||||
PrevOffset int
|
||||
HasMore, HasLess bool
|
||||
|
||||
Total int
|
||||
Thread []struct {
|
||||
Replies, Likes int
|
||||
ID int `json:"commentId"`
|
||||
Parent int `json:"parentId"`
|
||||
|
||||
Posted time
|
||||
Author bool `json:"isAuthorHighlited"`
|
||||
|
||||
Desctiption string
|
||||
Comment string
|
||||
|
||||
TextContent Text
|
||||
|
||||
User struct {
|
||||
Username string
|
||||
Banned bool `json:"isBanned"`
|
||||
}
|
||||
}
|
||||
Thread []Thread
|
||||
}
|
||||
|
||||
// функция для обработки комментариев поста, пользователя, группы и многого другого
|
||||
func CommentsFunc(
|
||||
postid string,
|
||||
cursor string,
|
||||
page int,
|
||||
typ int, // 1 - комментарии поста; 4 - комментарии на стене группы или пользователя
|
||||
) (cmmts Comments) {
|
||||
// 1 - комментарии поста; 4 - комментарии на стене группы или пользователя
|
||||
func CommentsFunc(postid string, cursor string, page int, typ int) (cmmts Comments) {
|
||||
for x := 0; x <= page; x++ {
|
||||
ujson(
|
||||
"dashared/comments/thread?typeid="+strconv.Itoa(typ)+
|
||||
"&itemid="+postid+"&maxdepth=1000&order=newest"+
|
||||
"&limit=50&cursor="+strings.ReplaceAll(cursor, "+", `%2B`),
|
||||
"&limit=50&cursor="+url.QueryEscape(cursor),
|
||||
&cmmts,
|
||||
)
|
||||
|
||||
|
16
misc.go
16
misc.go
@ -7,6 +7,7 @@ import (
|
||||
"log"
|
||||
"math"
|
||||
"net/http"
|
||||
u "net/url"
|
||||
"strconv"
|
||||
"strings"
|
||||
)
|
||||
@ -131,10 +132,11 @@ func DailyDeviationsFunc(page int) (dd DailyDeviations) {
|
||||
|
||||
/* SEARCH */
|
||||
type Search struct {
|
||||
Total int `json:"estTotal"`
|
||||
Pages int // only for 'a' and 'g' scope.
|
||||
HasMore bool
|
||||
Results []Deviation `json:"deviations,results"`
|
||||
Total int `json:"estTotal"`
|
||||
Pages int // only for 'a' and 'g' scope.
|
||||
HasMore bool
|
||||
Results []Deviation `json:"deviations"`
|
||||
ResultsGalleryTemp []Deviation `json:"results"`
|
||||
}
|
||||
|
||||
func SearchFunc(query string, page int, scope rune, user ...string) (ss Search, e error) {
|
||||
@ -162,7 +164,7 @@ func SearchFunc(query string, page int, scope rune, user ...string) (ss Search,
|
||||
log.Fatalln("Invalid type.\n- 'a' -- all;\n- 't' -- tag;\n- 'g' - gallery.")
|
||||
}
|
||||
|
||||
url.WriteString(query)
|
||||
url.WriteString(u.QueryEscape(query))
|
||||
if scope != 'g' { // если область поиска не равна поиску по группам, то активируется этот код
|
||||
url.WriteString("&page=")
|
||||
} else { // иначе вместо страницы будет оффсет и страница умножится на 50
|
||||
@ -173,6 +175,10 @@ func SearchFunc(query string, page int, scope rune, user ...string) (ss Search,
|
||||
|
||||
ujson(url.String(), &ss)
|
||||
|
||||
if scope == 'g' {
|
||||
ss.Results = ss.ResultsGalleryTemp
|
||||
}
|
||||
|
||||
// расчёт, сколько всего страниц по запросу. без токена 417 страниц - максимум
|
||||
totalfloat := int(math.Round(float64(ss.Total / 25)))
|
||||
for x := 0; x < totalfloat; x++ {
|
||||
|
Loading…
Reference in New Issue
Block a user