A api.go => api.go +77 -0
@@ 0,0 1,77 @@
+// API representing structs.
+// Copyright (C) 2021-2022 Ngô Ngọc Đức Huy
+//
+// This file is part of Yue.
+//
+// Yue is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Yue is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with Yue. If not, see <https://www.gnu.org/licenses/>.
+
+type PostPageObject struct {
+ Posts []PostObject `json:"items"`
+ Next string `json:"next_page"`
+}
+
+type CommentPageObject struct {
+ Comments []CommentObject `json:"items"`
+ Next string `json:"next_page"`
+}
+
+type PostObject struct {
+ Id int
+ Title string
+ ContentText string `json:"content_text"`
+ ContentHTML string `json:"content_html"`
+ ContentMarkdown string `json:"content_markdown"`
+ Author UserObject
+ Community CommunityObject
+ Created time.Time
+ Local bool
+ Instance string `json:"host"`
+ RemoteURL string `json:"remote_url"`
+ Permalink string `json:"href"`
+ Score int
+ Sticky bool
+ Approved bool
+}
+
+type CommentObject struct {
+ Id int
+ Content string
+ Author UserObject
+ Created time.Time
+ Local bool
+ Instance string `json:"host"`
+ RemoteURL string `json:"remote_url"`
+ Score int
+ Post PostObject `json:"post"`
+ ParentId int `json:"parent.id"`
+ Replies CommentPageObject
+}
+
+type CommunityObject struct {
+ Id int
+ Name string
+ Local bool
+ Instance string `json:"host"`
+ RemoteURL string `json:"remote_url"`
+}
+
+type UserObject struct {
+ Id int
+ Username string
+ Bot bool `json:"is_bot"`
+ AvatarURL string `json:"avatar_url"`
+ Local bool
+ Instance string `json:"host"`
+ RemoteURL string `json:"remote_url"`
+}
M structs.go => structs.go +19 -53
@@ 1,3 1,22 @@
+// Definition of structs and struct-related operations.
+// Structs used to represent data from API not included.
+// Copyright (C) 2021 Ngô Ngọc Đức Huy
+//
+// This file is part of Yue.
+//
+// Yue is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Yue is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with Yue. If not, see <https://www.gnu.org/licenses/>.
+
package main
import (
@@ 25,59 44,6 @@ type Preference struct {
Theme string
}
-type TimelinePage struct {
- Name string
- Posts []Post
- Next string
-}
-
-type Post struct {
- Id int
- Title string
- Content string
- Author User
- Comm Community
- Created time.Time
- Local bool
- Instance string
- RemoteURL string
- Score int
- Sticky bool
- Comments []Comment
-}
-
-type Comment struct {
- Id int
- Content string
- Author User
- Created time.Time
- Local bool
- Instance string
- RemoteURL string
- Score int
- PostId int
- ParentCommentId int
- Replies []Comment
-}
-
-type Community struct {
- Id int
- Name string
- Local bool
- Instance string
- RemoteURL string
-}
-
-type User struct {
- Id int
- Username string
- Bot bool
- AvatarURL string
- Local bool
- Instance string
- RemoteURL string
-}
-
type Meta struct {
Version string
}