e621 1.0.9 → 2.0.0-dev.11
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/.node-version +1 -0
- package/README.md +116 -187
- package/build/package.json +14 -11
- package/build/src/index.d.ts +28 -295
- package/build/src/index.js +83 -442
- package/build/src/modules/Pools.d.ts +120 -0
- package/build/src/modules/Pools.js +247 -0
- package/build/src/modules/PostSets.d.ts +88 -0
- package/build/src/modules/PostSets.js +182 -0
- package/build/src/modules/Posts.d.ts +124 -0
- package/build/src/modules/Posts.js +323 -0
- package/build/src/modules/UserFeedback.d.ts +66 -0
- package/build/src/modules/UserFeedback.js +134 -0
- package/build/src/modules/Users.d.ts +110 -0
- package/build/src/modules/Users.js +248 -0
- package/build/src/modules/WikiPages.d.ts +99 -0
- package/build/src/modules/WikiPages.js +208 -0
- package/build/src/structures/AuthenticatedUser.d.ts +109 -0
- package/build/src/structures/AuthenticatedUser.js +128 -0
- package/build/src/structures/Pool.d.ts +85 -0
- package/build/src/structures/Pool.js +110 -0
- package/build/src/structures/PoolHistory.d.ts +42 -0
- package/build/src/structures/PoolHistory.js +53 -0
- package/build/src/structures/Post.d.ts +147 -0
- package/build/src/structures/Post.js +155 -0
- package/build/src/structures/PostHistory.d.ts +52 -0
- package/build/src/structures/PostHistory.js +93 -0
- package/build/src/structures/PostSet.d.ts +71 -0
- package/build/src/structures/PostSet.js +91 -0
- package/build/src/structures/User.d.ts +62 -0
- package/build/src/structures/User.js +80 -0
- package/build/src/structures/WikiPage.d.ts +16 -0
- package/build/src/structures/WikiPage.js +26 -0
- package/build/src/structures/WikiPageHistory.d.ts +37 -0
- package/build/src/structures/WikiPageHistory.js +49 -0
- package/build/src/types/index.d.ts +92 -0
- package/build/src/types/pools.d.ts +60 -0
- package/build/src/types/post_sets.d.ts +33 -0
- package/build/src/types/posts.d.ts +165 -0
- package/build/src/types/user_feedback.d.ts +27 -0
- package/build/src/types/users.d.ts +277 -0
- package/build/src/types/wiki_pages.d.ts +65 -0
- package/build/src/util/FormHelper.d.ts +9 -0
- package/build/src/util/FormHelper.js +15 -0
- package/build/src/util/MultipartData.d.ts +7 -0
- package/build/src/util/MultipartData.js +39 -0
- package/build/src/util/RequestHandler.d.ts +37 -0
- package/build/src/util/RequestHandler.js +311 -0
- package/package.json +14 -11
- package/LICENSE +0 -21
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import type { GenericSearchOptions } from ".";
|
|
2
|
+
|
|
3
|
+
export type Ratings = "s" | "q" | "e";
|
|
4
|
+
export interface PostProperties {
|
|
5
|
+
id: number;
|
|
6
|
+
created_at: string;
|
|
7
|
+
updated_at: string;
|
|
8
|
+
file: {
|
|
9
|
+
width: number;
|
|
10
|
+
height: number;
|
|
11
|
+
ext: string;
|
|
12
|
+
size: number;
|
|
13
|
+
md5: string;
|
|
14
|
+
url: string;
|
|
15
|
+
};
|
|
16
|
+
preview: {
|
|
17
|
+
width: number;
|
|
18
|
+
height: number;
|
|
19
|
+
url: string;
|
|
20
|
+
};
|
|
21
|
+
sample: {
|
|
22
|
+
has: boolean;
|
|
23
|
+
height: number;
|
|
24
|
+
width: number;
|
|
25
|
+
url: string;
|
|
26
|
+
// seems to be used for videos
|
|
27
|
+
alternates: Record<string, {
|
|
28
|
+
type: string;
|
|
29
|
+
height: number;
|
|
30
|
+
width: number;
|
|
31
|
+
urls: Array<string | null>;
|
|
32
|
+
}>;
|
|
33
|
+
};
|
|
34
|
+
score: Record<"up" | "down" | "total", number>;
|
|
35
|
+
tags: Record<"general" | "species" | "character" | "copyright" | "artist" | "invalid" | "lore" | "meta", Array<string>>;
|
|
36
|
+
locked_tags: Array<string>;
|
|
37
|
+
change_seq: number;
|
|
38
|
+
flags: Record<"pending" | "flagged" | "note_locked" | "status_locked" | "rating_locked" | "deleted", boolean>;
|
|
39
|
+
rating: Ratings;
|
|
40
|
+
fav_count: number;
|
|
41
|
+
sources: Array<string>;
|
|
42
|
+
pools: Array<number>;
|
|
43
|
+
relationships: {
|
|
44
|
+
parent_id: number | null;
|
|
45
|
+
has_childeren: boolean;
|
|
46
|
+
has_active_childeren: boolean;
|
|
47
|
+
childeren: Array<number>;
|
|
48
|
+
};
|
|
49
|
+
approver_id: number | null;
|
|
50
|
+
uploader_id: number;
|
|
51
|
+
description: string;
|
|
52
|
+
comment_count: number;
|
|
53
|
+
is_favorited: boolean;
|
|
54
|
+
has_notes: boolean;
|
|
55
|
+
duration: number | null;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export interface SearchPostsOptions extends GenericSearchOptions {
|
|
59
|
+
tags?: string | Array<string>;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export type CreatePostOptions = {
|
|
63
|
+
tags: Array<string> | string;
|
|
64
|
+
rating: Ratings;
|
|
65
|
+
sources?: Array<string> | string;
|
|
66
|
+
description?: string;
|
|
67
|
+
parentID?: number;
|
|
68
|
+
refererURL?: string;
|
|
69
|
+
md5Confirmation?: string;
|
|
70
|
+
/** requires approver */
|
|
71
|
+
asPending?: boolean;
|
|
72
|
+
/** requires privileged */
|
|
73
|
+
ratingLocked?: boolean;
|
|
74
|
+
/** requires admin */
|
|
75
|
+
lockedTags?: Array<string> | string;
|
|
76
|
+
} & ({
|
|
77
|
+
file: Buffer;
|
|
78
|
+
} | {
|
|
79
|
+
fileURL: string;
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
export interface NewPost {
|
|
83
|
+
success: true;
|
|
84
|
+
location: `/posts/${number}`;
|
|
85
|
+
post_id: number;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
export interface ModifyPostOptions {
|
|
89
|
+
editReason?: string;
|
|
90
|
+
addTags?: Array<string> | string;
|
|
91
|
+
removeTags?: Array<string> | string;
|
|
92
|
+
addSources?: Array<string> | string;
|
|
93
|
+
removeSources?: Array<string> | string;
|
|
94
|
+
rating?: Ratings;
|
|
95
|
+
description?: string;
|
|
96
|
+
parentID?: number;
|
|
97
|
+
hasEmbeddedNotes?: boolean;
|
|
98
|
+
/** requires privileged */
|
|
99
|
+
ratingLocked?: boolean;
|
|
100
|
+
/** requires janitor */
|
|
101
|
+
noteLocked?: boolean;
|
|
102
|
+
/** requires admin */
|
|
103
|
+
statusLocked?: boolean;
|
|
104
|
+
/** requires admin */
|
|
105
|
+
hideFromAnonymous?: boolean;
|
|
106
|
+
/** requires admin */
|
|
107
|
+
hideFromSearch?: boolean;
|
|
108
|
+
/** requires janitor */
|
|
109
|
+
backgroundColor?: string;
|
|
110
|
+
/** requires admin */
|
|
111
|
+
lockedTags?: Array<string> | string;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
export interface PostVoteResult {
|
|
115
|
+
score: number;
|
|
116
|
+
up: number;
|
|
117
|
+
down: number;
|
|
118
|
+
our_score: number;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
export interface SearchPostHistoryOptions extends GenericSearchOptions {
|
|
122
|
+
user?: string;
|
|
123
|
+
userID?: number;
|
|
124
|
+
post?: number;
|
|
125
|
+
reason?: string;
|
|
126
|
+
description?: string;
|
|
127
|
+
ratingChangedTo?: Ratings;
|
|
128
|
+
finalRating?: Ratings;
|
|
129
|
+
parent?: number;
|
|
130
|
+
parentChangedTo?: number;
|
|
131
|
+
finalTags?: Array<string> |string;
|
|
132
|
+
addedTags?: Array<string> | string;
|
|
133
|
+
removedTags?: Array<string> | string;
|
|
134
|
+
finalLockedTags?: Array<string> | string;
|
|
135
|
+
addedLockedTags?: Array<string> | string;
|
|
136
|
+
removedLockedTags?: Array<string> | string;
|
|
137
|
+
source?: string;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
export interface PostHistoryProperties {
|
|
141
|
+
id: number;
|
|
142
|
+
post_id: number;
|
|
143
|
+
tags: string;
|
|
144
|
+
updater_id: number;
|
|
145
|
+
updater_name: string;
|
|
146
|
+
updated_at: string;
|
|
147
|
+
rating: Ratings;
|
|
148
|
+
parent_id: number | null;
|
|
149
|
+
source: string;
|
|
150
|
+
description: string;
|
|
151
|
+
reason: string;
|
|
152
|
+
locked_tags: string | null;
|
|
153
|
+
added_tags: Array<string>;
|
|
154
|
+
removed_tags: Array<string>;
|
|
155
|
+
added_locked_tags: Array<string>;
|
|
156
|
+
removed_locked_tags: Array<string>;
|
|
157
|
+
rating_changed: boolean;
|
|
158
|
+
parent_changed: boolean;
|
|
159
|
+
source_changed: boolean;
|
|
160
|
+
description_changed: boolean;
|
|
161
|
+
version: number;
|
|
162
|
+
obsolete_added_tags: string;
|
|
163
|
+
obsolete_removed_tags: string;
|
|
164
|
+
unchanged_tags: string;
|
|
165
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { GenericSearchOptions } from ".";
|
|
2
|
+
|
|
3
|
+
export type FeedbackCategories = "positive" | "neutral" | "negative";
|
|
4
|
+
export interface UserFeedbackProperties {
|
|
5
|
+
id: number;
|
|
6
|
+
user_id: number;
|
|
7
|
+
creator_id: number;
|
|
8
|
+
created_at: string;
|
|
9
|
+
body: string;
|
|
10
|
+
category: FeedbackCategories;
|
|
11
|
+
updated_at: string;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export interface SearchUserFeedbackOptions extends GenericSearchOptions {
|
|
15
|
+
username?: string;
|
|
16
|
+
creator?: string;
|
|
17
|
+
body?: string;
|
|
18
|
+
category?: FeedbackCategories;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export interface CreateUserFeedbackOptions {
|
|
22
|
+
username: string;
|
|
23
|
+
category: FeedbackCategories;
|
|
24
|
+
body: string;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export type ModifyUserFeedbackOptions = Partial<Omit<CreateUserFeedbackOptions, "user_name">>;
|
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
import type { GenericSearchOptions } from ".";
|
|
2
|
+
|
|
3
|
+
export interface UserProperties {
|
|
4
|
+
wiki_page_version_count: number;
|
|
5
|
+
artist_version_count: number;
|
|
6
|
+
pool_version_count: number;
|
|
7
|
+
forum_post_count: number;
|
|
8
|
+
comment_count: number;
|
|
9
|
+
appeal_count: number;
|
|
10
|
+
flag_count: number;
|
|
11
|
+
positive_feedback_count: number;
|
|
12
|
+
neutral_feedback_count: number;
|
|
13
|
+
negative_feedback_count: number;
|
|
14
|
+
upload_limit: number;
|
|
15
|
+
id: number;
|
|
16
|
+
created_at: string;
|
|
17
|
+
name: string;
|
|
18
|
+
level: number; // not hardcoded due to custom instances
|
|
19
|
+
base_upload_limit: number;
|
|
20
|
+
post_upload_count: number;
|
|
21
|
+
post_update_count: number;
|
|
22
|
+
note_update_count: number;
|
|
23
|
+
is_banned: boolean;
|
|
24
|
+
can_approve_posts: boolean;
|
|
25
|
+
can_upload_free: boolean;
|
|
26
|
+
level_string: string; // not hardcoded due to custom instances
|
|
27
|
+
avatar_id: number | null;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export type DefaultImageSize = "original" | "fit" | "fitv" | "large";
|
|
31
|
+
export interface AuthenticatedUserProperties extends UserProperties {
|
|
32
|
+
show_avatars: boolean;
|
|
33
|
+
blacklist_avatars: boolean;
|
|
34
|
+
blacklist_users: boolean;
|
|
35
|
+
description_collapsed_initially: boolean;
|
|
36
|
+
hide_comments: boolean;
|
|
37
|
+
show_hidden_comments: boolean;
|
|
38
|
+
show_post_statistics: boolean;
|
|
39
|
+
has_mail: boolean;
|
|
40
|
+
receive_email_notifications: boolean;
|
|
41
|
+
enable_keyboard_navigation: boolean;
|
|
42
|
+
enable_privacy_mode: boolean;
|
|
43
|
+
style_usernames: boolean;
|
|
44
|
+
enable_auto_complete: boolean;
|
|
45
|
+
has_saved_searches: boolean;
|
|
46
|
+
disable_cropped_thumbnails: boolean;
|
|
47
|
+
disable_mobile_gestures: boolean;
|
|
48
|
+
enable_safe_mode: boolean;
|
|
49
|
+
disable_responsive_mode: boolean;
|
|
50
|
+
disable_post_tooltips: boolean;
|
|
51
|
+
no_flagging: boolean;
|
|
52
|
+
no_feedback: boolean;
|
|
53
|
+
disable_user_dmails: boolean;
|
|
54
|
+
enable_compact_uploader: boolean;
|
|
55
|
+
updated_at: string;
|
|
56
|
+
email: string;
|
|
57
|
+
last_logged_in_at: string;
|
|
58
|
+
last_forum_read_at: string | null;
|
|
59
|
+
recent_tags: string | null;
|
|
60
|
+
comment_threshold: number;
|
|
61
|
+
default_image_size: DefaultImageSize; // this *can* be different on custom instances, but I doubt anyone would change these
|
|
62
|
+
favorite_tags: string | null;
|
|
63
|
+
blacklisted_tags: string;
|
|
64
|
+
time_zone: string;
|
|
65
|
+
per_page: number;
|
|
66
|
+
custom_style: string | null;
|
|
67
|
+
favorite_count: number;
|
|
68
|
+
api_regen_multiplier: number;
|
|
69
|
+
api_burst_limit: number;
|
|
70
|
+
remaining_api_limit: number;
|
|
71
|
+
statement_timeout: number;
|
|
72
|
+
favorite_limit: number;
|
|
73
|
+
tag_query_limit: number;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
export type UploadLimit = Omit<AuthenticatedUserProperties,
|
|
77
|
+
"wiki_page_version_count" | "artist_version_count" | "pool_version_count" | "forum_post_count" |
|
|
78
|
+
"comment_count" | "appeal_count" | "flag_count" | "positive_feedback_count" |
|
|
79
|
+
"neutral_feedback_count" | "negative_feedback_count" | "upload_limit"
|
|
80
|
+
>;
|
|
81
|
+
|
|
82
|
+
export type UserOrder = "date" | "name" | "post_upload_count" | "note_count" | "post_update_count";
|
|
83
|
+
export interface SearchUsersOptions extends GenericSearchOptions {
|
|
84
|
+
/** use asterisks for wildcards */
|
|
85
|
+
name?: string;
|
|
86
|
+
/** requires elevated privileges */
|
|
87
|
+
email?: string;
|
|
88
|
+
level?: number;
|
|
89
|
+
minLevel?: number;
|
|
90
|
+
maxLevel?: number;
|
|
91
|
+
unrestrictedUploads?: boolean;
|
|
92
|
+
approver?: boolean;
|
|
93
|
+
order?: UserOrder;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
export type Timezones =
|
|
97
|
+
"International Date Line West" | // (GMT-12:00) International Date Line West
|
|
98
|
+
"American Samoa" | // (GMT-11:00) American Samoa
|
|
99
|
+
"Midway Island" | // (GMT-11:00) Midway Island
|
|
100
|
+
"Hawaii" | // (GMT-10:00) Hawaii
|
|
101
|
+
"Alaska" | // (GMT-09:00) Alaska
|
|
102
|
+
"Pacific Time (US & Canada)" | // (GMT-08:00) Pacific Time (US & Canada)
|
|
103
|
+
"Tijuana" | // (GMT-08:00) Tijuana
|
|
104
|
+
"Arizona" | // (GMT-07:00) Arizona
|
|
105
|
+
"Chihuahua" | // (GMT-07:00) Chihuahua
|
|
106
|
+
"Mazatlan" | // (GMT-07:00) Mazatlan
|
|
107
|
+
"Mountain Time (US & Canada)" | // (GMT-07:00) Mountain Time (US & Canada)
|
|
108
|
+
"Central America" | // (GMT-06:00) Central America
|
|
109
|
+
"Central Time (US & Canada)" | // (GMT-06:00) Central Time (US & Canada)
|
|
110
|
+
"Guadalajara" | // (GMT-06:00) Guadalajara
|
|
111
|
+
"Mexico City" | // (GMT-06:00) Mexico City
|
|
112
|
+
"Monterrey" | // (GMT-06:00) Monterrey
|
|
113
|
+
"Saskatchewan" | // (GMT-06:00) Saskatchewan
|
|
114
|
+
"Bogota" | // (GMT-05:00) Bogota
|
|
115
|
+
"Eastern Time (US & Canada)" | // (GMT-05:00) Eastern Time (US & Canada)
|
|
116
|
+
"Indiana (East)" | // (GMT-05:00) Indiana (East)
|
|
117
|
+
"Lima" | // (GMT-05:00) Lima
|
|
118
|
+
"Quito" | // (GMT-05:00) Quito
|
|
119
|
+
"Atlantic Time (Canada)" | // (GMT-04:00) Atlantic Time (Canada)
|
|
120
|
+
"Caracas" | // (GMT-04:00) Caracas
|
|
121
|
+
"Georgetown" | // (GMT-04:00) Georgetown
|
|
122
|
+
"La Paz" | // (GMT-04:00) La Paz
|
|
123
|
+
"Puerto Rico" | // (GMT-04:00) Puerto Rico
|
|
124
|
+
"Santiago" | // (GMT-04:00) Santiago
|
|
125
|
+
"Newfoundland" | // (GMT-03:30) Newfoundland
|
|
126
|
+
"Brasilia" | // (GMT-03:00) Brasilia
|
|
127
|
+
"Buenos Aires" | // (GMT-03:00) Buenos Aires
|
|
128
|
+
"Greenland" | // (GMT-03:00) Greenland
|
|
129
|
+
"Montevideo" | // (GMT-03:00) Montevideo
|
|
130
|
+
"Mid-Atlantic" | // (GMT-02:00) Mid-Atlantic
|
|
131
|
+
"Azores" | // (GMT-01:00) Azores
|
|
132
|
+
"Cape Verde Is." | // (GMT-01:00) Cape Verde Is.
|
|
133
|
+
"Edinburgh" | // (GMT+00:00) Edinburgh
|
|
134
|
+
"Lisbon" | // (GMT+00:00) Lisbon
|
|
135
|
+
"London" | // (GMT+00:00) London
|
|
136
|
+
"Monrovia" | // (GMT+00:00) Monrovia
|
|
137
|
+
"UTC" | // (GMT+00:00) UTC
|
|
138
|
+
"Amsterdam" | // (GMT+01:00) Amsterdam
|
|
139
|
+
"Belgrade" | // (GMT+01:00) Belgrade
|
|
140
|
+
"Berlin" | // (GMT+01:00) Berlin
|
|
141
|
+
"Bern" | // (GMT+01:00) Bern
|
|
142
|
+
"Bratislava" | // (GMT+01:00) Bratislava
|
|
143
|
+
"Brussels" | // (GMT+01:00) Brussels
|
|
144
|
+
"Budapest" | // (GMT+01:00) Budapest
|
|
145
|
+
"Casablanca" | // (GMT+01:00) Casablanca
|
|
146
|
+
"Copenhagen" | // (GMT+01:00) Copenhagen
|
|
147
|
+
"Dublin" | // (GMT+01:00) Dublin
|
|
148
|
+
"Ljubljana" | // (GMT+01:00) Ljubljana
|
|
149
|
+
"Madrid" | // (GMT+01:00) Madrid
|
|
150
|
+
"Paris" | // (GMT+01:00) Paris
|
|
151
|
+
"Prague" | // (GMT+01:00) Prague
|
|
152
|
+
"Rome" | // (GMT+01:00) Rome
|
|
153
|
+
"Sarajevo" | // (GMT+01:00) Sarajevo
|
|
154
|
+
"Skopje" | // (GMT+01:00) Skopje
|
|
155
|
+
"Stockholm" | // (GMT+01:00) Stockholm
|
|
156
|
+
"Vienna" | // (GMT+01:00) Vienna
|
|
157
|
+
"Warsaw" | // (GMT+01:00) Warsaw
|
|
158
|
+
"West Central Africa" | // (GMT+01:00) West Central Africa
|
|
159
|
+
"Zagreb" | // (GMT+01:00) Zagreb
|
|
160
|
+
"Zurich" | // (GMT+01:00) Zurich
|
|
161
|
+
"Athens" | // (GMT+02:00) Athens
|
|
162
|
+
"Bucharest" | // (GMT+02:00) Bucharest
|
|
163
|
+
"Cairo" | // (GMT+02:00) Cairo
|
|
164
|
+
"Harare" | // (GMT+02:00) Harare
|
|
165
|
+
"Helsinki" | // (GMT+02:00) Helsinki
|
|
166
|
+
"Jerusalem" | // (GMT+02:00) Jerusalem
|
|
167
|
+
"Kaliningrad" | // (GMT+02:00) Kaliningrad
|
|
168
|
+
"Kyiv" | // (GMT+02:00) Kyiv
|
|
169
|
+
"Pretoria" | // (GMT+02:00) Pretoria
|
|
170
|
+
"Riga" | // (GMT+02:00) Riga
|
|
171
|
+
"Sofia" | // (GMT+02:00) Sofia
|
|
172
|
+
"Tallinn" | // (GMT+02:00) Tallinn
|
|
173
|
+
"Vilnius" | // (GMT+02:00) Vilnius
|
|
174
|
+
"Baghdad" | // (GMT+03:00) Baghdad
|
|
175
|
+
"Istanbul" | // (GMT+03:00) Istanbul
|
|
176
|
+
"Kuwait" | // (GMT+03:00) Kuwait
|
|
177
|
+
"Minsk" | // (GMT+03:00) Minsk
|
|
178
|
+
"Moscow" | // (GMT+03:00) Moscow
|
|
179
|
+
"Nairobi" | // (GMT+03:00) Nairobi
|
|
180
|
+
"Riyadh" | // (GMT+03:00) Riyadh
|
|
181
|
+
"St. Petersburg" | // (GMT+03:00) St. Petersburg
|
|
182
|
+
"Volgograd" | // (GMT+03:00) Volgograd
|
|
183
|
+
"Tehran" | // (GMT+03:30) Tehran
|
|
184
|
+
"Abu Dhabi" | // (GMT+04:00) Abu Dhabi
|
|
185
|
+
"Baku" | // (GMT+04:00) Baku
|
|
186
|
+
"Muscat" | // (GMT+04:00) Muscat
|
|
187
|
+
"Samara" | // (GMT+04:00) Samara
|
|
188
|
+
"Tbilisi" | // (GMT+04:00) Tbilisi
|
|
189
|
+
"Yerevan" | // (GMT+04:00) Yerevan
|
|
190
|
+
"Kabul" | // (GMT+04:30) Kabul
|
|
191
|
+
"Ekaterinburg" | // (GMT+05:00) Ekaterinburg
|
|
192
|
+
"Islamabad" | // (GMT+05:00) Islamabad
|
|
193
|
+
"Karachi" | // (GMT+05:00) Karachi
|
|
194
|
+
"Tashkent" | // (GMT+05:00) Tashkent
|
|
195
|
+
"Chennai" | // (GMT+05:30) Chennai
|
|
196
|
+
"Kolkata" | // (GMT+05:30) Kolkata
|
|
197
|
+
"Mumbai" | // (GMT+05:30) Mumbai
|
|
198
|
+
"New Delhi" | // (GMT+05:30) New Delhi
|
|
199
|
+
"Sri Jayawardenepura" | // (GMT+05:30) Sri Jayawardenepura
|
|
200
|
+
"Kathmandu" | // (GMT+05:45) Kathmandu
|
|
201
|
+
"Almaty" | // (GMT+06:00) Almaty
|
|
202
|
+
"Astana" | // (GMT+06:00) Astana
|
|
203
|
+
"Dhaka" | // (GMT+06:00) Dhaka
|
|
204
|
+
"Urumqi" | // (GMT+06:00) Urumqi
|
|
205
|
+
"Rangoon" | // (GMT+06:30) Rangoon
|
|
206
|
+
"Bangkok" | // (GMT+07:00) Bangkok
|
|
207
|
+
"Hanoi" | // (GMT+07:00) Hanoi
|
|
208
|
+
"Jakarta" | // (GMT+07:00) Jakarta
|
|
209
|
+
"Krasnoyarsk" | // (GMT+07:00) Krasnoyarsk
|
|
210
|
+
"Novosibirsk" | // (GMT+07:00) Novosibirsk
|
|
211
|
+
"Beijing" | // (GMT+08:00) Beijing
|
|
212
|
+
"Chongqing" | // (GMT+08:00) Chongqing
|
|
213
|
+
"Hong Kong" | // (GMT+08:00) Hong Kong
|
|
214
|
+
"Irkutsk" | // (GMT+08:00) Irkutsk
|
|
215
|
+
"Kuala Lumpur" | // (GMT+08:00) Kuala Lumpur
|
|
216
|
+
"Perth" | // (GMT+08:00) Perth
|
|
217
|
+
"Singapore" | // (GMT+08:00) Singapore
|
|
218
|
+
"Taipei" | // (GMT+08:00) Taipei
|
|
219
|
+
"Ulaanbaatar" | // (GMT+08:00) Ulaanbaatar
|
|
220
|
+
"Osaka" | // (GMT+09:00) Osaka
|
|
221
|
+
"Sapporo" | // (GMT+09:00) Sapporo
|
|
222
|
+
"Seoul" | // (GMT+09:00) Seoul
|
|
223
|
+
"Tokyo" | // (GMT+09:00) Tokyo
|
|
224
|
+
"Yakutsk" | // (GMT+09:00) Yakutsk
|
|
225
|
+
"Adelaide" | // (GMT+09:30) Adelaide
|
|
226
|
+
"Darwin" | // (GMT+09:30) Darwin
|
|
227
|
+
"Brisbane" | // (GMT+10:00) Brisbane
|
|
228
|
+
"Canberra" | // (GMT+10:00) Canberra
|
|
229
|
+
"Guam" | // (GMT+10:00) Guam
|
|
230
|
+
"Hobart" | // (GMT+10:00) Hobart
|
|
231
|
+
"Melbourne" | // (GMT+10:00) Melbourne
|
|
232
|
+
"Port Moresby" | // (GMT+10:00) Port Moresby
|
|
233
|
+
"Sydney" | // (GMT+10:00) Sydney
|
|
234
|
+
"Vladivostok" | // (GMT+10:00) Vladivostok
|
|
235
|
+
"Magadan" | // (GMT+11:00) Magadan
|
|
236
|
+
"New Caledonia" | // (GMT+11:00) New Caledonia
|
|
237
|
+
"Solomon Is." | // (GMT+11:00) Solomon Is.
|
|
238
|
+
"Srednekolymsk" | // (GMT+11:00) Srednekolymsk
|
|
239
|
+
"Auckland" | // (GMT+12:00) Auckland
|
|
240
|
+
"Fiji" | // (GMT+12:00) Fiji
|
|
241
|
+
"Kamchatka" | // (GMT+12:00) Kamchatka
|
|
242
|
+
"Marshall Is." | // (GMT+12:00) Marshall Is.
|
|
243
|
+
"Wellington" | // (GMT+12:00) Wellington
|
|
244
|
+
"Chatham Is." | // (GMT+12:45) Chatham Is.
|
|
245
|
+
"Nuku'alofa" | // (GMT+13:00) Nuku'alofa
|
|
246
|
+
"Samoa" | // (GMT+13:00) Samoa
|
|
247
|
+
"Tokelau Is."; // (GMT+13:00) Tokelau Is.
|
|
248
|
+
|
|
249
|
+
export interface EditSelfUserOptions {
|
|
250
|
+
avatarID?: number | null;
|
|
251
|
+
about?: string;
|
|
252
|
+
artinfo?: string;
|
|
253
|
+
timezone?: Timezones;
|
|
254
|
+
receiveEmailNotifications?: boolean;
|
|
255
|
+
commentThreshold?: number;
|
|
256
|
+
defaultImageSize?: DefaultImageSize;
|
|
257
|
+
/** between 25 and 250 */
|
|
258
|
+
postsPerPage?: number;
|
|
259
|
+
safeMode: boolean;
|
|
260
|
+
blacklistedTags?: string | Array<string>;
|
|
261
|
+
blacklistUsers?: boolean;
|
|
262
|
+
// advanced
|
|
263
|
+
coloredUsernames?: boolean;
|
|
264
|
+
enableKeyboardShortcuts?: boolean;
|
|
265
|
+
enableAutoComplete?: boolean;
|
|
266
|
+
enablePrivacyMode?: boolean;
|
|
267
|
+
enablePostStatistics?: boolean;
|
|
268
|
+
descriptionCollapsed?: boolean;
|
|
269
|
+
hideComments?: boolean;
|
|
270
|
+
disableCroppedThumbnails?: boolean;
|
|
271
|
+
showOwnHiddenComments?: boolean;
|
|
272
|
+
enableCompactUploader?: boolean;
|
|
273
|
+
dmailFilter?: string;
|
|
274
|
+
frequentTags?: string;
|
|
275
|
+
disableResponsiveMode?: boolean;
|
|
276
|
+
customCSSStyle?: string;
|
|
277
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type { GenericSearchOptions } from ".";
|
|
2
|
+
|
|
3
|
+
export interface WikiPageProperties {
|
|
4
|
+
id: number;
|
|
5
|
+
creator_id: number;
|
|
6
|
+
creator_name: string;
|
|
7
|
+
category_name: number;
|
|
8
|
+
body: string;
|
|
9
|
+
is_locked: boolean;
|
|
10
|
+
created_at: string;
|
|
11
|
+
updated_at: string;
|
|
12
|
+
updater_id: number;
|
|
13
|
+
other_names: Array<string>;
|
|
14
|
+
is_deleted: boolean;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export type WikiPageOrder = "title" | "time" | "post_count";
|
|
18
|
+
export interface SearchWikiPagesOptions extends GenericSearchOptions {
|
|
19
|
+
title?: string;
|
|
20
|
+
creator?: string;
|
|
21
|
+
body?: string;
|
|
22
|
+
otherNames?: string;
|
|
23
|
+
hasOtherNames?: boolean;
|
|
24
|
+
hideDeleted?: boolean;
|
|
25
|
+
order?: WikiPageOrder;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export interface CreateWikiPageOptions {
|
|
29
|
+
title: string;
|
|
30
|
+
body: string;
|
|
31
|
+
/** requires janitor */
|
|
32
|
+
locked?: boolean;
|
|
33
|
+
/** requires janitor */
|
|
34
|
+
forceOverwrite?: boolean;
|
|
35
|
+
reason?: string;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export interface ModifyWikiPageOptions {
|
|
39
|
+
/** requires janitor */
|
|
40
|
+
title?: string;
|
|
41
|
+
body?: string;
|
|
42
|
+
/** requires janitor */
|
|
43
|
+
locked?: boolean;
|
|
44
|
+
/** requires janitor */
|
|
45
|
+
forceOverwrite?: boolean;
|
|
46
|
+
reason?: string;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export interface WikiPageHistoryProperties {
|
|
50
|
+
id: number;
|
|
51
|
+
wiki_page_id: number;
|
|
52
|
+
updater_id: number;
|
|
53
|
+
title: string;
|
|
54
|
+
body: string;
|
|
55
|
+
is_locked: boolean;
|
|
56
|
+
created_at: string;
|
|
57
|
+
updated_at: string;
|
|
58
|
+
other_names: Array<string>;
|
|
59
|
+
is_deleted: boolean;
|
|
60
|
+
reason: string;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export interface SearchWikiPageHistoryOptions extends GenericSearchOptions {
|
|
64
|
+
wikiPage?: number;
|
|
65
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
class FormHelper {
|
|
4
|
+
parts = [];
|
|
5
|
+
add(first, second) {
|
|
6
|
+
this.parts.push(!second ? encodeURIComponent(first) : `${first}=${encodeURIComponent(second)}`);
|
|
7
|
+
return this;
|
|
8
|
+
}
|
|
9
|
+
build() { return this.parts.join("&"); }
|
|
10
|
+
getRaw() { return Array.from(this.parts); }
|
|
11
|
+
get2d() { return Array.from(this.parts).map(p => p.split("=")); }
|
|
12
|
+
toString() { return this.build.call(this); }
|
|
13
|
+
}
|
|
14
|
+
exports.default = FormHelper;
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRm9ybUhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlsL0Zvcm1IZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxNQUFxQixVQUFVO0lBQ3RCLEtBQUssR0FBa0IsRUFBRSxDQUFDO0lBSWxDLEdBQUcsQ0FBQyxLQUFhLEVBQUUsTUFBa0M7UUFDcEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssSUFBSSxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDaEcsT0FBTyxJQUFJLENBQUM7SUFDYixDQUFDO0lBRUQsS0FBSyxLQUFLLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hDLE1BQU0sS0FBSyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzQyxLQUFLLEtBQUssT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLFFBQVEsS0FBSyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztDQUM1QztBQWRELDZCQWNDIn0=
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* eslint-disable @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-explicit-any, @typescript-eslint/restrict-plus-operands */
|
|
3
|
+
// lovingly borrowed from Eris
|
|
4
|
+
// https://github.com/abalabahaha/eris/blob/master/lib/util/MultipartData.js
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
class MultipartData {
|
|
7
|
+
boundary = "----E621Multipart";
|
|
8
|
+
bufs = [];
|
|
9
|
+
attach(fieldName, data, filename) {
|
|
10
|
+
if (data === undefined) {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
let str = "\r\n--" + this.boundary + "\r\nContent-Disposition: form-data; name=\"" + fieldName + "\"";
|
|
14
|
+
if (filename) {
|
|
15
|
+
str += "; filename=\"" + filename + "\"";
|
|
16
|
+
}
|
|
17
|
+
if (ArrayBuffer.isView(data)) {
|
|
18
|
+
str += "\r\nContent-Type: application/octet-stream";
|
|
19
|
+
if (!(data instanceof Uint8Array)) {
|
|
20
|
+
data = new Uint8Array(data.buffer, data.byteOffset, data.byteLength);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
else if (typeof data === "object") {
|
|
24
|
+
str += "\r\nContent-Type: application/json";
|
|
25
|
+
data = Buffer.from(JSON.stringify(data));
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
data = Buffer.from("" + data);
|
|
29
|
+
}
|
|
30
|
+
this.bufs.push(Buffer.from(str + "\r\n\r\n"));
|
|
31
|
+
this.bufs.push(data);
|
|
32
|
+
}
|
|
33
|
+
finish() {
|
|
34
|
+
this.bufs.push(Buffer.from("\r\n--" + this.boundary + "--"));
|
|
35
|
+
return this.bufs;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.default = MultipartData;
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTXVsdGlwYXJ0RGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlsL011bHRpcGFydERhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHlJQUF5STtBQUN6SSw4QkFBOEI7QUFDOUIsNEVBQTRFOztBQUU1RSxNQUFxQixhQUFhO0lBQ2pDLFFBQVEsR0FBRyxtQkFBbUIsQ0FBQztJQUMvQixJQUFJLEdBQWtCLEVBQUUsQ0FBQztJQUV6QixNQUFNLENBQUMsU0FBaUIsRUFBRSxJQUFTLEVBQUUsUUFBaUI7UUFDckQsSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFO1lBQ3ZCLE9BQU87U0FDUDtRQUNELElBQUksR0FBRyxHQUFHLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxHQUFHLDZDQUE2QyxHQUFHLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEcsSUFBSSxRQUFRLEVBQUU7WUFDYixHQUFHLElBQUksZUFBZSxHQUFHLFFBQVEsR0FBRyxJQUFJLENBQUM7U0FDekM7UUFDRCxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDN0IsR0FBRyxJQUFJLDRDQUE0QyxDQUFDO1lBQ3BELElBQUksQ0FBQyxDQUFDLElBQUksWUFBWSxVQUFVLENBQUMsRUFBRTtnQkFDbEMsSUFBSSxHQUFHLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDckU7U0FDRDthQUFNLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFO1lBQ3BDLEdBQUcsSUFBSSxvQ0FBb0MsQ0FBQztZQUM1QyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDekM7YUFBTTtZQUNOLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztTQUM5QjtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVELE1BQU07UUFDTCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDN0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ2xCLENBQUM7Q0FDRDtBQS9CRCxnQ0ErQkMifQ==
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import type FormHelper from "./FormHelper";
|
|
3
|
+
import type E621 from "..";
|
|
4
|
+
export declare class APIError extends Error {
|
|
5
|
+
name: string;
|
|
6
|
+
type: "UNEXPECTED" | "PARSE" | "UNKNOWN";
|
|
7
|
+
statusCode: number;
|
|
8
|
+
statusMessage: string;
|
|
9
|
+
method: string;
|
|
10
|
+
path: string;
|
|
11
|
+
reqBody: unknown | null;
|
|
12
|
+
resBody: unknown | null;
|
|
13
|
+
constructor(type: APIError["type"], statusCode: number, statusMessage: string, method: string, path: string, reqBody: unknown | null, resBody: unknown | null);
|
|
14
|
+
}
|
|
15
|
+
export default class RequestHandler {
|
|
16
|
+
private readonly auth;
|
|
17
|
+
private readonly main;
|
|
18
|
+
constructor(main: E621);
|
|
19
|
+
authCheck(func: string, error?: boolean): boolean;
|
|
20
|
+
get<T = unknown>(path: string): Promise<T | null>;
|
|
21
|
+
post<T = unknown>(path: string, body?: string): Promise<T | null>;
|
|
22
|
+
postWithFile<T = unknown>(path: string, body: FormHelper, files: Array<{
|
|
23
|
+
content: Buffer;
|
|
24
|
+
name: string;
|
|
25
|
+
}>): Promise<T | null>;
|
|
26
|
+
patch<T = unknown>(path: string, body?: string): Promise<T | null>;
|
|
27
|
+
put<T = unknown>(path: string, body?: string): Promise<T | null>;
|
|
28
|
+
delete<T = unknown>(path: string, body?: string): Promise<T | null>;
|
|
29
|
+
other<T = unknown>(method: string, path: string, body?: string): Promise<T | null>;
|
|
30
|
+
otherWithFile<T = unknown>(method: string, path: string, body: FormHelper, files: Array<{
|
|
31
|
+
content: Buffer;
|
|
32
|
+
name: string;
|
|
33
|
+
}>): Promise<T | null>;
|
|
34
|
+
get instanceURL(): string;
|
|
35
|
+
get deletedImageURL(): string;
|
|
36
|
+
constructURL(md5: string, type: "original" | "preview" | "sample", ext?: string): string;
|
|
37
|
+
}
|