Skip to content

Commit

Permalink
add character search support (#164)
Browse files Browse the repository at this point in the history
  • Loading branch information
Lredigonda authored Oct 11, 2024
1 parent 6f3017a commit bef5160
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 8 deletions.
34 changes: 27 additions & 7 deletions apps/novel-builder/src/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import {
AssetDisplayPrefix,
uploadAsset,
} from '@mikugg/bot-utils';
import { BackgroundResult, listSearch, SearchType, SongResult } from './libs/listSearch';
import { BackgroundResult, CharacterResult, listSearch, SearchType, SongResult } from './libs/listSearch';

export const MAX_FILE_SIZE = 5 * 1024 * 1024;
const VITE_ASSETS_UPLOAD_URL = import.meta.env.VITE_ASSETS_UPLOAD_URL || 'http://localhost:8585/asset-upload';
Expand Down Expand Up @@ -190,12 +190,22 @@ const configs: Map<'development' | 'staging' | 'production', BuilderConfig> = ne
previewIframe: 'https://alpha.miku.gg',
search: {
characters: async (query) => {
await new Promise((resolve) => setTimeout(resolve, 1000));
const result = await listSearch<CharacterResult>('https://apidev.miku.gg', SearchType.CHARACTER, {
search: query.text,
take: query.take,
skip: query.skip,
});
const publicCharacters = result
.filter((character) => character.visibility === 'PUBLIC')
.map((character) => JSON.parse(character.card) as NovelV3.NovelCharacter);
const privateCharacters = result
.filter((character) => character.visibility === 'PRIVATE')
.map((character) => JSON.parse(character.card) as NovelV3.NovelCharacter);
return {
success: true,
result: {
public: [],
private: [],
public: publicCharacters,
private: privateCharacters,
},
};
},
Expand Down Expand Up @@ -286,12 +296,22 @@ const configs: Map<'development' | 'staging' | 'production', BuilderConfig> = ne
previewIframe: 'https://interactor.miku.gg',
search: {
characters: async (query) => {
await new Promise((resolve) => setTimeout(resolve, 1000));
const result = await listSearch<CharacterResult>('https://api.miku.gg', SearchType.CHARACTER, {
search: query.text,
take: query.take,
skip: query.skip,
});
const publicCharacters = result
.filter((character) => character.visibility === 'PUBLIC')
.map((character) => JSON.parse(character.card) as NovelV3.NovelCharacter);
const privateCharacters = result
.filter((character) => character.visibility === 'PRIVATE')
.map((character) => JSON.parse(character.card) as NovelV3.NovelCharacter);
return {
success: true,
result: {
public: [],
private: [],
public: publicCharacters,
private: privateCharacters,
},
};
},
Expand Down
6 changes: 5 additions & 1 deletion apps/novel-builder/src/libs/listSearch.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import axios from 'axios';

export type Language = 'EN' | 'DE' | 'ES' | 'FR' | 'IT' | 'JP' | 'KO' | 'PL' | 'PT' | 'RU' | 'ZH' | 'CN';
export interface BackgroundResult {
id: string;
description: string;
Expand All @@ -22,15 +23,18 @@ export interface CharacterResult {
description: string;
card: string;
profilePic: string;
language: string;
language: Language;
nsfw: boolean;
completelyNSFW?: boolean;
author: {
id: string;
username: string;
profilePic: string | null;
};
createdAt: Date;
updatedAt: Date;
visibility: 'PUBLIC' | 'PRIVATE' | 'UNLISTED' | 'REVIEW';
unlistedMessage?: string;
tags: string[];
}

Expand Down

0 comments on commit bef5160

Please sign in to comment.