-
Notifications
You must be signed in to change notification settings - Fork 928
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
怎样才能从rss网址中获得所有的文章链接?rss输出的都不是所有内容,还有其他接口可以输出所有文章的链接吗? #299
Comments
这个接口是不是还缺了一个skip参数或者offset参数或者pageNum参数,就像其他的分页查询接口那样用? @Get('/all.(json|rss|atom)')
async getFeeds(
@Request() req: Req,
@Response() res: Res,
@Query('limit', new DefaultValuePipe(30), ParseIntPipe) limit: number = 30,
@Query('mode') mode: string,
@Query('title_include') title_include: string,
@Query('title_exclude') title_exclude: string,
) {
const path = req.path;
const type = path.split('.').pop() || '';
const { content, mimeType } = await this.feedsService.handleGenerateFeed({
type,
limit,
mode,
title_include,
title_exclude,
});
res.setHeader('Content-Type', mimeType);
res.send(content);
} async handleGenerateFeed({
id,
type,
limit,
mode,
title_include,
title_exclude,
}: {
id?: string;
type: string;
limit: number;
mode?: string;
title_include?: string;
title_exclude?: string;
}) {
if (!feedTypes.includes(type as any)) {
type = 'atom';
}
let articles: Article[];
let feedInfo: FeedInfo;
if (id) {
feedInfo = (await this.prismaService.feed.findFirst({
where: { id },
}))!;
if (!feedInfo) {
throw new HttpException('不存在该feed!', HttpStatus.BAD_REQUEST);
}
articles = await this.prismaService.article.findMany({
where: { mpId: id },
orderBy: { publishTime: 'desc' },
take: limit,
});
} else {
articles = await this.prismaService.article.findMany({
orderBy: { publishTime: 'desc' },
take: limit,
});
const { originUrl } =
this.configService.get<ConfigurationType['feed']>('feed')!;
feedInfo = {
id: 'all',
mpName: 'WeWe-RSS All',
mpIntro: 'WeWe-RSS 全部文章',
mpCover: originUrl
? `${originUrl}/favicon.ico`
: 'https://r2-assets.111965.xyz/wewe-rss.png',
status: 1,
syncTime: 0,
updateTime: Math.floor(Date.now() / 1e3),
createdAt: new Date(),
updatedAt: new Date(),
};
}
this.logger.log('handleGenerateFeed articles: ' + articles.length);
let feed = await this.renderFeed({ feedInfo, articles, type, mode });
if (title_include) {
const includes = title_include.split('|');
feed.items = feed.items.filter(
(i: Item) => includes.some((k) => i.title.includes(k)));
}
if (title_exclude) {
const excludes = title_exclude.split('|');
feed.items = feed.items.filter(
(i: Item) => !excludes.some((k) => i.title.includes(k)));
}
switch (type) {
case 'rss':
return { content: feed.rss2(), mimeType: feedMimeTypeMap[type] };
case 'json':
return { content: feed.json1(), mimeType: feedMimeTypeMap[type] };
case 'atom':
default:
return { content: feed.atom1(), mimeType: feedMimeTypeMap[type] };
}
} |
好像那个trpc的接口可以按照分页读取文章列表吗 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
怎样才能从rss网址中获得所有的文章链接?rss输出的都不是所有内容,还有其他接口可以输出所有文章的链接吗?
The text was updated successfully, but these errors were encountered: