по мелочи
This commit is contained in:
parent
efa4b86a67
commit
949bef2c5d
@ -1,6 +1,6 @@
|
|||||||
# Devianter
|
# 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.
|
A DeviantART API library for Go.
|
||||||
|
51
comments.go
51
comments.go
@ -2,48 +2,45 @@ package devianter
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
"net/url"
|
||||||
"strconv"
|
"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 {
|
type Comments struct {
|
||||||
Cursor string
|
Cursor string
|
||||||
PrevOffset int
|
PrevOffset int
|
||||||
HasMore, HasLess bool
|
HasMore, HasLess bool
|
||||||
|
|
||||||
Total int
|
Total int
|
||||||
Thread []struct {
|
Thread []Thread
|
||||||
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"`
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// функция для обработки комментариев поста, пользователя, группы и многого другого
|
// 1 - комментарии поста; 4 - комментарии на стене группы или пользователя
|
||||||
func CommentsFunc(
|
func CommentsFunc(postid string, cursor string, page int, typ int) (cmmts Comments) {
|
||||||
postid string,
|
|
||||||
cursor string,
|
|
||||||
page int,
|
|
||||||
typ int, // 1 - комментарии поста; 4 - комментарии на стене группы или пользователя
|
|
||||||
) (cmmts Comments) {
|
|
||||||
for x := 0; x <= page; x++ {
|
for x := 0; x <= page; x++ {
|
||||||
ujson(
|
ujson(
|
||||||
"dashared/comments/thread?typeid="+strconv.Itoa(typ)+
|
"dashared/comments/thread?typeid="+strconv.Itoa(typ)+
|
||||||
"&itemid="+postid+"&maxdepth=1000&order=newest"+
|
"&itemid="+postid+"&maxdepth=1000&order=newest"+
|
||||||
"&limit=50&cursor="+strings.ReplaceAll(cursor, "+", `%2B`),
|
"&limit=50&cursor="+url.QueryEscape(cursor),
|
||||||
&cmmts,
|
&cmmts,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
16
misc.go
16
misc.go
@ -7,6 +7,7 @@ import (
|
|||||||
"log"
|
"log"
|
||||||
"math"
|
"math"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
u "net/url"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
@ -131,10 +132,11 @@ func DailyDeviationsFunc(page int) (dd DailyDeviations) {
|
|||||||
|
|
||||||
/* SEARCH */
|
/* SEARCH */
|
||||||
type Search struct {
|
type Search struct {
|
||||||
Total int `json:"estTotal"`
|
Total int `json:"estTotal"`
|
||||||
Pages int // only for 'a' and 'g' scope.
|
Pages int // only for 'a' and 'g' scope.
|
||||||
HasMore bool
|
HasMore bool
|
||||||
Results []Deviation `json:"deviations,results"`
|
Results []Deviation `json:"deviations"`
|
||||||
|
ResultsGalleryTemp []Deviation `json:"results"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func SearchFunc(query string, page int, scope rune, user ...string) (ss Search, e error) {
|
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.")
|
log.Fatalln("Invalid type.\n- 'a' -- all;\n- 't' -- tag;\n- 'g' - gallery.")
|
||||||
}
|
}
|
||||||
|
|
||||||
url.WriteString(query)
|
url.WriteString(u.QueryEscape(query))
|
||||||
if scope != 'g' { // если область поиска не равна поиску по группам, то активируется этот код
|
if scope != 'g' { // если область поиска не равна поиску по группам, то активируется этот код
|
||||||
url.WriteString("&page=")
|
url.WriteString("&page=")
|
||||||
} else { // иначе вместо страницы будет оффсет и страница умножится на 50
|
} else { // иначе вместо страницы будет оффсет и страница умножится на 50
|
||||||
@ -173,6 +175,10 @@ func SearchFunc(query string, page int, scope rune, user ...string) (ss Search,
|
|||||||
|
|
||||||
ujson(url.String(), &ss)
|
ujson(url.String(), &ss)
|
||||||
|
|
||||||
|
if scope == 'g' {
|
||||||
|
ss.Results = ss.ResultsGalleryTemp
|
||||||
|
}
|
||||||
|
|
||||||
// расчёт, сколько всего страниц по запросу. без токена 417 страниц - максимум
|
// расчёт, сколько всего страниц по запросу. без токена 417 страниц - максимум
|
||||||
totalfloat := int(math.Round(float64(ss.Total / 25)))
|
totalfloat := int(math.Round(float64(ss.Total / 25)))
|
||||||
for x := 0; x < totalfloat; x++ {
|
for x := 0; x < totalfloat; x++ {
|
||||||
|
Loading…
Reference in New Issue
Block a user