import { get } from '../utils/request'; import { RequestTaskQueue } from '../lofterPost/fetch-post' export const blogInfoRequestTaskQueue = new RequestTaskQueue( async ( blogNames: string[] ) => { const params = { blogName: blogNames.join(','), withFollow: true } const res: any = await get('//www.lofter.com/spread/common/blogInfo', params) const blogInfoMap = res.data.blogInfos.reduce((infoMap, blogInfo) => { infoMap[blogInfo.blogInfo.blogName] = blogInfo; return infoMap; }, {}); return blogNames.map((blogName) => blogInfoMap[blogName]); } ) export function fetchBlogInfo(blogName: string) { return new Promise((resolve) => { blogInfoRequestTaskQueue.add({ data: blogName, callback: resolve }) }) }