rsshub
Version:
Make RSS Great Again!
39 lines (38 loc) • 1.37 kB
JavaScript
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 };