diff options
author | Volpeon <git@volpeon.ink> | 2021-10-18 13:57:48 +0200 |
---|---|---|
committer | Volpeon <git@volpeon.ink> | 2021-10-18 13:57:48 +0200 |
commit | 2f973f910ba236542e99765c3544064d2c0d388c (patch) | |
tree | 86a4a0aa554a3a596e97cbf10ec3aad0f83a01cf /src/api/e621/index.ts | |
parent | Support posting a specific picture (diff) | |
download | feralbot-2f973f910ba236542e99765c3544064d2c0d388c.tar.gz feralbot-2f973f910ba236542e99765c3544064d2c0d388c.tar.bz2 feralbot-2f973f910ba236542e99765c3544064d2c0d388c.zip |
Better interfaces and function responsibilities
Diffstat (limited to 'src/api/e621/index.ts')
-rw-r--r-- | src/api/e621/index.ts | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/api/e621/index.ts b/src/api/e621/index.ts index 411edae..2fc0d2e 100644 --- a/src/api/e621/index.ts +++ b/src/api/e621/index.ts | |||
@@ -1,6 +1,11 @@ | |||
1 | import got from "got"; | 1 | import got from "got"; |
2 | import config from "../../config"; | 2 | import config from "../../config"; |
3 | 3 | ||
4 | export interface GetPostQuery { | ||
5 | tags: readonly string[]; | ||
6 | maxPage: number; | ||
7 | } | ||
8 | |||
4 | export interface Post { | 9 | export interface Post { |
5 | id: number; | 10 | id: number; |
6 | file: { | 11 | file: { |
@@ -26,7 +31,7 @@ export const client = got.extend({ | |||
26 | }, | 31 | }, |
27 | }); | 32 | }); |
28 | 33 | ||
29 | export async function getPost(id: number) { | 34 | export async function getPostById(id: number) { |
30 | const response = await client | 35 | const response = await client |
31 | .get("https://e926.net/posts.json", { | 36 | .get("https://e926.net/posts.json", { |
32 | searchParams: { | 37 | searchParams: { |
@@ -42,9 +47,7 @@ export async function getPost(id: number) { | |||
42 | return response.posts[0]; | 47 | return response.posts[0]; |
43 | } | 48 | } |
44 | 49 | ||
45 | export async function getRandomPost() { | 50 | export async function getRandomPost(query: GetPostQuery) { |
46 | const queryIndex = Math.floor(Math.random() * config.e621.queries.length); | ||
47 | const query = config.e621.queries[queryIndex]; | ||
48 | const page = Math.floor(Math.random() * (query.maxPage - 1)) + 1; | 51 | const page = Math.floor(Math.random() * (query.maxPage - 1)) + 1; |
49 | 52 | ||
50 | const response = await client | 53 | const response = await client |
@@ -64,5 +67,5 @@ export async function getRandomPost() { | |||
64 | const postIndex = Math.floor(Math.random() * response.posts.length); | 67 | const postIndex = Math.floor(Math.random() * response.posts.length); |
65 | const post = response.posts[postIndex]; | 68 | const post = response.posts[postIndex]; |
66 | 69 | ||
67 | return { queryIndex, post }; | 70 | return post; |
68 | } | 71 | } |