e621 2.1.1 → 2.1.5

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.
Files changed (40) hide show
  1. package/Features/Artists.md +3 -0
  2. package/Features/E621SearchInconsistencies.md +51 -0
  3. package/Features/FuturePlans.md +32 -6
  4. package/Features/Notes.md +30 -0
  5. package/Features/Pools.md +2 -0
  6. package/Features/PostSets.md +2 -0
  7. package/Features/Posts.md +21 -18
  8. package/Features/README.md +2 -0
  9. package/Features/Tags.md +2 -0
  10. package/Features/UserFeedback.md +2 -0
  11. package/Features/Users.md +2 -0
  12. package/Features/WikiPages.md +2 -0
  13. package/build/package.json +5 -1
  14. package/build/src/index.d.ts +5 -1
  15. package/build/src/index.js +9 -2
  16. package/build/src/modules/Artists.d.ts +14 -2
  17. package/build/src/modules/Artists.js +46 -3
  18. package/build/src/modules/Notes.d.ts +80 -0
  19. package/build/src/modules/Notes.js +179 -0
  20. package/build/src/modules/Posts.d.ts +13 -1
  21. package/build/src/modules/Posts.js +30 -1
  22. package/build/src/modules/Tags.d.ts +1 -1
  23. package/build/src/modules/Tags.js +4 -2
  24. package/build/src/modules/UserFeedback.js +3 -1
  25. package/build/src/structures/Note.d.ts +32 -0
  26. package/build/src/structures/Note.js +41 -0
  27. package/build/src/structures/NoteHistory.d.ts +38 -0
  28. package/build/src/structures/NoteHistory.js +47 -0
  29. package/build/src/structures/PostApproval.d.ts +25 -0
  30. package/build/src/structures/PostApproval.js +33 -0
  31. package/build/src/types/artists.d.ts +6 -0
  32. package/build/src/types/index.d.ts +1 -0
  33. package/build/src/types/notes.d.ts +63 -0
  34. package/build/src/types/posts.d.ts +13 -0
  35. package/build/src/util/Debug.d.ts +1 -0
  36. package/build/src/util/Debug.js +11 -0
  37. package/build/src/util/RequestHandler.js +15 -2
  38. package/build/src/util/Timer.d.ts +6 -0
  39. package/build/src/util/Timer.js +71 -0
  40. package/package.json +5 -1
@@ -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)
@@ -24,6 +26,7 @@
24
26
  | Unban[^1][^5] | ✖️ | N/A |
25
27
  | Revert[^1] | ✔️ | `artists.revert` |
26
28
  | Search History[^1] | ✔️ | `artists.searchHistory` |
29
+ | Get DNP List | ✔️ | `artists.getDoNotPost` |
27
30
 
28
31
  [^1]: Requires Authentication
29
32
  [^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).
@@ -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
- | Feature | Planned |
16
- |:--------------------------:|:-------:|
17
- | Post Flags | ✔️ |
18
- | General Moderative Actions | ✔️ |
19
- | Dmails[^1] | ✖️ |
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 dmails, and I currently do not plan on scraping the html for them, as this will add tremendous bloat to the library.
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,30 @@
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
+ | Search History | ✔️ | `notes.searchHistory` |
25
+
26
+ [^1]: Requires Authentication
27
+ [^2]: Requires Privileged
28
+ [^3]: Requires Janitor
29
+ [^4]: Requires Moderator
30
+ [^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)
@@ -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**
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,25 @@
12
14
 
13
15
  <hr>
14
16
 
15
- | Feature | Implemented | Method |
16
- |:-----------------------------:|:-----------:|:----------------------:|
17
- | Get By ID | ✔️ | `posts.get` |
18
- | Get By Name | ✔️ | `posts.getByName` |
19
- | Search | ✔️ | `posts.search` |
20
- | Create[^1] | ✔️ | `posts.create` |
21
- | Modify[^1] | ✔️ | `posts.modify` |
22
- | Delete[^1][^3] | ✖️ | N/A |
23
- | Approve[^1][^3] | ✖️ | N/A |
24
- | Unapprove[^1][^3] | ✖️ | N/A |
25
- | Destroy[^1][^5] | ✖️ | N/A |
26
- | Regenerate Thumbnails[^1][^3] | ✖️ | N/A |
27
- | Regenerate Videos[^1][^3] | ✖️ | N/A |
28
- | Revert[^1] | ✔️ | `posts.revert` |
29
- | Search History[^1] | ✔️ | `posts.searchHistory` |
30
- | Vote[^1] | ✔️ | `posts.vote` |
31
- | Add Favorite[^1] | ✔️ | `users.addFavorite` |
32
- | Remove Favorite[^1] | ✔️ | `users.removeFavorite` |
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
+ | Search History[^1] | ✔️ | `posts.searchHistory` |
32
+ | Vote[^1] | ✔️ | `posts.vote` |
33
+ | Add Favorite[^1] | ✔️ | `users.addFavorite` |
34
+ | Remove Favorite[^1] | ✔️ | `users.removeFavorite` |
35
+ | Search Post Approvals | ✔️ | `posts.searchPostApprovals` |
33
36
 
34
37
  [^1]: Requires Authentication
35
38
  [^2]: Requires Privileged
@@ -1,7 +1,9 @@
1
1
  ## Table Of Contents
2
2
  - **Index**
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)
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)
@@ -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)
package/Features/Users.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)
@@ -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)
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "e621",
3
- "version": "2.1.1",
3
+ "version": "2.1.5",
4
4
  "description": "A module for interfacing with e621.",
5
5
  "main": "build/src/index.js",
6
6
  "scripts": {
@@ -29,6 +29,7 @@
29
29
  "homepage": "https://github.com/DonovanDMC/E621#readme",
30
30
  "devDependencies": {
31
31
  "@types/chai": "^4.3.0",
32
+ "@types/debug": "^4.1.7",
32
33
  "@types/mocha": "^9.0.0",
33
34
  "@uwu-codes/eslint-config": "^1.0.31",
34
35
  "@uwu-codes/tsconfig": "^1.0.1",
@@ -36,5 +37,8 @@
36
37
  "mocha": "^9.1.3",
37
38
  "ts-node": "^10.4.0",
38
39
  "typescript": "^4.5.4"
40
+ },
41
+ "dependencies": {
42
+ "debug": "^4.3.3"
39
43
  }
40
44
  }
@@ -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 };
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLDJFQUFtRDtBQUNuRCxVQUFVO0FBQ1YsZ0VBQXdDO0FBQ3hDLDREQUFvQztBQUNwQyw0REFBb0M7QUFDcEMsa0VBQTBDO0FBQzFDLDBEQUFrQztBQUNsQywwRUFBa0Q7QUFDbEQsNERBQW9DO0FBQ3BDLG9FQUE0QztBQUM1QyxhQUFhO0FBQ2IsaUVBQXlDO0FBK0V4QyxpQkEvRU0sZ0JBQU0sQ0ErRU47QUE5RVAsK0VBQXVEO0FBK0V0RCx3QkEvRU0sdUJBQWEsQ0ErRU47QUE5RWQsdUZBQStEO0FBK0U5RCw0QkEvRU0sMkJBQWlCLENBK0VOO0FBOUVsQiw2REFBcUM7QUErRXBDLGVBL0VNLGNBQUksQ0ErRU47QUE5RUwsMkVBQW1EO0FBK0VsRCxzQkEvRU0scUJBQVcsQ0ErRU47QUE5RVosNkRBQXFDO0FBK0VwQyxlQS9FTSxjQUFJLENBK0VOO0FBOUVMLDJFQUFtRDtBQStFbEQsc0JBL0VNLHFCQUFXLENBK0VOO0FBOUVaLG1FQUEyQztBQStFMUMsa0JBL0VNLGlCQUFPLENBK0VOO0FBOUVSLDJEQUFtQztBQStFbEMsY0EvRU0sYUFBRyxDQStFTjtBQTlFSix5RUFBaUQ7QUErRWhELHFCQS9FTSxvQkFBVSxDQStFTjtBQTlFWCw2REFBcUM7QUErRXBDLGVBL0VNLGNBQUksQ0ErRU47QUE5RUwscUVBQTZDO0FBK0U1QyxtQkEvRU0sa0JBQVEsQ0ErRU47QUE5RVQsbUZBQTJEO0FBK0UxRCwwQkEvRU0seUJBQWUsQ0ErRU47QUE3RWhCLG1FQUFrQztBQUVsQyxxREFBcUQ7QUFDckQsaUVBQWlFO0FBQ2pFLE1BQXFCLElBQUk7SUFDeEIsc0JBQXNCLEdBQUcsR0FBRyxDQUFDO0lBQzdCLE9BQU8sR0FBRyxJQUFJLHdCQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkMsT0FBTyxH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
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>}
@@ -105,4 +105,16 @@ export default class Artists {
105
105
  * @returns {Promise<Array<ArtistHistory>>}
106
106
  */
107
107
  searchHistory(options?: SearchArtistHistoryOptions): Promise<ArtistHistory[]>;
108
+ /**
109
+ * Get the list of do not post & conditional do not post artists.
110
+ *
111
+ * This assumes whatever instance you're running against has the same structure as e621!
112
+ *
113
+ * @param {number} [id=85] - the id of the dnp wiki page (85 on e621)
114
+ * @returns {Promise<DoNotPostList>}
115
+ */
116
+ getDoNotPost(id?: number): Promise<{
117
+ dnp: string[];
118
+ conditionalDNP: string[];
119
+ }>;
108
120
  }
@@ -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>}
@@ -237,6 +237,49 @@ class Artists {
237
237
  return [];
238
238
  return res.map(info => new ArtistHistory_1.default(this.main, info));
239
239
  }
240
+ /**
241
+ * Get the list of do not post & conditional do not post artists.
242
+ *
243
+ * This assumes whatever instance you're running against has the same structure as e621!
244
+ *
245
+ * @param {number} [id=85] - the id of the dnp wiki page (85 on e621)
246
+ * @returns {Promise<DoNotPostList>}
247
+ */
248
+ async getDoNotPost(id = 85) {
249
+ const res = await this.main.wikiPages.get.call(this.main.wikiPages, id);
250
+ if (res === null)
251
+ throw new Error("failed to get dnp wiki page");
252
+ const body = res.body.split("\n");
253
+ const dnpStart = body.findIndex(line => line.includes("[#number]#"));
254
+ const dnpEnd = body.findIndex(line => line.startsWith("h4") && line.includes("Conditional Do Not Post"));
255
+ const condStart = dnpEnd;
256
+ const condEnd = body.findIndex(line => line.includes("DNP List, Do-Not-Post List"));
257
+ const dnp = [], cond = [];
258
+ for (let i = dnpStart; i < dnpEnd; i++) {
259
+ const line = body[i];
260
+ if (!line || !line.startsWith("*"))
261
+ continue;
262
+ const names = line.slice(2).split("-")[0];
263
+ if (names.includes("/"))
264
+ dnp.push(...names.split("/").map(n => n.split(" on ")[0].trim()));
265
+ else
266
+ dnp.push(names.split(" on ")[0].trim());
267
+ }
268
+ for (let i = condStart; i < condEnd; i++) {
269
+ const line = body[i];
270
+ if (!line || !line.startsWith("*"))
271
+ continue;
272
+ const names = line.slice(2).split("-")[0].replace(/\[\/?b\]/g, "");
273
+ if (names.includes("/"))
274
+ cond.push(...names.split("/").map(n => n.split(" on ")[0].trim()));
275
+ else
276
+ cond.push(names.split(" on ")[0].trim());
277
+ }
278
+ return {
279
+ dnp: Array.from(new Set(dnp)),
280
+ conditionalDNP: Array.from(new Set(cond))
281
+ };
282
+ }
240
283
  }
241
284
  exports.default = Artists;
242
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXJ0aXN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2R1bGVzL0FydGlzdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSxrRUFBMEM7QUFVMUMsb0VBQTRDO0FBQzVDLDJEQUFrRDtBQUNsRCxnRkFBd0Q7QUFFeEQsTUFBcUIsT0FBTztJQUNWLElBQUksQ0FBZ0I7SUFDcEIsSUFBSSxDQUFPO0lBQzVCLFlBQVksSUFBVTtRQUNyQixNQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFO1lBQzdCLElBQUksRUFBRTtnQkFDTCxHQUFHO29CQUNGLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7Z0JBQ25MLENBQUM7Z0JBQ0QsWUFBWSxFQUFFLEtBQUs7Z0JBQ25CLFVBQVUsRUFBRSxLQUFLO2FBQ2pCO1lBQ0QsSUFBSSxFQUFFO2dCQUNMLEtBQUssRUFBRSxJQUFJO2dCQUNYLFlBQVksRUFBRSxLQUFLO2dCQUNuQixVQUFVLEVBQUUsS0FBSztnQkFDakIsUUFBUSxFQUFFLEtBQUs7YUFDZjtTQUNELENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBVTtRQUNuQixNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBbUIsWUFBWSxFQUFFLE9B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
285
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXJ0aXN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2R1bGVzL0FydGlzdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSxrRUFBMEM7QUFXMUMsb0VBQTRDO0FBQzVDLDJEQUFrRDtBQUNsRCxnRkFBd0Q7QUFFeEQsTUFBcUIsT0FBTztJQUNWLElBQUksQ0FBZ0I7SUFDcEIsSUFBSSxDQUFPO0lBQzVCLFlBQVksSUFBVTtRQUNyQixNQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFO1lBQzdCLElBQUksRUFBRTtnQkFDTCxHQUFHO29CQUNGLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7Z0JBQ25MLENBQUM7Z0JBQ0QsWUFBWSxFQUFFLEtBQUs7Z0JBQ25CLFVBQVUsRUFBRSxLQUFLO2FBQ2pCO1lBQ0QsSUFBSSxFQUFFO2dCQUNMLEtBQUssRUFBRSxJQUFJO2dCQUNYLFlBQVksRUFBRSxLQUFLO2dCQUNuQixVQUFVLEVBQUUsS0FBSztnQkFDakIsUUFBUSxFQUFFLEtBQUs7YUFDZjtTQUNELENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBVTtRQUNuQixNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBbUIsWUFBWSxFQUFFLE9B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