e621 2.1.2 → 2.1.6
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/Features/Artists.md +4 -0
- package/Features/E621SearchInconsistencies.md +51 -0
- package/Features/FuturePlans.md +32 -6
- package/Features/Notes.md +31 -0
- package/Features/Pools.md +3 -0
- package/Features/PostSets.md +2 -0
- package/Features/Posts.md +23 -18
- package/Features/README.md +2 -0
- package/Features/Tags.md +3 -0
- package/Features/UserFeedback.md +2 -0
- package/Features/Users.md +2 -0
- package/Features/WikiPages.md +3 -0
- package/build/package.json +1 -1
- package/build/src/index.d.ts +5 -1
- package/build/src/index.js +9 -2
- package/build/src/modules/Artists.d.ts +22 -2
- package/build/src/modules/Artists.js +56 -3
- package/build/src/modules/Notes.d.ts +88 -0
- package/build/src/modules/Notes.js +189 -0
- package/build/src/modules/Pools.d.ts +8 -0
- package/build/src/modules/Pools.js +11 -1
- package/build/src/modules/Posts.d.ts +29 -1
- package/build/src/modules/Posts.js +50 -1
- package/build/src/modules/Tags.d.ts +9 -1
- package/build/src/modules/Tags.js +14 -2
- package/build/src/modules/UserFeedback.js +3 -1
- package/build/src/modules/WikiPages.d.ts +8 -0
- package/build/src/modules/WikiPages.js +11 -1
- package/build/src/structures/Note.d.ts +32 -0
- package/build/src/structures/Note.js +41 -0
- package/build/src/structures/NoteHistory.d.ts +38 -0
- package/build/src/structures/NoteHistory.js +47 -0
- package/build/src/structures/PostApproval.d.ts +25 -0
- package/build/src/structures/PostApproval.js +33 -0
- package/build/src/structures/PostHistory.js +9 -9
- package/build/src/types/artists.d.ts +7 -0
- package/build/src/types/index.d.ts +1 -0
- package/build/src/types/notes.d.ts +64 -0
- package/build/src/types/pools.d.ts +1 -0
- package/build/src/types/posts.d.ts +34 -19
- package/build/src/types/tags.d.ts +1 -0
- package/build/src/types/wiki_pages.d.ts +1 -0
- package/package.json +1 -1
package/Features/Artists.md
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
## Table Of Contents
|
|
2
2
|
- [Index](README.md)
|
|
3
3
|
- [Future Plans](FuturePlans.md)
|
|
4
|
+
- [E621 Search Inconsistencies](E621SearchInconsistencies.md)
|
|
4
5
|
- **Artists**
|
|
6
|
+
- [Notes](Notes.md)
|
|
5
7
|
- [Pools](Pools.md)
|
|
6
8
|
- [Posts](Posts.md)
|
|
7
9
|
- [Post Sets](PostSets.md)
|
|
@@ -23,7 +25,9 @@
|
|
|
23
25
|
| Ban[^1][^5] | ✖️ | N/A |
|
|
24
26
|
| Unban[^1][^5] | ✖️ | N/A |
|
|
25
27
|
| Revert[^1] | ✔️ | `artists.revert` |
|
|
28
|
+
| Get History[^1] | ✔️ | `artists.getHistory` |
|
|
26
29
|
| Search History[^1] | ✔️ | `artists.searchHistory` |
|
|
30
|
+
| Get DNP List | ✔️ | `artists.getDoNotPost` |
|
|
27
31
|
|
|
28
32
|
[^1]: Requires Authentication
|
|
29
33
|
[^2]: Requires Privileged
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
## Table Of Contents
|
|
2
|
+
- [Index](README.md)
|
|
3
|
+
- [Future Plans](FuturePlans.md)
|
|
4
|
+
- **E621 Search Inconsistencies**
|
|
5
|
+
- [Artists](Artists.md)
|
|
6
|
+
- [Pools](Pools.md)
|
|
7
|
+
- [Posts](Posts.md)
|
|
8
|
+
- [Post Sets](PostSets.md)
|
|
9
|
+
- [Tags](Tags.md)
|
|
10
|
+
- [User Feedback](UserFeedback.md)
|
|
11
|
+
- [Users](Users.md)
|
|
12
|
+
- [Wiki Pages](WikiPages.md)
|
|
13
|
+
|
|
14
|
+
h3. Some of E621's searches are inconsistent with the rest of the site, as such some methods might randomly error if some route doesn't follow standard practices.
|
|
15
|
+
|
|
16
|
+
Below is a table of all of the routes I can currently think of and what they return
|
|
17
|
+
|
|
18
|
+
| | Object (No Results) | Array (No Results) | Object (With Results) | Array (With Results) |
|
|
19
|
+
|:----------------------:|:-------------------:|:------------------:|:---------------------:|:--------------------:|
|
|
20
|
+
| `posts` | ✔️ | | ✔️ | |
|
|
21
|
+
| `post_disapprovals` | ✔️ | | [^1] | [^1] |
|
|
22
|
+
| `post_versions`[^2] | ✖️ | ✖️ | | ✔️ |
|
|
23
|
+
| `post_approvals` | ✔️ | | | ✔️ |
|
|
24
|
+
| `post_flags` | ✔️ | | | ✔️ |
|
|
25
|
+
| `notes` | ✔️ | | | ✔️ |
|
|
26
|
+
| `note_versions` | ✔️ | | | ✔️ |
|
|
27
|
+
| `pools` | | ✔️ | | ✔️ |
|
|
28
|
+
| `pool_versions`[^2] | ✖️ | ✖️ | | ✔️ |
|
|
29
|
+
| `wiki_pages` | | ✔️ | | ✔️ |
|
|
30
|
+
| `wiki_page_versions` | ✔️ | | | ✔️ |
|
|
31
|
+
| `artists` | | ✔️ | | ✔️ |
|
|
32
|
+
| `artist_versions` | ✔️ | | | ✔️ |
|
|
33
|
+
| `tags` | ✔️ | | | ✔️ |
|
|
34
|
+
| `tag_type_versions` | ✔️ | | | ✔️ |
|
|
35
|
+
| `tag_aliases` | ✔️ | | | ✔️ |
|
|
36
|
+
| `tag_implications` | ✔️ | | | ✔️ |
|
|
37
|
+
| `bulk_update_requests` | ✔️ | | | ✔️ |
|
|
38
|
+
| `blips` | ✔️ | | | ✔️ |
|
|
39
|
+
| `takedowns` | ✔️ | | | ✔️ |
|
|
40
|
+
| `users` | | ✔️ | | ✔️ |
|
|
41
|
+
| `user_feedbacks` | ✔️ | | | ✔️ |
|
|
42
|
+
| `forum_topics` | | ✔️ | | ✔️ |
|
|
43
|
+
| `post_sets` | ✔️ | | | ✔️ |
|
|
44
|
+
| `comments`[^3] | ✖️ | ✖️ | ✖️ | ✖️ |
|
|
45
|
+
|
|
46
|
+
[^1]: untested
|
|
47
|
+
[^2]: these error when attempting to search for something that has no results
|
|
48
|
+
[^3]: `/comments.json` seems to return `/posts.json` results , with most search parameters returning errors.
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
I've [submitted an issue](https://github.com/zwagoth/e621ng/issues/359) to E621 to see if they have any plans to do something about this. If you find something erroring when you believe it shouldn't (something like `reading property map of undefined`), let us know via an [issue](https://github.com/DonovanDMC/E621/issues/new).
|
package/Features/FuturePlans.md
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
## Table Of Contents
|
|
2
2
|
- [Index](README.md)
|
|
3
3
|
- **Future Plans**
|
|
4
|
+
- [E621 Search Inconsistencies](E621SearchInconsistencies.md)
|
|
4
5
|
- [Artists](Artists.md)
|
|
5
6
|
- [Pools](Pools.md)
|
|
6
7
|
- [Posts](Posts.md)
|
|
@@ -12,10 +13,35 @@
|
|
|
12
13
|
|
|
13
14
|
<hr>
|
|
14
15
|
|
|
15
|
-
|
|
|
16
|
-
|
|
17
|
-
|
|
|
18
|
-
|
|
|
19
|
-
|
|
|
16
|
+
| Feature | Planned |
|
|
17
|
+
|:-------------------------------------------------------------------:|:-------:|
|
|
18
|
+
| [Post Flags](https://e621.net/post_flags) | ✔️ |
|
|
19
|
+
| [Blips](https://e621.net/blips) | ✔️ |
|
|
20
|
+
| [Takedowns](https://e621.net/takedowns) | ✔️ |
|
|
21
|
+
| [Bulk Update Requests](https://e621.net/bulk_update_requests) | ✔️ |
|
|
22
|
+
| [Tag Implications](https://e621.net/tag_implications) | ✔️ |
|
|
23
|
+
| [Tag Aliases](https://e621.net/tag_aliases) | ✔️ |
|
|
24
|
+
| [Notes](https://e621.net/notes) | ✔️ |
|
|
25
|
+
| [Note History](https://e621.net/note_versions) | ✔️ |
|
|
26
|
+
| [Forum Topics](https://e621.net/forum_topics) | ✔️ |
|
|
27
|
+
| [Comments](https://e621.net/comments) | ✔️ |
|
|
28
|
+
| [Popular Posts](https://e621.net/explore/posts/popular) | ✔️ |
|
|
29
|
+
| [IQDB](https://e621.net/iqdb_queries) | ✔️ |
|
|
30
|
+
| [Upload Whitelists](https://e621.net/upload_whitelists) | ✔️ |
|
|
31
|
+
| [Post Events](https://e621.net/posts/2907536/events)[^3] | ✔️ |
|
|
32
|
+
| [Email Blacklists](https://e621.net/email_blacklists)[^2] | ✔️ |
|
|
33
|
+
| [IP Bans](https://e621.net/ip_bans)[^2] | ✔️ |
|
|
34
|
+
| [Dmails](https://e621.net/dmails)[^1] | ✖️ |
|
|
35
|
+
| [Mod Actions](https://e621.net/mod_actions)[^1] | ✖️ |
|
|
36
|
+
| [Tickets](https://e621.net/tickets)[^1] | ✖️ |
|
|
37
|
+
| [User Bans](https://e621.net/bans)[^1] | ✖️ |
|
|
38
|
+
| [Deleted Posts](https://e621.net/deleted_posts)[^1] | ✖️ |
|
|
39
|
+
| [Post Replacements](https://e621.net/post_replacements)[^1] | ✖️ |
|
|
40
|
+
| [Stats](https://e621.net/stats)[^1] | ✖️ |
|
|
41
|
+
| [Post Report Reasons](https://e621.net/post_report_reasons)[^1][^2] | ✖️ |
|
|
42
|
+
| [Post Appeals](https://e621.net/post_appeals)[^2][^4] | ✖️ |
|
|
20
43
|
|
|
21
|
-
[^1]: E621 does not expose a json api for
|
|
44
|
+
[^1]: E621 does not expose a json api for these, and I will not scrape the html of the page, as this will add serious bloat to the library, and is not something e621 wants us to do.
|
|
45
|
+
[^2]: These require a higher user level than [b]Privileged[/b] (which is what I have on e621), so implementing requires hosting a local instance, and is generally slower to do.
|
|
46
|
+
[^3]: This feature is not documented and is subject to change soon (see [this pull request](https://github.com/zwagoth/e621ng/issues/346))
|
|
47
|
+
[^4]: This feature is unused and is planned to be removed (see [this pull request](https://github.com/zwagoth/e621ng/pull/357))
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
## Table Of Contents
|
|
2
|
+
- [Index](README.md)
|
|
3
|
+
- [Future Plans](FuturePlans.md)
|
|
4
|
+
- [E621 Search Inconsistencies](E621SearchInconsistencies.md)
|
|
5
|
+
- [Artists](Artists.md)
|
|
6
|
+
- **Notes**
|
|
7
|
+
- [Pools](Pools.md)
|
|
8
|
+
- [Posts](Posts.md)
|
|
9
|
+
- [Post Sets](PostSets.md)
|
|
10
|
+
- [Tags](Tags.md)
|
|
11
|
+
- [User Feedback](UserFeedback.md)
|
|
12
|
+
- [Users](Users.md)
|
|
13
|
+
- **Wiki Pages**
|
|
14
|
+
|
|
15
|
+
<hr>
|
|
16
|
+
|
|
17
|
+
| Feature | Implemented | Method |
|
|
18
|
+
|:---------------:|:-----------:|:---------------------:|
|
|
19
|
+
| Get By ID | ✔️ | `notes.get` |
|
|
20
|
+
| Search | ✔️ | `notes.search` |
|
|
21
|
+
| Create[^1] | ✔️ | `notes.create` |
|
|
22
|
+
| Modify[^1] | ✔️ | `notes.modify` |
|
|
23
|
+
| Delete[^1] | ✔️ | `notes.delete` |
|
|
24
|
+
| Get History | ✔️ | `notes.getHistory` |
|
|
25
|
+
| Search History | ✔️ | `notes.searchHistory` |
|
|
26
|
+
|
|
27
|
+
[^1]: Requires Authentication
|
|
28
|
+
[^2]: Requires Privileged
|
|
29
|
+
[^3]: Requires Janitor
|
|
30
|
+
[^4]: Requires Moderator
|
|
31
|
+
[^5]: Requires Admin
|
package/Features/Pools.md
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
## Table Of Contents
|
|
2
2
|
- [Index](README.md)
|
|
3
3
|
- [Future Plans](FuturePlans.md)
|
|
4
|
+
- [E621 Search Inconsistencies](E621SearchInconsistencies.md)
|
|
4
5
|
- [Artists](Artists.md)
|
|
6
|
+
- [Notes](Notes.md)
|
|
5
7
|
- **Pools**
|
|
6
8
|
- [Posts](Posts.md)
|
|
7
9
|
- [Post Sets](PostSets.md)
|
|
@@ -21,6 +23,7 @@
|
|
|
21
23
|
| Modify[^1] | ✔️ | `pools.modify` |
|
|
22
24
|
| Delete[^1][^3] | ✔️ | `pools.delete` |
|
|
23
25
|
| Revert[^1] | ✔️ | `pools.revert` |
|
|
26
|
+
| Get History[^1] | ✔️ | `pools.getHistory` |
|
|
24
27
|
| Search History[^1] | ✔️ | `pools.searchHistory` |
|
|
25
28
|
| Add Post[^1] | ✔️ | `pools.addPost` |
|
|
26
29
|
| Remove Post[^1] | ✔️ | `pools.removePost` |
|
package/Features/PostSets.md
CHANGED
package/Features/Posts.md
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
## Table Of Contents
|
|
2
2
|
- [Index](README.md)
|
|
3
3
|
- [Future Plans](FuturePlans.md)
|
|
4
|
+
- [E621 Search Inconsistencies](E621SearchInconsistencies.md)
|
|
4
5
|
- [Artists](Artists.md)
|
|
6
|
+
- [Notes](Notes.md)
|
|
5
7
|
- [Pools](Pools.md)
|
|
6
8
|
- **Posts**
|
|
7
9
|
- [Post Sets](PostSets.md)
|
|
@@ -12,24 +14,27 @@
|
|
|
12
14
|
|
|
13
15
|
<hr>
|
|
14
16
|
|
|
15
|
-
| Feature | Implemented |
|
|
16
|
-
|
|
17
|
-
| Get By ID | ✔️ |
|
|
18
|
-
| Get By Name | ✔️ |
|
|
19
|
-
| Search | ✔️ |
|
|
20
|
-
| Create[^1] | ✔️ |
|
|
21
|
-
| Modify[^1] | ✔️ |
|
|
22
|
-
| Delete[^1][^3] | ✖️ |
|
|
23
|
-
| Approve[^1][^3] | ✖️ |
|
|
24
|
-
| Unapprove[^1][^3] | ✖️ |
|
|
25
|
-
| Destroy[^1][^5] | ✖️ |
|
|
26
|
-
| Regenerate Thumbnails[^1][^3] | ✖️ |
|
|
27
|
-
| Regenerate Videos[^1][^3] | ✖️ |
|
|
28
|
-
| Revert[^1] | ✔️ |
|
|
29
|
-
|
|
|
30
|
-
|
|
|
31
|
-
|
|
|
32
|
-
|
|
|
17
|
+
| Feature | Implemented | Method |
|
|
18
|
+
|:-----------------------------:|:-----------:|:---------------------------:|
|
|
19
|
+
| Get By ID | ✔️ | `posts.get` |
|
|
20
|
+
| Get By Name | ✔️ | `posts.getByName` |
|
|
21
|
+
| Search | ✔️ | `posts.search` |
|
|
22
|
+
| Create[^1] | ✔️ | `posts.create` |
|
|
23
|
+
| Modify[^1] | ✔️ | `posts.modify` |
|
|
24
|
+
| Delete[^1][^3] | ✖️ | N/A |
|
|
25
|
+
| Approve[^1][^3] | ✖️ | N/A |
|
|
26
|
+
| Unapprove[^1][^3] | ✖️ | N/A |
|
|
27
|
+
| Destroy[^1][^5] | ✖️ | N/A |
|
|
28
|
+
| Regenerate Thumbnails[^1][^3] | ✖️ | N/A |
|
|
29
|
+
| Regenerate Videos[^1][^3] | ✖️ | N/A |
|
|
30
|
+
| Revert[^1] | ✔️ | `posts.revert` |
|
|
31
|
+
| Get History[^1] | ✔️ | `posts.getHistory` |
|
|
32
|
+
| Search History[^1] | ✔️ | `posts.searchHistory` |
|
|
33
|
+
| Vote[^1] | ✔️ | `posts.vote` |
|
|
34
|
+
| Add Favorite[^1] | ✔️ | `users.addFavorite` |
|
|
35
|
+
| Remove Favorite[^1] | ✔️ | `users.removeFavorite` |
|
|
36
|
+
| Get Post Approval | ✔️ | `posts.getPostApproval` |
|
|
37
|
+
| Search Post Approvals | ✔️ | `posts.searchPostApprovals` |
|
|
33
38
|
|
|
34
39
|
[^1]: Requires Authentication
|
|
35
40
|
[^2]: Requires Privileged
|
package/Features/README.md
CHANGED
package/Features/Tags.md
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
## Table Of Contents
|
|
2
2
|
- [Index](README.md)
|
|
3
3
|
- [Future Plans](FuturePlans.md)
|
|
4
|
+
- [E621 Search Inconsistencies](E621SearchInconsistencies.md)
|
|
4
5
|
- [Artists](Artists.md)
|
|
6
|
+
- [Notes](Notes.md)
|
|
5
7
|
- [Pools](Pools.md)
|
|
6
8
|
- [Posts](Posts.md)
|
|
7
9
|
- [Post Sets](PostSets.md)
|
|
@@ -19,6 +21,7 @@
|
|
|
19
21
|
| Search | ✔️ | `tags.search` |
|
|
20
22
|
| Modify[^1] | ✔️ | `tags.modify` |
|
|
21
23
|
| Search History | ✔️ | `tags.searchHistory` |
|
|
24
|
+
| Get History | ✔️ | `tags.getHistory` |
|
|
22
25
|
|
|
23
26
|
[^1]: Requires Authentication
|
|
24
27
|
[^2]: Requires Privileged
|
package/Features/UserFeedback.md
CHANGED
package/Features/Users.md
CHANGED
package/Features/WikiPages.md
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
## Table Of Contents
|
|
2
2
|
- [Index](README.md)
|
|
3
3
|
- [Future Plans](FuturePlans.md)
|
|
4
|
+
- [E621 Search Inconsistencies](E621SearchInconsistencies.md)
|
|
4
5
|
- [Artists](Artists.md)
|
|
6
|
+
- [Notes](Notes.md)
|
|
5
7
|
- [Pools](Pools.md)
|
|
6
8
|
- [Posts](Posts.md)
|
|
7
9
|
- [Post Sets](PostSets.md)
|
|
@@ -22,6 +24,7 @@
|
|
|
22
24
|
| Delete[^1][^3] | ✔️ | `wikiPages.delete` |
|
|
23
25
|
| Revert[^1] | ✔️ | `wikiPages.revert` |
|
|
24
26
|
| Search History | ✔️ | `wikiPages.searchHistory` |
|
|
27
|
+
| Get History | ✔️ | `wikiPages.getHistory` |
|
|
25
28
|
|
|
26
29
|
[^1]: Requires Authentication
|
|
27
30
|
[^2]: Requires Privileged
|
package/build/package.json
CHANGED
package/build/src/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Options, InstanceOptions } from "./types";
|
|
2
2
|
import RequestHandler from "./util/RequestHandler";
|
|
3
3
|
import Artists from "./modules/Artists";
|
|
4
|
+
import Notes from "./modules/Notes";
|
|
4
5
|
import Pools from "./modules/Pools";
|
|
5
6
|
import Posts from "./modules/Posts";
|
|
6
7
|
import PostSets from "./modules/PostSets";
|
|
@@ -10,10 +11,12 @@ import Users from "./modules/Users";
|
|
|
10
11
|
import WikiPages from "./modules/WikiPages";
|
|
11
12
|
import Artist from "./structures/Artist";
|
|
12
13
|
import ArtistHistory from "./structures/ArtistHistory";
|
|
14
|
+
import NoteHistory from "./structures/NoteHistory";
|
|
13
15
|
import AuthenticatedUser from "./structures/AuthenticatedUser";
|
|
14
16
|
import Pool from "./structures/Pool";
|
|
15
17
|
import PoolHistory from "./structures/PoolHistory";
|
|
16
18
|
import Post from "./structures/Post";
|
|
19
|
+
import PostApproval from "./structures/PostApproval";
|
|
17
20
|
import PostHistory from "./structures/PostHistory";
|
|
18
21
|
import PostSet from "./structures/PostSet";
|
|
19
22
|
import Tag from "./structures/Tag";
|
|
@@ -25,6 +28,7 @@ export default class E621 {
|
|
|
25
28
|
POST_LIMIT_PER_REQUEST: number;
|
|
26
29
|
request: RequestHandler;
|
|
27
30
|
artists: Artists;
|
|
31
|
+
notes: Notes;
|
|
28
32
|
pools: Pools;
|
|
29
33
|
posts: Posts;
|
|
30
34
|
postSets: PostSets;
|
|
@@ -38,4 +42,4 @@ export default class E621 {
|
|
|
38
42
|
}
|
|
39
43
|
export * from "./types";
|
|
40
44
|
export { APIError } from "./util/RequestHandler";
|
|
41
|
-
export { Artist, ArtistHistory, AuthenticatedUser, Pool, PoolHistory, Post, PostHistory, PostSet, Tag, TagHistory, User, WikiPage, WikiPageHistory };
|
|
45
|
+
export { Artist, ArtistHistory, Notes, NoteHistory, AuthenticatedUser, Pool, PoolHistory, Post, PostApproval, PostHistory, PostSet, Tag, TagHistory, User, WikiPage, WikiPageHistory };
|
package/build/src/index.js
CHANGED
|
@@ -13,10 +13,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
13
13
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
14
14
|
};
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
-
exports.WikiPageHistory = exports.WikiPage = exports.User = exports.TagHistory = exports.Tag = exports.PostSet = exports.PostHistory = exports.Post = exports.PoolHistory = exports.Pool = exports.AuthenticatedUser = exports.ArtistHistory = exports.Artist = exports.APIError = void 0;
|
|
16
|
+
exports.WikiPageHistory = exports.WikiPage = exports.User = exports.TagHistory = exports.Tag = exports.PostSet = exports.PostHistory = exports.PostApproval = exports.Post = exports.PoolHistory = exports.Pool = exports.AuthenticatedUser = exports.NoteHistory = exports.Notes = exports.ArtistHistory = exports.Artist = exports.APIError = void 0;
|
|
17
17
|
const RequestHandler_1 = __importDefault(require("./util/RequestHandler"));
|
|
18
18
|
// Modules
|
|
19
19
|
const Artists_1 = __importDefault(require("./modules/Artists"));
|
|
20
|
+
const Notes_1 = __importDefault(require("./modules/Notes"));
|
|
21
|
+
exports.Notes = Notes_1.default;
|
|
20
22
|
const Pools_1 = __importDefault(require("./modules/Pools"));
|
|
21
23
|
const Posts_1 = __importDefault(require("./modules/Posts"));
|
|
22
24
|
const PostSets_1 = __importDefault(require("./modules/PostSets"));
|
|
@@ -29,6 +31,8 @@ const Artist_1 = __importDefault(require("./structures/Artist"));
|
|
|
29
31
|
exports.Artist = Artist_1.default;
|
|
30
32
|
const ArtistHistory_1 = __importDefault(require("./structures/ArtistHistory"));
|
|
31
33
|
exports.ArtistHistory = ArtistHistory_1.default;
|
|
34
|
+
const NoteHistory_1 = __importDefault(require("./structures/NoteHistory"));
|
|
35
|
+
exports.NoteHistory = NoteHistory_1.default;
|
|
32
36
|
const AuthenticatedUser_1 = __importDefault(require("./structures/AuthenticatedUser"));
|
|
33
37
|
exports.AuthenticatedUser = AuthenticatedUser_1.default;
|
|
34
38
|
const Pool_1 = __importDefault(require("./structures/Pool"));
|
|
@@ -37,6 +41,8 @@ const PoolHistory_1 = __importDefault(require("./structures/PoolHistory"));
|
|
|
37
41
|
exports.PoolHistory = PoolHistory_1.default;
|
|
38
42
|
const Post_1 = __importDefault(require("./structures/Post"));
|
|
39
43
|
exports.Post = Post_1.default;
|
|
44
|
+
const PostApproval_1 = __importDefault(require("./structures/PostApproval"));
|
|
45
|
+
exports.PostApproval = PostApproval_1.default;
|
|
40
46
|
const PostHistory_1 = __importDefault(require("./structures/PostHistory"));
|
|
41
47
|
exports.PostHistory = PostHistory_1.default;
|
|
42
48
|
const PostSet_1 = __importDefault(require("./structures/PostSet"));
|
|
@@ -58,6 +64,7 @@ class E621 {
|
|
|
58
64
|
POST_LIMIT_PER_REQUEST = 320;
|
|
59
65
|
request = new RequestHandler_1.default(this);
|
|
60
66
|
artists = new Artists_1.default(this);
|
|
67
|
+
notes = new Notes_1.default(this);
|
|
61
68
|
pools = new Pools_1.default(this);
|
|
62
69
|
posts = new Posts_1.default(this);
|
|
63
70
|
postSets = new PostSets_1.default(this);
|
|
@@ -124,4 +131,4 @@ class E621 {
|
|
|
124
131
|
exports.default = E621;
|
|
125
132
|
var RequestHandler_2 = require("./util/RequestHandler");
|
|
126
133
|
Object.defineProperty(exports, "APIError", { enumerable: true, get: function () { return RequestHandler_2.APIError; } });
|
|
127
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
134
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLDJFQUFtRDtBQUNuRCxVQUFVO0FBQ1YsZ0VBQXdDO0FBQ3hDLDREQUFvQztBQThGbkMsZ0JBOUZNLGVBQUssQ0E4Rk47QUE3Rk4sNERBQW9DO0FBQ3BDLDREQUFvQztBQUNwQyxrRUFBMEM7QUFDMUMsMERBQWtDO0FBQ2xDLDBFQUFrRDtBQUNsRCw0REFBb0M7QUFDcEMsb0VBQTRDO0FBQzVDLGFBQWE7QUFDYixpRUFBeUM7QUFtRnhDLGlCQW5GTSxnQkFBTSxDQW1GTjtBQWxGUCwrRUFBdUQ7QUFtRnRELHdCQW5GTSx1QkFBYSxDQW1GTjtBQWpGZCwyRUFBbUQ7QUFtRmxELHNCQW5GTSxxQkFBVyxDQW1GTjtBQWxGWix1RkFBK0Q7QUFtRjlELDRCQW5GTSwyQkFBaUIsQ0FtRk47QUFsRmxCLDZEQUFxQztBQW1GcEMsZUFuRk0sY0FBSSxDQW1GTjtBQWxGTCwyRUFBbUQ7QUFtRmxELHNCQW5GTSxxQkFBVyxDQW1GTjtBQWxGWiw2REFBcUM7QUFtRnBDLGVBbkZNLGNBQUksQ0FtRk47QUFsRkwsNkVBQXFEO0FBbUZwRCx1QkFuRk0sc0JBQVksQ0FtRk47QUFsRmIsMkVBQW1EO0FBbUZsRCxzQkFuRk0scUJBQVcsQ0FtRk47QUFsRlosbUVBQTJDO0FBbUYxQyxrQkFuRk0saUJBQU8sQ0FtRk47QUFsRlIsMkRBQW1DO0FBbUZsQyxjQW5GTSxhQUFHLENBbUZOO0FBbEZKLHlFQUFpRDtBQW1GaEQscUJBbkZNLG9CQUFVLENBbUZOO0FBbEZYLDZEQUFxQztBQW1GcEMsZUFuRk0sY0FBSSxDQW1GTjtBQWxGTCxxRUFBNkM7QUFtRjVDLG1CQW5GTSxrQkFBUSxDQW1GTjtBQWxGVCxtRkFBMkQ7QUFtRjFELDBCQW5GTSx5QkFBZSxDQW1GTjtBQWpGaEIsbUVBQWtDO0FBRWxDLHFEQUFxRDtB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
|
|
@@ -46,7 +46,7 @@ export default class Artists {
|
|
|
46
46
|
* @param {number} [options.linkedUserID] - the id of the user associated with this artist (requires janitor)
|
|
47
47
|
* @param {boolean} [options.locked] - if the artist should be locked (requires janitor)
|
|
48
48
|
* @param {(Array<string> | string)} [options.otherNames] - the other names for this artist
|
|
49
|
-
* @param {string} [options.groupName] - the group name of this artist
|
|
49
|
+
* @param {string} [options.groupName] - the group name of this artist (this is [planned to be removed](https://github.com/zwagoth/e621ng/pull/357))
|
|
50
50
|
* @param {(Array<string> | string)} [options.urls] - the urls associated with this artist
|
|
51
51
|
* @param {string} [options.notes] - notes for this artist
|
|
52
52
|
* @returns {Promise<Artist>}
|
|
@@ -63,7 +63,7 @@ export default class Artists {
|
|
|
63
63
|
* @param {number} [options.linkedUserID] - the id of the user associated with this artist (requires janitor)
|
|
64
64
|
* @param {boolean} [options.locked] - if the artist should be locked (requires janitor)
|
|
65
65
|
* @param {(Array<string> | string)} [options.otherNames] - the other names for this artist
|
|
66
|
-
* @param {string} [options.groupName] - the group name of this artist
|
|
66
|
+
* @param {string} [options.groupName] - the group name of this artist (this is [planned to be removed](https://github.com/zwagoth/e621ng/pull/357))
|
|
67
67
|
* @param {(Array<string> | string)} [options.urls] - the urls associated with this artist
|
|
68
68
|
* @param {string} [options.notes] - notes for this artist
|
|
69
69
|
* @returns {Promise<Artist>}
|
|
@@ -89,12 +89,20 @@ export default class Artists {
|
|
|
89
89
|
* @param {number} versionID - the version id to revert to (see history)
|
|
90
90
|
*/
|
|
91
91
|
revert(id: number, versionID: number): Promise<null>;
|
|
92
|
+
/**
|
|
93
|
+
* Get a specific artist history
|
|
94
|
+
*
|
|
95
|
+
* @param {number} id - the id of the history to get
|
|
96
|
+
* @returns {Promise<ArtistHistory | null>}
|
|
97
|
+
*/
|
|
98
|
+
getHistory(id: number): Promise<ArtistHistory | null>;
|
|
92
99
|
/**
|
|
93
100
|
* Search the artist history
|
|
94
101
|
*
|
|
95
102
|
* * Requires Authentication
|
|
96
103
|
*
|
|
97
104
|
* @param {object} [options]
|
|
105
|
+
* @param {number} [options.id] - get a specific artist history entry
|
|
98
106
|
* @param {number} [options.artistID] - narrow the results by artist id
|
|
99
107
|
* @param {string} [options.artistName] - narrow the results by artist name
|
|
100
108
|
* @param {number} [options.updaterID] - narrow the results by updater id
|
|
@@ -105,4 +113,16 @@ export default class Artists {
|
|
|
105
113
|
* @returns {Promise<Array<ArtistHistory>>}
|
|
106
114
|
*/
|
|
107
115
|
searchHistory(options?: SearchArtistHistoryOptions): Promise<ArtistHistory[]>;
|
|
116
|
+
/**
|
|
117
|
+
* Get the list of do not post & conditional do not post artists.
|
|
118
|
+
*
|
|
119
|
+
* This assumes whatever instance you're running against has the same structure as e621!
|
|
120
|
+
*
|
|
121
|
+
* @param {number} [id=85] - the id of the dnp wiki page (85 on e621)
|
|
122
|
+
* @returns {Promise<DoNotPostList>}
|
|
123
|
+
*/
|
|
124
|
+
getDoNotPost(id?: number): Promise<{
|
|
125
|
+
dnp: string[];
|
|
126
|
+
conditionalDNP: string[];
|
|
127
|
+
}>;
|
|
108
128
|
}
|
|
@@ -102,7 +102,7 @@ class Artists {
|
|
|
102
102
|
* @param {number} [options.linkedUserID] - the id of the user associated with this artist (requires janitor)
|
|
103
103
|
* @param {boolean} [options.locked] - if the artist should be locked (requires janitor)
|
|
104
104
|
* @param {(Array<string> | string)} [options.otherNames] - the other names for this artist
|
|
105
|
-
* @param {string} [options.groupName] - the group name of this artist
|
|
105
|
+
* @param {string} [options.groupName] - the group name of this artist (this is [planned to be removed](https://github.com/zwagoth/e621ng/pull/357))
|
|
106
106
|
* @param {(Array<string> | string)} [options.urls] - the urls associated with this artist
|
|
107
107
|
* @param {string} [options.notes] - notes for this artist
|
|
108
108
|
* @returns {Promise<Artist>}
|
|
@@ -143,7 +143,7 @@ class Artists {
|
|
|
143
143
|
* @param {number} [options.linkedUserID] - the id of the user associated with this artist (requires janitor)
|
|
144
144
|
* @param {boolean} [options.locked] - if the artist should be locked (requires janitor)
|
|
145
145
|
* @param {(Array<string> | string)} [options.otherNames] - the other names for this artist
|
|
146
|
-
* @param {string} [options.groupName] - the group name of this artist
|
|
146
|
+
* @param {string} [options.groupName] - the group name of this artist (this is [planned to be removed](https://github.com/zwagoth/e621ng/pull/357))
|
|
147
147
|
* @param {(Array<string> | string)} [options.urls] - the urls associated with this artist
|
|
148
148
|
* @param {string} [options.notes] - notes for this artist
|
|
149
149
|
* @returns {Promise<Artist>}
|
|
@@ -202,12 +202,20 @@ class Artists {
|
|
|
202
202
|
.add("version_id", versionID);
|
|
203
203
|
return this.main.request.put(`/artists/${id}/revert.json`, qs.build());
|
|
204
204
|
}
|
|
205
|
+
/**
|
|
206
|
+
* Get a specific artist history
|
|
207
|
+
*
|
|
208
|
+
* @param {number} id - the id of the history to get
|
|
209
|
+
* @returns {Promise<ArtistHistory | null>}
|
|
210
|
+
*/
|
|
211
|
+
async getHistory(id) { return this.searchHistory({ id }).then(r => r.length === 0 ? null : r[0]); }
|
|
205
212
|
/**
|
|
206
213
|
* Search the artist history
|
|
207
214
|
*
|
|
208
215
|
* * Requires Authentication
|
|
209
216
|
*
|
|
210
217
|
* @param {object} [options]
|
|
218
|
+
* @param {number} [options.id] - get a specific artist history entry
|
|
211
219
|
* @param {number} [options.artistID] - narrow the results by artist id
|
|
212
220
|
* @param {string} [options.artistName] - narrow the results by artist name
|
|
213
221
|
* @param {number} [options.updaterID] - narrow the results by updater id
|
|
@@ -220,6 +228,8 @@ class Artists {
|
|
|
220
228
|
async searchHistory(options) {
|
|
221
229
|
options = options ?? {};
|
|
222
230
|
const qs = new FormHelper_1.default();
|
|
231
|
+
if (typeof options.id === "number")
|
|
232
|
+
qs.add("search[id]", options.id);
|
|
223
233
|
if (typeof options.artistID === "number")
|
|
224
234
|
qs.add("search[artist_id]", options.artistID);
|
|
225
235
|
if (typeof options.artistName === "number")
|
|
@@ -237,6 +247,49 @@ class Artists {
|
|
|
237
247
|
return [];
|
|
238
248
|
return res.map(info => new ArtistHistory_1.default(this.main, info));
|
|
239
249
|
}
|
|
250
|
+
/**
|
|
251
|
+
* Get the list of do not post & conditional do not post artists.
|
|
252
|
+
*
|
|
253
|
+
* This assumes whatever instance you're running against has the same structure as e621!
|
|
254
|
+
*
|
|
255
|
+
* @param {number} [id=85] - the id of the dnp wiki page (85 on e621)
|
|
256
|
+
* @returns {Promise<DoNotPostList>}
|
|
257
|
+
*/
|
|
258
|
+
async getDoNotPost(id = 85) {
|
|
259
|
+
const res = await this.main.wikiPages.get.call(this.main.wikiPages, id);
|
|
260
|
+
if (res === null)
|
|
261
|
+
throw new Error("failed to get dnp wiki page");
|
|
262
|
+
const body = res.body.split("\n");
|
|
263
|
+
const dnpStart = body.findIndex(line => line.includes("[#number]#"));
|
|
264
|
+
const dnpEnd = body.findIndex(line => line.startsWith("h4") && line.includes("Conditional Do Not Post"));
|
|
265
|
+
const condStart = dnpEnd;
|
|
266
|
+
const condEnd = body.findIndex(line => line.includes("DNP List, Do-Not-Post List"));
|
|
267
|
+
const dnp = [], cond = [];
|
|
268
|
+
for (let i = dnpStart; i < dnpEnd; i++) {
|
|
269
|
+
const line = body[i];
|
|
270
|
+
if (!line || !line.startsWith("*"))
|
|
271
|
+
continue;
|
|
272
|
+
const names = line.slice(2).split("-")[0];
|
|
273
|
+
if (names.includes("/"))
|
|
274
|
+
dnp.push(...names.split("/").map(n => n.split(" on ")[0].trim()));
|
|
275
|
+
else
|
|
276
|
+
dnp.push(names.split(" on ")[0].trim());
|
|
277
|
+
}
|
|
278
|
+
for (let i = condStart; i < condEnd; i++) {
|
|
279
|
+
const line = body[i];
|
|
280
|
+
if (!line || !line.startsWith("*"))
|
|
281
|
+
continue;
|
|
282
|
+
const names = line.slice(2).split("-")[0].replace(/\[\/?b\]/g, "");
|
|
283
|
+
if (names.includes("/"))
|
|
284
|
+
cond.push(...names.split("/").map(n => n.split(" on ")[0].trim()));
|
|
285
|
+
else
|
|
286
|
+
cond.push(names.split(" on ")[0].trim());
|
|
287
|
+
}
|
|
288
|
+
return {
|
|
289
|
+
dnp: Array.from(new Set(dnp)),
|
|
290
|
+
conditionalDNP: Array.from(new Set(cond))
|
|
291
|
+
};
|
|
292
|
+
}
|
|
240
293
|
}
|
|
241
294
|
exports.default = Artists;
|
|
242
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXJ0aXN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2R1bGVzL0FydGlzdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSxrRUFBMEM7QUFVMUMsb0VBQTRDO0FBQzVDLDJEQUFrRDtBQUNsRCxnRkFBd0Q7QUFFeEQsTUFBcUIsT0FBTztJQUNWLElBQUksQ0FBZ0I7SUFDcEIsSUFBSSxDQUFPO0lBQzVCLFlBQVksSUFBVTtRQUNyQixNQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFO1lBQzdCLElBQUksRUFBRTtnQkFDTCxHQUFHO29CQUNGLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7Z0JBQ25MLENBQUM7Z0JBQ0QsWUFBWSxFQUFFLEtBQUs7Z0JBQ25CLFVBQVUsRUFBRSxLQUFLO2FBQ2pCO1lBQ0QsSUFBSSxFQUFFO2dCQUNMLEtBQUssRUFBRSxJQUFJO2dCQUNYLFlBQVksRUFBRSxLQUFLO2dCQUNuQixVQUFVLEVBQUUsS0FBSztnQkFDakIsUUFBUSxFQUFFLEtBQUs7YUFDZjtTQUNELENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBVTtRQUNuQixNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBbUIsWUFBWSxFQUFFLE9B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
|
|
295
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXJ0aXN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2R1bGVzL0FydGlzdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSxrRUFBMEM7QUFXMUMsb0VBQTRDO0FBQzVDLDJEQUFrRDtBQUNsRCxnRkFBd0Q7QUFFeEQsTUFBcUIsT0FBTztJQUNWLElBQUksQ0FBZ0I7SUFDcEIsSUFBSSxDQUFPO0lBQzVCLFlBQVksSUFBVTtRQUNyQixNQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFO1lBQzdCLElBQUksRUFBRTtnQkFDTCxHQUFHO29CQUNGLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7Z0JBQ25MLENBQUM7Z0JBQ0QsWUFBWSxFQUFFLEtBQUs7Z0JBQ25CLFVBQVUsRUFBRSxLQUFLO2FBQ2pCO1lBQ0QsSUFBSSxFQUFFO2dCQUNMLEtBQUssRUFBRSxJQUFJO2dCQUNYLFlBQVksRUFBRSxLQUFLO2dCQUNuQixVQUFVLEVBQUUsS0FBSztnQkFDakIsUUFBUSxFQUFFLEtBQUs7YUFDZjtTQUNELENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBVTtRQUNuQixNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBbUIsWUFBWSxFQUFFLE9B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
|