inital commit
This commit is contained in:
commit
699658eb55
123
api.go
Executable file
123
api.go
Executable file
@ -0,0 +1,123 @@
|
|||||||
|
package request
|
||||||
|
|
||||||
|
import (
|
||||||
|
//"fmt"
|
||||||
|
"log"
|
||||||
|
"net/http"
|
||||||
|
//"context"
|
||||||
|
"io/ioutil"
|
||||||
|
"encoding/json"
|
||||||
|
"time"
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
)
|
||||||
|
|
||||||
|
type AutoGen struct {
|
||||||
|
About struct {
|
||||||
|
Stats struct {
|
||||||
|
TopicCount int `json:"topic_count"`
|
||||||
|
PostCount int `json:"post_count"`
|
||||||
|
UserCount int `json:"user_count"`
|
||||||
|
Topics7Days int `json:"topics_7_days"`
|
||||||
|
Topics30Days int `json:"topics_30_days"`
|
||||||
|
Posts7Days int `json:"posts_7_days"`
|
||||||
|
Posts30Days int `json:"posts_30_days"`
|
||||||
|
Users7Days int `json:"users_7_days"`
|
||||||
|
Users30Days int `json:"users_30_days"`
|
||||||
|
ActiveUsers7Days int `json:"active_users_7_days"`
|
||||||
|
ActiveUsers30Days int `json:"active_users_30_days"`
|
||||||
|
LikeCount int `json:"like_count"`
|
||||||
|
Likes7Days int `json:"likes_7_days"`
|
||||||
|
Likes30Days int `json:"likes_30_days"`
|
||||||
|
} `json:"stats"`
|
||||||
|
Description string `json:"description"`
|
||||||
|
Title string `json:"title"`
|
||||||
|
Locale string `json:"locale"`
|
||||||
|
Version string `json:"version"`
|
||||||
|
HTTPS bool `json:"https"`
|
||||||
|
Moderators []struct {
|
||||||
|
ID int `json:"id"`
|
||||||
|
Username string `json:"username"`
|
||||||
|
Name string `json:"name"`
|
||||||
|
AvatarTemplate string `json:"avatar_template"`
|
||||||
|
Title string `json:"title"`
|
||||||
|
LastSeenAt time.Time `json:"last_seen_at"`
|
||||||
|
} `json:"moderators"`
|
||||||
|
Admins []struct {
|
||||||
|
ID int `json:"id"`
|
||||||
|
Username string `json:"username"`
|
||||||
|
Name string `json:"name"`
|
||||||
|
AvatarTemplate string `json:"avatar_template"`
|
||||||
|
Title string `json:"title"`
|
||||||
|
LastSeenAt time.Time `json:"last_seen_at"`
|
||||||
|
} `json:"admins"`
|
||||||
|
} `json:"about"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type TagTopics struct {
|
||||||
|
TopicList struct {
|
||||||
|
Topics []struct {
|
||||||
|
Slug string `json:"slug"`
|
||||||
|
} `json:"topics"`
|
||||||
|
} `json:"topic_list"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type Topic struct {
|
||||||
|
PostStream struct {
|
||||||
|
Posts []struct {
|
||||||
|
Cooked string `json:"cooked"`
|
||||||
|
UserTitle string `json:"user_title"`
|
||||||
|
} `json:"posts"`
|
||||||
|
} `json:"post_stream"`
|
||||||
|
Tags []string `json:"tags"`
|
||||||
|
ID int `json:"id"`
|
||||||
|
Title string `json:"title"`
|
||||||
|
CreatedAt time.Time `json:"created_at"`
|
||||||
|
Slug string `json:"slug"`
|
||||||
|
Details struct {
|
||||||
|
CreatedBy struct {
|
||||||
|
ID int `json:"id"`
|
||||||
|
Username string `json:"username"`
|
||||||
|
Name string `json:"name"`
|
||||||
|
AvatarTemplate string `json:"avatar_template"`
|
||||||
|
} `json:"created_by"`
|
||||||
|
} `json:"details"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func url(path string) string {
|
||||||
|
return string("https://forum.0cd.xyz/" + path)
|
||||||
|
}
|
||||||
|
|
||||||
|
func Request(path string) (b []byte) {
|
||||||
|
resp, err := http.Get(url(path))
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
defer resp.Body.Close()
|
||||||
|
body, err := ioutil.ReadAll(resp.Body)
|
||||||
|
//fmt.Printf("%s %s %d\n", resp.Request.Method, url("about.json"), resp.StatusCode)
|
||||||
|
|
||||||
|
if resp.StatusCode == 200 {
|
||||||
|
return body
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func About() (*AutoGen) {
|
||||||
|
var about AutoGen
|
||||||
|
json.Unmarshal(Request("about.json"), &about)
|
||||||
|
for i := 0; i < len(about.About.Admins); i++ {
|
||||||
|
about.About.Admins[i].AvatarTemplate = strings.ReplaceAll(about.About.Admins[i].AvatarTemplate, "{size}", "120")
|
||||||
|
}
|
||||||
|
return &about
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetTopics(path string) (*TagTopics) {
|
||||||
|
var topics TagTopics
|
||||||
|
json.Unmarshal(Request(path), &topics)
|
||||||
|
return &topics
|
||||||
|
}
|
||||||
|
|
||||||
|
func Topics(path string) {
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user