import { get } from '../utils/request'; import { PostDetail, CollectionDetail,PushFolderDetail} from './type'; import { RequestTaskQueue } from './fetch-post'; const pushFoldersDetailRequestTaskQueue = new RequestTaskQueue< { folderId: number }, PushFolderDetail >(async ( folderIds: {folderId: number }[] ) => { const res: any = await get( // 'https://nei.hz.netease.com/api/apimock-v2/c6da9202198a943efec7f11c8a937f16/subfolder/getSubFoldersDetail?folderIds=222222', '//www.lofter.com/spread/subfolder/getSubFoldersDetail', { 'folderIds': folderIds.map(({ folderId }) => folderId).join(',') } ) const fakePostList = res.data.folders.map((folder: PushFolderDetail) => { return { id: folder.id, originType: 'folder', classifyType: 4, //标识推集分类 firstImage: { orign: folder.coverUrl //此处文章类型服务端字段有错误,得延续这个错误 }, postCount: folder.postCount, // 文章数 subscribedCount:folder.subscribedCount, title: folder.name, digest: folder.description, blogInfo: folder.blogInfo, tags: folder.tags, postPageUrl: `https://www.lofter.com/front/blog/collection-push/detail?folderId=${folder.id}` } }) const foldersIdMap = fakePostList.reduce((idMap:PushFolderDetail[], detail:PushFolderDetail) => { idMap[detail.id] = detail; return idMap; }, {}); return folderIds.map(({ folderId }) => foldersIdMap[folderId]); }, 50); export function fetchPushCollectionDetail (folderId: number) { return new Promise((resolve) => { pushFoldersDetailRequestTaskQueue.add({ data: { folderId }, callback: resolve }) }) }