Files
RSSHub/lib/v2/modelscope/models.js
2023-03-26 03:32:59 +08:00

46 lines
1.9 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
const got = require('@/utils/got');
const md = require('markdown-it')({
html: true,
linkify: true,
});
const { parseDate } = require('@/utils/parse-date');
module.exports = async (ctx) => {
const baseUrl = 'https://modelscope.cn';
const link = `${baseUrl}/models`;
const { data } = await got.put(`${baseUrl}/api/v1/dolphin/models`, {
json: { PageSize: ctx.query.limit ? parseInt(ctx.query.limit) : 36, PageNumber: 1, SortBy: 'GmtModified', Target: '', SingleCriterion: [] },
});
const models = data.Data.Model.Models.map((model) => ({
title: model.ChineseName,
description: model.Description,
author: model.Organization.FullName,
link: `${link}/${model.Path}/${model.Name}`,
pubDate: parseDate(model.CreatedTime, 'X'),
category: [...new Set([...model.Tasks.map((task) => task.ChineseName), ...model.Tags])],
slug: `/${model.Path}/${model.Name}`,
}));
const items = await Promise.all(
models.map((item) =>
ctx.cache.tryGet(item.link, async () => {
const { data } = await got(`${baseUrl}/api/v1/models${item.slug}`);
const content = data.Data.ReadMeContent.replace(/img src="(?!http)(.*?)"/g, `img src="${baseUrl}/api/v1/models${item.slug}/repo?Revision=master&FilePath=$1&View=true"`);
item.description = md.render(content);
return item;
})
)
);
ctx.state.data = {
title: '模型库首页 · 魔搭社区',
description: 'ModelScope——汇聚各领域先进的机器学习模型提供模型探索体验、推理、训练、部署和应用的一站式服务。在这里共建模型开源社区发现、学习、定制和分享心仪的模型。',
image: 'https://g.alicdn.com/sail-web/maas/0.8.10/favicon/128.ico',
link,
item: items,
};
};