-
Notifications
You must be signed in to change notification settings - Fork 7
/
types.go
126 lines (95 loc) · 4.27 KB
/
types.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
package telegraph
import "errors"
// All types used in the Telegraph API responses are represented as JSON-objects. Optional fields may be not returned
// when irrelevant.
type (
// Account represents a Telegraph account.
Account struct {
// Only returned by the createAccount and revokeAccessToken method. Access token of the Telegraph
// account.
AccessToken string `json:"access_token"`
// URL to authorize a browser on telegra.ph and connect it to a Telegraph account. This URL is valid
// for only one use and for 5 minutes only.
AuthURL string `json:"auth_url,omitempty"`
// Account name, helps users with several accounts remember which they are currently using. Displayed
// to the user above the "Edit/Publish" button on Telegra.ph, other users don't see this name.
ShortName string `json:"short_name"`
// Default author name used when creating new articles.
AuthorName string `json:"author_name"`
// Profile link, opened when users click on the author's name below the title. Can be any link, not
// necessarily to a Telegram profile or channel.
AuthorURL string `json:"author_url"`
// Number of pages belonging to the Telegraph account.
PageCount int `json:"page_count,omitempty"`
}
// PageList represents a list of Telegraph articles belonging to an account. Most recently created articles
// first.
PageList struct {
// Total number of pages belonging to the target Telegraph account.
TotalCount int `json:"total_count"`
// Requested pages of the target Telegraph account.
Pages []Page `json:"pages"`
}
// Page represents a page on Telegraph.
Page struct {
// Path to the page.
Path string `json:"path"`
// URL of the page.
URL string `json:"url"`
// Title of the page.
Title string `json:"title"`
// Description of the page.
Description string `json:"description"`
// Name of the author, displayed below the title.
AuthorName string `json:"author_name,omitempty"`
// Profile link, opened when users click on the author's name below the title. Can be any link, not
// necessarily to a Telegram profile or channel.
AuthorURL string `json:"author_url,omitempty"`
// Image URL of the page.
ImageURL string `json:"image_url,omitempty"`
// Content of the page.
Content []Node `json:"content,omitempty"`
// Number of page views for the page.
Views int `json:"views"`
// Only returned if access_token passed. True, if the target Telegraph account can edit the page.
CanEdit bool `json:"can_edit,omitempty"`
}
// PageViews represents the number of page views for a Telegraph article.
PageViews struct {
// Number of page views for the target page.
Views int `json:"views"`
}
// Node is abstract object represents a DOM Node. It can be a String which represents a DOM text node or a
// NodeElement object.
Node interface{}
// NodeElement represents a DOM element node.
NodeElement struct {
// Name of the DOM element. Available tags: a, aside, b, blockquote, br, code, em, figcaption, figure,
// h3, h4, hr, i, iframe, img, li, ol, p, pre, s, strong, u, ul, video.
Tag string `json:"tag"`
// Attributes of the DOM element. Key of object represents name of attribute, value represents value
// of attribute. Available attributes: href, src.
Attrs map[string]string `json:"attrs,omitempty"`
// List of child nodes for the DOM element.
Children []Node `json:"children,omitempty"`
}
)
const (
// FieldShortName used as GetAccountInfo argument for getting account name.
FieldShortName string = "short_name"
// FieldAuthorName used as GetAccountInfo argument for getting author name.
FieldAuthorName string = "author_name"
// FieldAuthorURL used as GetAccountInfo argument for getting profile link.
FieldAuthorURL string = "author_url"
// FieldAuthURL used as GetAccountInfo argument for getting URL to authorize a browser on telegra.ph.
FieldAuthURL string = "auth_url"
// FieldPageCount used as GetAccountInfo argument for getting number of pages belonging to the Telegraph
// account.
FieldPageCount string = "page_count"
)
var (
// ErrInvalidDataType is returned when ContentFormat function are passed a data argument of invalid type.
ErrInvalidDataType = errors.New("invalid data type")
// ErrNoInputData is returned when any method get nil argument.
ErrNoInputData = errors.New("no input data")
)