UNPKG

rsshub

Version:
39 lines (38 loc) 1.37 kB
import { t as rofetch } from "./ofetch-W1aeTHCo.mjs"; //#region lib/routes/mit/ocw-top.ts const route = { path: "/ocw-top", categories: ["university"], example: "/mit/ocw-top", name: "OpenCourseWare Most visited courses of the month", maintainers: ["dwemerx"], handler }; async function handler() { const baseUrl = "https://ocw.mit.edu"; const link = `${baseUrl}/course-lists/most-popular-courses/`; const html = await rofetch(link); const data = JSON.parse(JSON.parse(html.match(/window\.courseListsData = JSON\.parse\((".*?")\)/)[1])); return { title: "MIT OCW most popular courses of the month", link, description: "The most visited courses on OCW over the past month", language: "en-us", item: Object.values(data)[0].map((entry) => { const course = Object.values(entry)[0]; return { title: `${course.primary_course_number} ${course.course_title}`, link: `${baseUrl}/${course.url_path}/`, description: `<img src="${course.course_image_metadata.file}" alt="${course.course_image_metadata.image_metadata["image-alt"]}"><br>${course.course_description_html}`, author: course.instructors?.map((instructor) => ({ name: instructor.title })), category: [.../* @__PURE__ */ new Set([ ...course.learning_resource_types, ...course.level, ...course.topics.flat() ])] }; }) }; } //#endregion export { route };