24 lines
696 B
TypeScript
24 lines
696 B
TypeScript
|
|
import { NextResponse } from 'next/server';
|
||
|
|
import Parser from 'rss-parser';
|
||
|
|
|
||
|
|
export const dynamic = 'force-dynamic';
|
||
|
|
|
||
|
|
export async function GET() {
|
||
|
|
const parser = new Parser();
|
||
|
|
try {
|
||
|
|
const feed = await parser.parseURL('https://news.ycombinator.com/rss');
|
||
|
|
|
||
|
|
const items = feed.items.slice(0, 10).map(item => ({
|
||
|
|
title: item.title,
|
||
|
|
link: item.link,
|
||
|
|
pubDate: item.pubDate,
|
||
|
|
creator: item.creator || 'Unknown',
|
||
|
|
contentSnippet: item.contentSnippet,
|
||
|
|
}));
|
||
|
|
|
||
|
|
return NextResponse.json(items);
|
||
|
|
} catch (error) {
|
||
|
|
return NextResponse.json({ error: 'Failed to parse RSS' }, { status: 500 });
|
||
|
|
}
|
||
|
|
}
|