news-analyze/server/api/news/get/lt/[slug].ts
吳元皓 b62a3cda3d Add a few more database tables & made the api pull from the database
when then article exists & not ddos line today, Also made a basic
newsView with the api & the scraping script now scraps more stuff! :D
2025-05-18 11:59:58 +08:00

28 lines
765 B
TypeScript

import lineToday from "~/server/scrape/line_today";
import sql from "~/server/components/postgres";
import saveDataToSql from "~/server/scrape/save_scrape_data";
function cleanUpSlug(orgslug: string) {
let slug = dirtySlug.trim();
const validSlugRegex = /^[a-zA-Z0-9-]+$/;
if (!validSlugRegex.test(slug)) {
throw new Error("Invalid slug format");
}
return slug;
}
export default defineEventHandler(async (event) => {
const slug = getRouterParam(event, "slug");
const cleanSlug = await cleanUpSlug(slug);
const result = await sql`
select * from articles_lt
where slug = ${cleanSlug}
`;
if (result) {
return result;
} else {
const data = await lineToday(slug);
saveDataToSql(data, slug);
return data;
}
});