-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdatatypes.go
131 lines (105 loc) · 2.63 KB
/
datatypes.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
127
128
129
130
131
/*
Copyright 2017 Oliver Kahrmann
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
or implied. See the License for the specific language governing
permissions and limitations under the License.
*/
package curse
import (
"net/url"
"time"
)
type Author struct {
Name string
Role string
URL *url.URL
ImageURL *url.URL
}
type Image struct {
URL *url.URL
ThumbnailURL *url.URL
}
type File struct {
Name string
URL *url.URL
DirectURL *url.URL
ReleaseType string
GameVersion string
Downloads uint64
Date time.Time
// The size info as printed on the page, unparsed
SizeInfo string
HasAdditionalFiles bool
}
type Category struct {
Name string
URL *url.URL
ImageURL *url.URL
}
type Dependency struct {
Name string
URL *url.URL
ImageURL *url.URL
}
// Curse represents a single project parsed from mods.curse.com.
type Curse struct {
Title string
DontationURL *url.URL
Likes uint64
Favorites uint64
Authors []Author
Categories []Category
License string
CurseforgeURL *url.URL
Game string
GameURL *url.URL
AvgDownloads uint64
AvgDownloadsTimeframe string
TotalDownloads uint64
Updated time.Time
Created time.Time
Screenshots []Image
Downloads []File
}
// CurseForge represents a single project parsed from curseforge.com.
// The data can be parsed from several sub-pages, though.
type CurseForge struct {
OverviewURL *url.URL
FilesURL *url.URL
ImagesURL *url.URL
DependenciesURL *url.URL
DependentsURL *url.URL
CurseURL *url.URL
ReportProjectURL *url.URL
IssuesURL *url.URL
WikiURL *url.URL
SourceURL *url.URL
Title string
ProjectURL *url.URL
DontationURL *url.URL
ImageURL *url.URL
ImageThumbnailURL *url.URL
RootGameCategory string
RootGameCategoryURL *url.URL
License string
LicenseURL *url.URL
Game string
GameURL *url.URL
//AvgDownloads uint64
//AvgDownloadsTimeframe string
TotalDownloads uint64
Created time.Time
Updated time.Time
//Likes uint64
//Favorites uint64
Authors []Author
Categories []Category
Screenshots []Image
Downloads []File
}