@ifunny/ifunny-api-types 0.4.3 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +62 -0
- package/dist/payloads/activity.js +50 -0
- package/dist/payloads/activity.js.map +1 -0
- package/dist/payloads/ban.js +17 -17
- package/dist/payloads/ban.js.map +1 -1
- package/dist/payloads/client.js.map +1 -1
- package/dist/payloads/comment.js +15 -0
- package/dist/payloads/comment.js.map +1 -0
- package/dist/payloads/content.js +138 -0
- package/dist/payloads/content.js.map +1 -0
- package/dist/payloads/index.js +3 -1
- package/dist/payloads/index.js.map +1 -1
- package/dist/payloads/post.js +122 -10
- package/dist/payloads/post.js.map +1 -1
- package/dist/payloads/user.js +34 -34
- package/dist/payloads/user.js.map +1 -1
- package/dist/rest/content.js +68 -0
- package/dist/rest/content.js.map +1 -0
- package/dist/rest/explore.js +2 -0
- package/dist/rest/explore.js.map +1 -1
- package/dist/rest/index.js +1 -0
- package/dist/rest/index.js.map +1 -1
- package/dist/rest/oauth2.js +6 -6
- package/dist/rest/oauth2.js.map +1 -1
- package/dist/rest/post.js +63 -0
- package/dist/rest/post.js.map +1 -0
- package/dist/utils/errors.js +33 -0
- package/dist/utils/errors.js.map +1 -1
- package/package.json +1 -1
- package/types/payloads/activity.d.ts +90 -0
- package/types/payloads/activity.d.ts.map +1 -0
- package/types/payloads/ban.d.ts +17 -17
- package/types/payloads/ban.d.ts.map +1 -1
- package/types/payloads/client.d.ts +28 -1
- package/types/payloads/client.d.ts.map +1 -1
- package/types/payloads/comment.d.ts +79 -0
- package/types/payloads/comment.d.ts.map +1 -0
- package/types/payloads/content.d.ts +570 -0
- package/types/payloads/content.d.ts.map +1 -0
- package/types/payloads/index.d.ts +3 -1
- package/types/payloads/index.d.ts.map +1 -1
- package/types/payloads/post.d.ts +338 -178
- package/types/payloads/post.d.ts.map +1 -1
- package/types/payloads/user.d.ts +11 -11
- package/types/payloads/user.d.ts.map +1 -1
- package/types/rest/content.d.ts +63 -0
- package/types/rest/content.d.ts.map +1 -0
- package/types/rest/explore.d.ts +5 -3
- package/types/rest/explore.d.ts.map +1 -1
- package/types/rest/index.d.ts +1 -0
- package/types/rest/index.d.ts.map +1 -1
- package/types/rest/oauth2.d.ts +14 -7
- package/types/rest/oauth2.d.ts.map +1 -1
- package/types/rest/post.d.ts +58 -0
- package/types/rest/post.d.ts.map +1 -0
- package/types/utils/errors.d.ts +40 -48
- package/types/utils/errors.d.ts.map +1 -1
- package/types/utils/util.d.ts +23 -0
- package/types/utils/util.d.ts.map +1 -1
package/types/payloads/post.d.ts
CHANGED
|
@@ -1,200 +1,162 @@
|
|
|
1
1
|
import { APIUser, APIUserNums } from "./user";
|
|
2
2
|
import { HexCode, Size, Timestamp } from "../utils/util";
|
|
3
|
-
import { APIBasePayload } from "./base";
|
|
4
3
|
/**
|
|
5
|
-
*
|
|
4
|
+
* Post visibility types
|
|
6
5
|
*/
|
|
7
|
-
export
|
|
8
|
-
/**
|
|
9
|
-
* Unique id of the post.\
|
|
10
|
-
* Typically 9 characters long
|
|
11
|
-
*/
|
|
12
|
-
id: string;
|
|
13
|
-
/**
|
|
14
|
-
* The type of the post.
|
|
15
|
-
*/
|
|
16
|
-
type: Type;
|
|
17
|
-
/**
|
|
18
|
-
* Content url of the post.
|
|
19
|
-
*/
|
|
20
|
-
url: string;
|
|
21
|
-
/**
|
|
22
|
-
* If the post uses the old watermark or the new one
|
|
23
|
-
*/
|
|
24
|
-
old_watermark: boolean;
|
|
25
|
-
/**
|
|
26
|
-
* In-app share url.
|
|
27
|
-
* @example
|
|
28
|
-
* `https://ifunny.co/picture/${post.id}`
|
|
29
|
-
* `https://ifunny.co/video/${post.id}`
|
|
30
|
-
*/
|
|
31
|
-
link: string;
|
|
32
|
-
/**
|
|
33
|
-
* The title of the post
|
|
34
|
-
*/
|
|
35
|
-
title: string;
|
|
36
|
-
/**
|
|
37
|
-
* Fixed title of the post
|
|
38
|
-
* @example
|
|
39
|
-
* `Gif memes ${post.id} by ${post.creator.nick}`
|
|
40
|
-
* `Picture memes ${post.id} by ${post.creator.nick}: ${post.num.comments} comments`
|
|
41
|
-
*/
|
|
42
|
-
fixed_title: string;
|
|
6
|
+
export declare enum POST_VISIBILITIES {
|
|
43
7
|
/**
|
|
44
|
-
*
|
|
8
|
+
* Anyone can see the post
|
|
45
9
|
*/
|
|
46
|
-
|
|
10
|
+
PUBLIC = "public",
|
|
47
11
|
/**
|
|
48
|
-
*
|
|
12
|
+
* Post is hidden from collective and explore
|
|
49
13
|
*/
|
|
50
|
-
|
|
14
|
+
SUBSCRIBERS = "subscribers",
|
|
51
15
|
/**
|
|
52
|
-
*
|
|
16
|
+
* Only the creator can see the post
|
|
53
17
|
*/
|
|
54
|
-
|
|
18
|
+
CLOSED = "closed"
|
|
19
|
+
}
|
|
20
|
+
export declare type APIContentVisibility = `${POST_VISIBILITIES}`;
|
|
21
|
+
/**
|
|
22
|
+
* Post shot status types
|
|
23
|
+
*/
|
|
24
|
+
export declare enum SHOT_STATUSES {
|
|
55
25
|
/**
|
|
56
|
-
*
|
|
26
|
+
* The post was approved for upload
|
|
57
27
|
*/
|
|
58
|
-
|
|
28
|
+
APPROVED = "approved",
|
|
59
29
|
/**
|
|
60
|
-
*
|
|
30
|
+
* The post was uploaded but immediately deleted by the auto moderation system
|
|
61
31
|
*/
|
|
62
|
-
|
|
32
|
+
HARD_SHOT = "hardShot",
|
|
63
33
|
/**
|
|
64
|
-
*
|
|
34
|
+
* TODO: Find a post with shot status and document difference.
|
|
65
35
|
*/
|
|
66
|
-
|
|
36
|
+
SHOT = "shot"
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Possible shot statuses
|
|
40
|
+
*/
|
|
41
|
+
export declare type APIContentShotStatus = `${SHOT_STATUSES}`;
|
|
42
|
+
/**
|
|
43
|
+
* All currently known post types
|
|
44
|
+
*/
|
|
45
|
+
export declare enum POST_TYPES {
|
|
67
46
|
/**
|
|
68
|
-
*
|
|
47
|
+
* Most common video post type\
|
|
48
|
+
* Data key: `video_clip`
|
|
69
49
|
*/
|
|
70
|
-
|
|
50
|
+
VIDEO_CLIP = "video_clip",
|
|
71
51
|
/**
|
|
72
|
-
*
|
|
52
|
+
* A video uploaded from a url like YouTube\
|
|
53
|
+
* Data key: `video`
|
|
73
54
|
*/
|
|
74
|
-
|
|
55
|
+
VIDEO = "video",
|
|
75
56
|
/**
|
|
76
|
-
*
|
|
57
|
+
* A video uploaded from vine\
|
|
58
|
+
* Data key: `vine`
|
|
77
59
|
*/
|
|
78
|
-
|
|
60
|
+
VINE = "vine",
|
|
79
61
|
/**
|
|
80
|
-
*
|
|
62
|
+
* Video meme from {@link https://coub.com Coub}\
|
|
63
|
+
* Data key: `coub`
|
|
81
64
|
*/
|
|
82
|
-
|
|
65
|
+
COUB = "coub",
|
|
83
66
|
/**
|
|
84
|
-
*
|
|
67
|
+
* Gif uploaded to ifunny\
|
|
68
|
+
* Data key: `gif`
|
|
85
69
|
*/
|
|
86
|
-
|
|
70
|
+
GIF = "gif",
|
|
87
71
|
/**
|
|
88
|
-
*
|
|
72
|
+
* Gif with a caption\
|
|
73
|
+
* Data key: `gif`
|
|
89
74
|
*/
|
|
90
|
-
|
|
75
|
+
GIF_CAPTION = "gif_caption",
|
|
91
76
|
/**
|
|
92
|
-
*
|
|
77
|
+
* An image post with a custom caption\
|
|
78
|
+
* Data key: `caption`
|
|
93
79
|
*/
|
|
94
|
-
|
|
80
|
+
CAPTION = "caption",
|
|
95
81
|
/**
|
|
96
|
-
*
|
|
82
|
+
* Image upload\
|
|
83
|
+
* Data key: `pic`
|
|
97
84
|
*/
|
|
98
|
-
|
|
85
|
+
PIC = "pic",
|
|
99
86
|
/**
|
|
100
|
-
*
|
|
87
|
+
* Image uploaded from iFunny's old "Meme" upload system.\
|
|
88
|
+
* This is no longer in iFunny
|
|
101
89
|
*/
|
|
102
|
-
|
|
90
|
+
MEME = "mem",
|
|
103
91
|
/**
|
|
104
|
-
*
|
|
92
|
+
* An image uploaded from ifunny's comic creator
|
|
105
93
|
*/
|
|
106
|
-
|
|
94
|
+
COMICS = "comics",
|
|
107
95
|
/**
|
|
108
|
-
*
|
|
96
|
+
* An interactive post from iFunny
|
|
97
|
+
* @deprecated These posts have been removed from the database and will not be available
|
|
109
98
|
*/
|
|
110
|
-
|
|
99
|
+
APP = "app",
|
|
111
100
|
/**
|
|
112
|
-
*
|
|
101
|
+
* Unknown post type\
|
|
102
|
+
* TODO: Document what POST_TYPES.OLD is
|
|
113
103
|
*/
|
|
114
|
-
|
|
104
|
+
OLD = "old",
|
|
115
105
|
/**
|
|
116
|
-
*
|
|
106
|
+
* Unknown post type\
|
|
107
|
+
* TODO: Document what POST_TYPES.DEM is
|
|
117
108
|
*/
|
|
118
|
-
|
|
109
|
+
DEM = "dem"
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Possible post types
|
|
113
|
+
*/
|
|
114
|
+
export declare type APIContentType = `${Exclude<POST_TYPES, POST_TYPES.APP>}`;
|
|
115
|
+
export declare enum POST_STATES {
|
|
119
116
|
/**
|
|
120
|
-
*
|
|
121
|
-
* `https://ifunny.co/picture/${post.id}`
|
|
117
|
+
* The post is published
|
|
122
118
|
*/
|
|
123
|
-
|
|
119
|
+
PUBLISHED = "published",
|
|
124
120
|
/**
|
|
125
|
-
*
|
|
121
|
+
* A post that was scheduled to be published later
|
|
126
122
|
*/
|
|
127
|
-
|
|
128
|
-
}
|
|
129
|
-
export declare enum POST_VISIBILITIES {
|
|
130
|
-
PUBLIC = "public",
|
|
131
|
-
subscribers = "subscribers",
|
|
132
|
-
closed = "closed"
|
|
133
|
-
}
|
|
134
|
-
export declare type APIPostVisibility = `${POST_VISIBILITIES}`;
|
|
135
|
-
export declare enum SHOT_STATUSES {
|
|
136
|
-
APPROVED = "approved",
|
|
137
|
-
HARD_SHOT = "hardShot",
|
|
138
|
-
SHOT = "shot"
|
|
123
|
+
DELAYED = "delayed"
|
|
139
124
|
}
|
|
140
|
-
export declare type APIPostShotStatus = `${SHOT_STATUSES}`;
|
|
141
125
|
/**
|
|
142
|
-
*
|
|
126
|
+
* Possible post states
|
|
143
127
|
*/
|
|
144
|
-
export declare
|
|
145
|
-
CAPTION = "caption",
|
|
146
|
-
VIDEO = "video",
|
|
147
|
-
VINE = "vine",
|
|
148
|
-
COUB = "coub",
|
|
149
|
-
PIC = "pic",
|
|
150
|
-
OLD = "old",
|
|
151
|
-
MEM = "mem",
|
|
152
|
-
GIF = "gif",
|
|
153
|
-
APP = "app",
|
|
154
|
-
DEM = "dem",
|
|
155
|
-
GIF_CAPTION = "gif_caption",
|
|
156
|
-
COMICS = "comics",
|
|
157
|
-
VIDEO_CLIP = "video_clip"
|
|
158
|
-
}
|
|
159
|
-
/**
|
|
160
|
-
* Possible post types
|
|
161
|
-
*/
|
|
162
|
-
export declare type APIPostType = `${POST_TYPES}`;
|
|
163
|
-
export declare enum POST_STATES {
|
|
164
|
-
PUBLISHED = "published"
|
|
165
|
-
}
|
|
166
|
-
export declare type APIPostState = `${POST_STATES}`;
|
|
128
|
+
export declare type APIContentState = `${POST_STATES}`;
|
|
167
129
|
/**
|
|
168
130
|
* Author of a Post\
|
|
169
131
|
* Only includes info also in the user object
|
|
170
132
|
*/
|
|
171
|
-
export declare type
|
|
133
|
+
export declare type APIContentCreatorBase = Pick<APIUser, "id" | "nick" | "photo" | "is_verified" | "is_banned" | "is_deleted" | "is_in_subscriptions" | "is_in_subscribers" | "is_blocked" | "nick_color" | "original_nick">;
|
|
172
134
|
/**
|
|
173
135
|
* The creator object for a post
|
|
174
136
|
*/
|
|
175
|
-
export interface
|
|
137
|
+
export interface APIContentCreator extends APIContentCreatorBase {
|
|
176
138
|
/**
|
|
177
139
|
* Only includes subscription and subscriber count
|
|
178
140
|
*/
|
|
179
|
-
num:
|
|
141
|
+
num: APIContentCreatorNum;
|
|
180
142
|
/**
|
|
181
143
|
* Total amount of posts the creator has. For some reason this is not in the nums object for creators
|
|
182
144
|
*/
|
|
183
145
|
total_posts: number;
|
|
184
146
|
}
|
|
185
147
|
/**
|
|
186
|
-
* Alias for {@link
|
|
148
|
+
* Alias for {@link APIContentCreator}
|
|
187
149
|
*/
|
|
188
|
-
export declare type
|
|
150
|
+
export declare type APIContentAuthor = APIContentCreator;
|
|
189
151
|
/**
|
|
190
152
|
* Num object for Post Creator.\
|
|
191
153
|
* total_posts is in the creator object for some reason
|
|
192
154
|
*/
|
|
193
|
-
export declare type
|
|
155
|
+
export declare type APIContentCreatorNum = Pick<APIUserNums, "subscribers" | "subscriptions">;
|
|
194
156
|
/**
|
|
195
157
|
* Numbers attatched to a post
|
|
196
158
|
*/
|
|
197
|
-
export interface
|
|
159
|
+
export interface APIContentNums {
|
|
198
160
|
/**
|
|
199
161
|
* The amount of smiles the post has
|
|
200
162
|
*/
|
|
@@ -220,15 +182,14 @@ export interface APIPostNums {
|
|
|
220
182
|
*/
|
|
221
183
|
republished: number;
|
|
222
184
|
/**
|
|
223
|
-
* How many shares the post has
|
|
224
|
-
* ? Increases from the share url if the share url is different from the web_url
|
|
185
|
+
* How many shares the post has
|
|
225
186
|
*/
|
|
226
187
|
shares: number;
|
|
227
188
|
}
|
|
228
189
|
/**
|
|
229
190
|
* Copyright data for a post.
|
|
230
191
|
*/
|
|
231
|
-
export interface
|
|
192
|
+
export interface APIContentCopyright {
|
|
232
193
|
/**
|
|
233
194
|
* Note about the copyright
|
|
234
195
|
*/
|
|
@@ -242,21 +203,21 @@ export interface APIPostCopyright {
|
|
|
242
203
|
* The Thumbnail object returned from the API\
|
|
243
204
|
* @example
|
|
244
205
|
* ```ts
|
|
245
|
-
*
|
|
246
|
-
*
|
|
206
|
+
* APIContentThumbnail.url = `https://imageproxy.ifunny.co/${params}/images/${content_id}.jpg`
|
|
207
|
+
* APIContentThumbnail.webp_url = `https://imageproxy.ifunny.co/${params}/images/${content_id}.webp
|
|
247
208
|
* ```
|
|
248
209
|
* Content URL params:\
|
|
249
210
|
* `crop:x-{number}` crops `number` pixels from bottom of the image\
|
|
250
211
|
* `crop:x+{number}` leaves `number` pixels at the top, and crops the rest\
|
|
251
212
|
* `crop:square` makes the image a square aspect ratio\
|
|
252
213
|
* `resize:{number}` changes the size of the image\
|
|
253
|
-
* `quality:{number}` changes the image quality
|
|
214
|
+
* `quality:{number}` changes the image quality
|
|
254
215
|
*
|
|
255
216
|
*
|
|
256
217
|
* ? Bottom iFunny watermarks are 20 pixels tall\
|
|
257
|
-
* ? `crop:x-20` crops the
|
|
218
|
+
* ? `crop:x-20` crops the watermark from an image
|
|
258
219
|
*/
|
|
259
|
-
export interface
|
|
220
|
+
export interface APIContentThumbnail {
|
|
260
221
|
/**
|
|
261
222
|
* crop:x-20,crop:square,resize:65x,quality:90x75\
|
|
262
223
|
* `jpg`
|
|
@@ -302,62 +263,72 @@ export interface APIPostThumbnail {
|
|
|
302
263
|
*/
|
|
303
264
|
proportional_size: Size;
|
|
304
265
|
}
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
webp_url: string;
|
|
311
|
-
};
|
|
312
|
-
}
|
|
313
|
-
/**
|
|
314
|
-
* A video post object
|
|
315
|
-
*/
|
|
316
|
-
export interface APIVideoPost extends APIPostBase<"video_clip"> {
|
|
317
|
-
video_clip: APIPostVideoData;
|
|
318
|
-
}
|
|
319
|
-
/**
|
|
320
|
-
* A gif post
|
|
321
|
-
*/
|
|
322
|
-
export interface APIGifPost extends APIPostBase<"gif"> {
|
|
323
|
-
gif: APIPostGifData;
|
|
324
|
-
}
|
|
325
|
-
/**
|
|
326
|
-
* A gif caption post
|
|
327
|
-
*/
|
|
328
|
-
export interface APIGifCaptionPost extends APIPostBase<"gif_caption"> {
|
|
329
|
-
gif: APIPostGifCaptionData;
|
|
330
|
-
}
|
|
331
|
-
/**
|
|
332
|
-
* A caption post
|
|
333
|
-
*/
|
|
334
|
-
export interface APICaptionPost extends APIPostBase<"caption"> {
|
|
335
|
-
caption: APIPostCaptionData;
|
|
266
|
+
interface WebP {
|
|
267
|
+
/**
|
|
268
|
+
* webp format url of the post
|
|
269
|
+
*/
|
|
270
|
+
webp_url: string;
|
|
336
271
|
}
|
|
337
|
-
export
|
|
272
|
+
export declare enum VIDEO_SOURCE_TYPES {
|
|
273
|
+
USER = "user",
|
|
274
|
+
INSTAGRAM = "instagram"
|
|
338
275
|
}
|
|
339
|
-
export
|
|
276
|
+
export declare type APIVideoSourceType = `${VIDEO_SOURCE_TYPES}`;
|
|
277
|
+
export interface APICoubContentData {
|
|
278
|
+
/**
|
|
279
|
+
* WebP thumbnail of the Coub
|
|
280
|
+
*/
|
|
281
|
+
screen_url: string;
|
|
282
|
+
bytes: number;
|
|
283
|
+
/**
|
|
284
|
+
* Original Coub source
|
|
285
|
+
*/
|
|
286
|
+
traceback_url: string;
|
|
287
|
+
/**
|
|
288
|
+
* Length in seconds
|
|
289
|
+
*/
|
|
290
|
+
duration: number;
|
|
340
291
|
}
|
|
341
|
-
export interface
|
|
292
|
+
export interface APIVideoContentData {
|
|
293
|
+
/**
|
|
294
|
+
* Url of original video
|
|
295
|
+
*/
|
|
296
|
+
url: string;
|
|
297
|
+
/**
|
|
298
|
+
* Length in seconds
|
|
299
|
+
*/
|
|
300
|
+
duration: number;
|
|
301
|
+
/**
|
|
302
|
+
* Length in seconds
|
|
303
|
+
*/
|
|
304
|
+
length: number;
|
|
342
305
|
}
|
|
343
|
-
export interface
|
|
306
|
+
export interface APIVideoClipContentData {
|
|
307
|
+
/**
|
|
308
|
+
* JPEG image of the video clip
|
|
309
|
+
*/
|
|
344
310
|
screen_url: string;
|
|
345
311
|
bytes: number;
|
|
346
|
-
source_type:
|
|
347
|
-
|
|
312
|
+
source_type: APIVideoSourceType;
|
|
313
|
+
/**
|
|
314
|
+
* In seconds
|
|
315
|
+
*/
|
|
316
|
+
duration: Timestamp;
|
|
348
317
|
}
|
|
349
|
-
export
|
|
350
|
-
|
|
318
|
+
export interface APIVineContentData {
|
|
319
|
+
screen_url: string;
|
|
320
|
+
bytes: number;
|
|
351
321
|
}
|
|
352
|
-
export
|
|
353
|
-
export declare type APIPostGifCaptionData = APIPostGifData & APIPostCaptionData;
|
|
354
|
-
export interface APIPostCaptionData {
|
|
322
|
+
export interface APICaptionContentData {
|
|
355
323
|
/**
|
|
356
324
|
* The caption of the post
|
|
357
325
|
*/
|
|
358
|
-
|
|
326
|
+
caption_text: string;
|
|
359
327
|
}
|
|
360
|
-
export
|
|
328
|
+
export declare type APIComicsContentData = WebP;
|
|
329
|
+
export declare type APIMemeContentData = WebP;
|
|
330
|
+
export declare type APIPicContentData = WebP;
|
|
331
|
+
export interface APIGifContentData {
|
|
361
332
|
/**
|
|
362
333
|
* JPEG url of the post
|
|
363
334
|
*/
|
|
@@ -375,8 +346,197 @@ export interface APIPostGifData {
|
|
|
375
346
|
*/
|
|
376
347
|
mp4_bytes: number;
|
|
377
348
|
}
|
|
349
|
+
export declare type APIGifCaptionContentData = APIGifContentData & APICaptionContentData;
|
|
350
|
+
export interface UnknownContentData extends JSON {
|
|
351
|
+
}
|
|
352
|
+
/**
|
|
353
|
+
* JSON data of an iFunny Post
|
|
354
|
+
*/
|
|
355
|
+
export interface APIContentBase {
|
|
356
|
+
/**
|
|
357
|
+
* Unique id of the post.\
|
|
358
|
+
* Typically 9 characters long
|
|
359
|
+
*/
|
|
360
|
+
id: string;
|
|
361
|
+
/**
|
|
362
|
+
* The type of the post.
|
|
363
|
+
*/
|
|
364
|
+
type: APIContentType;
|
|
365
|
+
/**
|
|
366
|
+
* Content url of the post.
|
|
367
|
+
*/
|
|
368
|
+
url: string;
|
|
369
|
+
/**
|
|
370
|
+
* If the post uses the old watermark or the new one
|
|
371
|
+
*/
|
|
372
|
+
old_watermark: boolean;
|
|
373
|
+
/**
|
|
374
|
+
* In-app share url.
|
|
375
|
+
* @example
|
|
376
|
+
* `https://ifunny.co/picture/${post.id}`
|
|
377
|
+
* `https://ifunny.co/video/${post.id}`
|
|
378
|
+
*/
|
|
379
|
+
link: string;
|
|
380
|
+
/**
|
|
381
|
+
* The title of the post
|
|
382
|
+
*/
|
|
383
|
+
title: string;
|
|
384
|
+
/**
|
|
385
|
+
* Fixed title of the post
|
|
386
|
+
* @example
|
|
387
|
+
* `Gif memes ${post.id} by ${post.creator.nick}`
|
|
388
|
+
* `Picture memes ${post.id} by ${post.creator.nick}: ${post.num.comments} comments`
|
|
389
|
+
*/
|
|
390
|
+
fixed_title: string;
|
|
391
|
+
/**
|
|
392
|
+
* Array of tags on the post
|
|
393
|
+
*/
|
|
394
|
+
tags: string[];
|
|
395
|
+
/**
|
|
396
|
+
* The publish state of the post
|
|
397
|
+
*/
|
|
398
|
+
state: APIContentState;
|
|
399
|
+
/**
|
|
400
|
+
* {@link Timestamp} of when the post was created
|
|
401
|
+
*/
|
|
402
|
+
date_create: Timestamp;
|
|
403
|
+
/**
|
|
404
|
+
* {@link Timestamp} of when the Post was published
|
|
405
|
+
*/
|
|
406
|
+
publish_at: Timestamp;
|
|
407
|
+
/**
|
|
408
|
+
* Is the post smiled by the Client
|
|
409
|
+
*/
|
|
410
|
+
is_smiled: boolean;
|
|
411
|
+
/**
|
|
412
|
+
* Is the post unsmiled by the Client
|
|
413
|
+
*/
|
|
414
|
+
is_unsmiled: boolean;
|
|
415
|
+
/**
|
|
416
|
+
* Is the post removed by iFunny
|
|
417
|
+
*/
|
|
418
|
+
is_abused: boolean;
|
|
419
|
+
/**
|
|
420
|
+
* Is the post featured by iFunny
|
|
421
|
+
*/
|
|
422
|
+
is_featured: boolean;
|
|
423
|
+
/**
|
|
424
|
+
* Is the post republished by the Client
|
|
425
|
+
*/
|
|
426
|
+
is_republished: boolean;
|
|
427
|
+
/**
|
|
428
|
+
* Is the post pinned by the creator
|
|
429
|
+
*/
|
|
430
|
+
is_pinned: boolean;
|
|
431
|
+
/**
|
|
432
|
+
* Background color of the post.
|
|
433
|
+
*/
|
|
434
|
+
bg_color: HexCode;
|
|
435
|
+
/**
|
|
436
|
+
* The {@link APIContentThumbnail thumbnail} of the post
|
|
437
|
+
*/
|
|
438
|
+
thumb: APIContentThumbnail;
|
|
439
|
+
/**
|
|
440
|
+
* A post's {@link APIContentCopyright copyright} data
|
|
441
|
+
*/
|
|
442
|
+
copyright: APIContentCopyright;
|
|
443
|
+
/**
|
|
444
|
+
* The {@link APIContentNums numbers} on the post.
|
|
445
|
+
*/
|
|
446
|
+
num: APIContentNums;
|
|
447
|
+
/**
|
|
448
|
+
* The author of the post
|
|
449
|
+
*/
|
|
450
|
+
creator?: APIContentCreator;
|
|
451
|
+
/**
|
|
452
|
+
* Size of the post
|
|
453
|
+
*/
|
|
454
|
+
size: Size;
|
|
455
|
+
/**
|
|
456
|
+
* Url of the original source
|
|
457
|
+
*/
|
|
458
|
+
traceback_url?: string;
|
|
459
|
+
/**
|
|
460
|
+
* The post's visibility
|
|
461
|
+
*/
|
|
462
|
+
visibility: APIContentVisibility;
|
|
463
|
+
/**
|
|
464
|
+
* TODO: shot_status description
|
|
465
|
+
*/
|
|
466
|
+
shot_status: APIContentShotStatus;
|
|
467
|
+
/**
|
|
468
|
+
* TODO: fast_start description
|
|
469
|
+
*/
|
|
470
|
+
fast_start: boolean;
|
|
471
|
+
/**
|
|
472
|
+
* The risk level of the post
|
|
473
|
+
*/
|
|
474
|
+
risk: number;
|
|
475
|
+
/**
|
|
476
|
+
* @example
|
|
477
|
+
* `https://ifunny.co/picture/${post.id}`
|
|
478
|
+
*/
|
|
479
|
+
canonical_url: string;
|
|
480
|
+
/**
|
|
481
|
+
* Text generated from iFunny's OCR
|
|
482
|
+
*/
|
|
483
|
+
ocr_text?: string;
|
|
484
|
+
/**
|
|
485
|
+
* Can the post be boosted still
|
|
486
|
+
*/
|
|
487
|
+
can_be_boosted: boolean;
|
|
488
|
+
/**
|
|
489
|
+
* The source of the post if it's a republish
|
|
490
|
+
*/
|
|
491
|
+
source?: APIContentSource;
|
|
492
|
+
}
|
|
493
|
+
export interface APICoubContent extends APIContentBase {
|
|
494
|
+
type: POST_TYPES.COUB;
|
|
495
|
+
coub: APICoubContentData;
|
|
496
|
+
}
|
|
497
|
+
export interface APIVideoClipContent extends APIContentBase {
|
|
498
|
+
type: POST_TYPES.VIDEO_CLIP;
|
|
499
|
+
video_clip: APIVideoClipContentData;
|
|
500
|
+
}
|
|
501
|
+
export interface APIVideoContent extends APIContentBase {
|
|
502
|
+
type: POST_TYPES.VIDEO;
|
|
503
|
+
video: APIVideoContentData;
|
|
504
|
+
}
|
|
505
|
+
export interface APIVineContent extends APIContentBase {
|
|
506
|
+
type: POST_TYPES.VINE;
|
|
507
|
+
vine: APIVineContentData;
|
|
508
|
+
}
|
|
509
|
+
export interface APICaptionContent extends APIContentBase {
|
|
510
|
+
type: POST_TYPES.CAPTION;
|
|
511
|
+
caption: APICaptionContentData;
|
|
512
|
+
}
|
|
513
|
+
export interface APIComicsContent extends APIContentBase {
|
|
514
|
+
type: POST_TYPES.COMICS;
|
|
515
|
+
comics: APIComicsContentData;
|
|
516
|
+
}
|
|
517
|
+
export interface APIMemeContent extends APIContentBase {
|
|
518
|
+
type: POST_TYPES.MEME;
|
|
519
|
+
meme: APIMemeContentData;
|
|
520
|
+
}
|
|
521
|
+
export interface APIPicContent extends APIContentBase {
|
|
522
|
+
type: POST_TYPES.PIC;
|
|
523
|
+
pic: APIPicContentData;
|
|
524
|
+
}
|
|
525
|
+
export interface APIGifContent extends APIContentBase {
|
|
526
|
+
type: POST_TYPES.GIF;
|
|
527
|
+
gif: APIGifContentData;
|
|
528
|
+
}
|
|
529
|
+
export interface APIGifCaptionContent extends APIContentBase {
|
|
530
|
+
type: POST_TYPES.GIF_CAPTION;
|
|
531
|
+
gif: APIGifCaptionContentData;
|
|
532
|
+
}
|
|
378
533
|
/**
|
|
379
|
-
*
|
|
534
|
+
* The original source of the content
|
|
380
535
|
*/
|
|
381
|
-
export declare type
|
|
536
|
+
export declare type APIContentSource = Partial<APIContent> & Pick<APIContent, "id" | "date_create">;
|
|
537
|
+
export declare type APIContent = APIContentVideo | APIContentPic | APIContentGif;
|
|
538
|
+
export declare type APIContentVideo = APICoubContent | APIVideoClipContent | APIVideoContent | APIVineContent;
|
|
539
|
+
export declare type APIContentPic = APICaptionContent | APIPicContent | APIComicsContent | APIMemeContent;
|
|
540
|
+
export declare type APIContentGif = APIGifContent | APIGifCaptionContent;
|
|
541
|
+
export {};
|
|
382
542
|
//# sourceMappingURL=post.d.ts.map
|