UNPKG

@book000/pixivts

Version:

pixiv Unofficial API Library for TypeScript

248 lines 8.81 kB
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