@book000/pixivts
Version:
pixiv Unofficial API Library for TypeScript
248 lines • 8.81 kB
TypeScript
import { GetV1IllustDetailRequest } from './types/endpoints/v1/illust/detail';
import { SnakeToCamel } from 'snake-camel-types';
import { GetV1IllustRecommendedRequest } from './types/endpoints/v1/illust/recommended';
import { GetV1SearchIllustRequest } from './types/endpoints/v1/search/illust';
import { PostV2IllustBookmarkAddRequest } from './types/endpoints/v2/illust/bookmark/add';
import { GetV1IllustSeriesRequest } from './types/endpoints/v1/illust/series';
import { GetV2NovelDetailRequest } from './types/endpoints/v2/novel/detail';
import { GetV1NovelRecommendedRequest } from './types/endpoints/v1/novel/recommended';
import { GetV1SearchNovelRequest } from './types/endpoints/v1/search/novel';
import { GetV2NovelSeriesRequest } from './types/endpoints/v2/novel/series';
import { GetV1UserDetailRequest } from './types/endpoints/v1/user/detail';
import { GetV1MangaRecommendedRequest } from './types/endpoints/v1/manga/recommended';
import { BaseSimpleCheck, CheckFunctions } from './checks';
import { PostV1IllustBookmarkDeleteRequest } from './types/endpoints/v1/illust/bookmark/delete';
import { PostV2NovelBookmarkAddRequest } from './types/endpoints/v2/novel/bookmark/add';
import { PostV1NovelBookmarkDeleteRequest } from './types/endpoints/v1/novel/bookmark/delete';
import { GetV1UserBookmarksIllustRequest } from './types/endpoints/v1/user/bookmarks/illust';
import { GetV1UserBookmarksNovelRequest } from './types/endpoints/v1/user/bookmarks/novel';
import { GetV1IllustUgoiraMetadataRequest } from './types/endpoints/v1/illust/ugoira/metadata';
import { GetV2IllustRelatedRequest } from './types/endpoints/v2/illust/related';
import { GetV1NovelRelatedRequest } from './types/endpoints/v1/novel/related';
import { GetV1IllustRankingRequest } from './types/endpoints/v1/illust/ranking';
import { GetV1NovelRankingRequest } from './types/endpoints/v1/novel/ranking';
import { GetWebViewV2NovelRequest } from './types/endpoints/webview/v2/novel';
/**
* 検索対象
*/
export declare enum SearchTarget {
/** タグの部分一致 */
PARTIAL_MATCH_FOR_TAGS = "partial_match_for_tags",
/** タグの完全一致 */
EXACT_MATCH_FOR_TAGS = "exact_match_for_tags",
/** タイトル、またはキャプション(アプリ内では本文) */
TITLE_AND_CAPTION = "title_and_caption",
/** キーワード */
KEYWORD = "keyword"
}
export declare class SearchTargetCheck extends BaseSimpleCheck<SearchTarget> {
checks(): CheckFunctions<SearchTarget>;
}
/**
* ソート
*/
export declare enum SearchSort {
/** 新しい順 */
DATE_DESC = "date_desc",
/** 古い順 */
DATE_ASC = "date_asc",
/** 人気順 */
POPULAR_DESC = "popular_desc"
}
export declare class SearchSortCheck extends BaseSimpleCheck<SearchSort> {
checks(): CheckFunctions<SearchSort>;
}
/**
* 対象期間
*/
export declare enum SearchIllustDuration {
/** 1日以内 */
WITHIN_LAST_DAY = "within_last_day",
/** 1週間以内 */
WITHIN_LAST_WEEK = "within_last_week",
/** 1ヶ月以内 */
WITHIN_LAST_MONTH = "within_last_month"
}
export declare class SearchIllustDurationCheck extends BaseSimpleCheck<SearchIllustDuration> {
checks(): CheckFunctions<SearchIllustDuration>;
}
/**
* OSフィルタ
*/
export declare enum OSFilter {
/** iOS */
FOR_IOS = "for_ios",
/** Android */
FOR_ANDROID = "for_android"
}
/**
* OSフィルタのチェック
*/
export declare class OSFilterCheck extends BaseSimpleCheck<OSFilter> {
checks(): CheckFunctions<OSFilter>;
}
/**
* ブックマーク公開範囲
*/
export declare enum BookmarkRestrict {
/** 公開 */
PUBLIC = "public",
/** 非公開 */
PRIVATE = "private"
}
/**
* ブックマーク公開範囲のチェック
*/
export declare class BookmarkRestrictCheck extends BaseSimpleCheck<BookmarkRestrict> {
checks(): CheckFunctions<BookmarkRestrict>;
}
/**
* ランキングの種類
*/
export declare enum RankingMode {
/** デイリー */
DAY = "day",
/** 男性向け */
DAY_MALE = "day_male",
/** 女性向け */
DAY_FEMALE = "day_female",
/** オリジナル */
WEEK_ORIGINAL = "week_original",
/** ルーキー */
WEEK_ROOKIE = "week_rookie",
/** ウィークリー */
WEEK = "week",
/** マンスリー */
MONTH = "month",
/** AI生成 */
DAY_AI = "day_ai",
/** R18デイリー */
DAY_R18 = "day_r18",
/** R18ウィークリー */
WEEK_R18 = "week_r18",
/** R18男性向け */
DAY_MALE_R18 = "day_male_r18",
/** R18女性向け */
DAY_FEMALE_R18 = "day_female_r18",
/** R-18 AI生成 */
DAY_R18_AI = "day_r18_ai"
}
/**
* ランキングの種類のチェック
*/
export declare class RankingModeCheck extends BaseSimpleCheck<RankingMode> {
checks(): CheckFunctions<RankingMode>;
}
/**
* オブジェクトの一部を必須にし、それ以外はオプショナルにする
*
* @see https://mongolyy.hatenablog.com/entry/2022/03/10/001139
* @see https://qiita.com/yuu_1st/items/71c4fc9cc95a72fa4df9
*/
type SomeRequired<T, K extends keyof T> = Partial<Omit<T, K>> & Required<Pick<T, K>>;
/**
* オブジェクトの特定プロパティを上書きする
*
* @see https://qiita.com/ibaragi/items/2a6412aeaca5703694b1
*/
type Overwrite<T, U extends {
[Key in keyof T]?: unknown;
}> = Omit<T, keyof U> & U;
/**
* イラスト検索オプション
*/
export type SearchIllustOptions = SomeRequired<SnakeToCamel<GetV1SearchIllustRequest>, 'word'>;
/**
* イラストランキング取得オプション
*/
export type IllustRankingOptions = SnakeToCamel<Partial<GetV1IllustRankingRequest>>;
/**
* イラスト詳細取得オプション
*/
export type IllustDetailOptions = SnakeToCamel<GetV1IllustDetailRequest>;
/**
* イラストの関連イラスト取得オプション
*/
export type IllustRelatedOptions = SnakeToCamel<GetV2IllustRelatedRequest>;
/**
* おすすめイラスト取得オプション
*/
export type RecommendedIllustOptions = SnakeToCamel<Partial<GetV1IllustRecommendedRequest>>;
/**
* イラストシリーズ取得オプション
*/
export type IllustSeriesOptions = SomeRequired<SnakeToCamel<GetV1IllustSeriesRequest>, 'illustSeriesId'>;
/**
* イラストブックマーク追加オプション
*/
export type IllustBookmarkAddOptions = SomeRequired<SnakeToCamel<PostV2IllustBookmarkAddRequest>, 'illustId'>;
/**
* イラストブックマーク削除オプション
*/
export type IllustBookmarkDeleteOptions = SnakeToCamel<PostV1IllustBookmarkDeleteRequest>;
/**
* おすすめマンガ取得オプション
*/
export type MangaRecommendedOptions = SnakeToCamel<Partial<GetV1MangaRecommendedRequest>>;
/**
* うごイラ詳細取得オプション
*/
export type UgoiraDetailOptions = SnakeToCamel<GetV1IllustUgoiraMetadataRequest>;
/**
* 小説詳細取得オプション
*/
export type NovelDetailOptions = SnakeToCamel<GetV2NovelDetailRequest>;
/**
* 小説本文取得オプション
*/
export type NovelTextOptions = SnakeToCamel<GetWebViewV2NovelRequest>;
/**
* 小説の関連小説取得オプション
*/
export type NovelRelatedOptions = SnakeToCamel<GetV1NovelRelatedRequest>;
/**
* 小説検索オプション
*/
export type SearchNovelOptions = SomeRequired<SnakeToCamel<GetV1SearchNovelRequest>, 'word'>;
/**
* 小説ランキング取得オプション
*/
export type NovelRankingOptions = SnakeToCamel<Partial<GetV1NovelRankingRequest>>;
/**
* おすすめ小説取得オプション
*/
export type RecommendedNovelOptions = Overwrite<SnakeToCamel<Partial<GetV1NovelRecommendedRequest>>, {
/**
* すでにおすすめした小説ID群 (?)
*
* @default undefined
* @beta
*/
alreadyRecommended?: number[];
}>;
/**
* 小説シリーズ詳細取得オプション
*/
export type NovelSeriesOptions = SomeRequired<SnakeToCamel<GetV2NovelSeriesRequest>, 'seriesId'>;
/**
* 小説ブックマーク追加オプション
*/
export type NovelBookmarkAddOptions = SomeRequired<SnakeToCamel<PostV2NovelBookmarkAddRequest>, 'novelId'>;
/**
* 小説ブックマーク削除オプション
*/
export type NovelBookmarkDeleteOptions = SnakeToCamel<PostV1NovelBookmarkDeleteRequest>;
/**
* ユーザ詳細取得オプション
*/
export type UserDetailOptions = SnakeToCamel<GetV1UserDetailRequest>;
/**
* ユーザイラストブックマーク取得オプション
*/
export type UserBookmarksIllustOptions = SomeRequired<SnakeToCamel<GetV1UserBookmarksIllustRequest>, 'userId'>;
/**
* ユーザ小説ブックマーク取得オプション
*/
export type UserBookmarksNovelOptions = SomeRequired<SnakeToCamel<GetV1UserBookmarksNovelRequest>, 'userId'>;
export {};
//# sourceMappingURL=options.d.ts.map