diff --git a/src/api/searcher-serper.ts b/src/api/searcher-serper.ts index 142fd40..183ca79 100644 --- a/src/api/searcher-serper.ts +++ b/src/api/searcher-serper.ts @@ -550,10 +550,7 @@ export class SearcherHost extends RPCHost { break; } case 'wechat':{ - r = await this.wechatSearchService.search({ - kw: query.q, - page: query.page, - }); + r = await this.wechatSearchService.search(query); break; } case 'web': diff --git a/src/services/wechat-search.ts b/src/services/wechat-search.ts index a1b05d2..c12cb80 100644 --- a/src/services/wechat-search.ts +++ b/src/services/wechat-search.ts @@ -2,7 +2,8 @@ import { singleton } from 'tsyringe'; import { GlobalLogger } from './logger'; import { AsyncService, DownstreamServiceFailureError, marshalErrorLike } from 'civkit'; import { SecretExposer } from '../shared/services/secrets'; -import { WechatBlogQueryParams, WechatSearchHTTP } from '../shared/3rd-party/wechat-search'; +import { DajalaWechatSearchHttp, WechatSearchHTTP } from '../shared/3rd-party/wechat-search'; +import { SerperSearchQueryParams } from '../shared/3rd-party/serper-search'; @singleton() @@ -10,7 +11,7 @@ export class WechatSearchService extends AsyncService { logger = this.globalLogger.child({ service: this.constructor.name }); - wechatSearchHTTP!: WechatSearchHTTP; + dajalaWechatSearchHttp!: DajalaWechatSearchHttp; constructor( protected globalLogger: GlobalLogger, @@ -23,30 +24,22 @@ export class WechatSearchService extends AsyncService { await this.dependencyReady(); this.emit('ready'); - this.wechatSearchHTTP = new WechatSearchHTTP(this.secretExposer.WECHAT_SEARCH_API_KEY); + this.dajalaWechatSearchHttp = new DajalaWechatSearchHttp(this.secretExposer.WECHAT_SEARCH_API_KEY); } - async search(query: WechatBlogQueryParams) { + async search(query: SerperSearchQueryParams) { this.logger.info('searching for official account blogs', query); + const client: WechatSearchHTTP = this.dajalaWechatSearchHttp; try { // get wechat blog search results and convert format - const r = await this.wechatSearchHTTP.blogSearch(query); + const r = await client.blogSearch(client.transformSerpQuery(query)); if (r.parsed.code > 100 && r.parsed.code < 200) { throw new DownstreamServiceFailureError({ message: `Search(wechat) failed` }); } - return r.parsed.data?.map((page: any) => { - return { - title: page.title, - link: page.url, - content: page.content, - snippet: '', - publishedTime: page.publish_time, - date: page.publish_time_str, - }; - }); + return client.toSerpResponse(r.parsed); } catch (err: any) { this.logger.error(`Wechat search failed: ${err?.message}`, { err: marshalErrorLike(err) }); diff --git a/thinapps-shared b/thinapps-shared index ba27f54..7cf74cc 160000 --- a/thinapps-shared +++ b/thinapps-shared @@ -1 +1 @@ -Subproject commit ba27f5425a0fce93bac00690a867dc97a19dccf3 +Subproject commit 7cf74cc207986ed55d4375c33a8eb9b8a2d30a4e