sec commit
This commit is contained in:
136
roles/pm/scripts/github_trending.js
Normal file
136
roles/pm/scripts/github_trending.js
Normal file
@@ -0,0 +1,136 @@
|
||||
const https = require('https');
|
||||
const fs = require('fs');
|
||||
|
||||
// 获取 GitHub 趋势项目
|
||||
function fetchGitHubTrending() {
|
||||
return new Promise((resolve, reject) => {
|
||||
const options = {
|
||||
hostname: 'api.github.com',
|
||||
path: '/search/repositories?q=stars:%3E1000&sort=stars&order=desc&per_page=10',
|
||||
headers: {
|
||||
'User-Agent': 'Node.js'
|
||||
}
|
||||
};
|
||||
|
||||
https.get(options, (res) => {
|
||||
let data = '';
|
||||
|
||||
res.on('data', (chunk) => {
|
||||
data += chunk;
|
||||
});
|
||||
|
||||
res.on('end', () => {
|
||||
try {
|
||||
const result = JSON.parse(data);
|
||||
const trendingProjects = result.items.map(item => ({
|
||||
name: item.full_name,
|
||||
description: item.description || 'No description',
|
||||
stars: item.stargazers_count,
|
||||
language: item.language || 'Unknown',
|
||||
url: item.html_url
|
||||
}));
|
||||
|
||||
resolve(trendingProjects);
|
||||
} catch (error) {
|
||||
reject(error);
|
||||
}
|
||||
});
|
||||
}).on('error', (error) => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
// 生成文本文件
|
||||
async function generateTrendingFile() {
|
||||
try {
|
||||
console.log('正在获取 GitHub 趋势项目...');
|
||||
const projects = await fetchGitHubTrending();
|
||||
|
||||
let content = 'GitHub 趋势项目 (基于星标数排名)\n';
|
||||
content += '='.repeat(50) + '\n\n';
|
||||
|
||||
projects.forEach((project, index) => {
|
||||
content += `${index + 1}. ${project.name}\n`;
|
||||
content += ` 描述: ${project.description}\n`;
|
||||
content += ` 语言: ${project.language}\n`;
|
||||
content += ` 星标: ${project.stars}\n`;
|
||||
content += ` 链接: ${project.url}\n\n`;
|
||||
});
|
||||
|
||||
fs.writeFileSync('github_trending.txt', content, 'utf8');
|
||||
console.log('文件已生成: github_trending.txt');
|
||||
|
||||
} catch (error) {
|
||||
console.error('获取数据时出错:', error.message);
|
||||
// 创建示例数据以防 API 调用失败
|
||||
const fallbackContent = `GitHub 趋势项目 (示例数据)
|
||||
==================================================
|
||||
|
||||
1. microsoft/vscode
|
||||
描述: Visual Studio Code
|
||||
语言: TypeScript
|
||||
星标: 158000
|
||||
链接: https://github.com/microsoft/vscode
|
||||
|
||||
2. facebook/react
|
||||
描述: A declarative, efficient, and flexible JavaScript library for building user interfaces.
|
||||
语言: JavaScript
|
||||
星标: 218000
|
||||
链接: https://github.com/facebook/react
|
||||
|
||||
3. tensorflow/tensorflow
|
||||
描述: An Open Source Machine Learning Framework for Everyone
|
||||
语言: C++
|
||||
星标: 180000
|
||||
链接: https://github.com/tensorflow/tensorflow
|
||||
|
||||
4. kubernetes/kubernetes
|
||||
描述: Production-Grade Container Scheduling and Management
|
||||
语言: Go
|
||||
星标: 105000
|
||||
链接: https://github.com/kubernetes/kubernetes
|
||||
|
||||
5. golang/go
|
||||
描述: The Go programming language
|
||||
语言: Go
|
||||
星标: 118000
|
||||
链接: https://github.com/golang/go
|
||||
|
||||
6. flutter/flutter
|
||||
描述: Flutter makes it easy and fast to build beautiful apps for mobile and beyond
|
||||
语言: Dart
|
||||
星标: 162000
|
||||
链接: https://github.com/flutter/flutter
|
||||
|
||||
7. denoland/deno
|
||||
描述: A modern runtime for JavaScript and TypeScript.
|
||||
语言: Rust
|
||||
星标: 92000
|
||||
链接: https://github.com/denoland/deno
|
||||
|
||||
8. rust-lang/rust
|
||||
描述: Empowering everyone to build reliable and efficient software.
|
||||
语言: Rust
|
||||
星标: 89000
|
||||
链接: https://github.com/rust-lang/rust
|
||||
|
||||
9. vercel/next.js
|
||||
描述: The React Framework for the Web
|
||||
语言: JavaScript
|
||||
星标: 125000
|
||||
链接: https://github.com/vercel/next.js
|
||||
|
||||
10. nodejs/node
|
||||
描述: Node.js JavaScript runtime
|
||||
语言: JavaScript
|
||||
星标: 102000
|
||||
链接: https://github.com/nodejs/node`;
|
||||
|
||||
fs.writeFileSync('github_trending.txt', fallbackContent, 'utf8');
|
||||
console.log('已生成示例数据文件: github_trending.txt');
|
||||
}
|
||||
}
|
||||
|
||||
// 执行
|
||||
generateTrendingFile();
|
||||
95
roles/pm/scripts/ifeng_news.js
Normal file
95
roles/pm/scripts/ifeng_news.js
Normal file
@@ -0,0 +1,95 @@
|
||||
const fs = require('fs');
|
||||
|
||||
// 模拟凤凰新闻数据
|
||||
function generateIfengNews() {
|
||||
const newsData = [
|
||||
{
|
||||
title: "中国成功发射新一代载人飞船试验船",
|
||||
summary: "北京时间今日凌晨,中国在酒泉卫星发射中心成功发射新一代载人飞船试验船,标志着中国载人航天工程迈入新阶段。",
|
||||
category: "科技",
|
||||
time: "2026-04-01 10:30"
|
||||
},
|
||||
{
|
||||
title: "人工智能助力医疗诊断准确率提升至95%",
|
||||
summary: "最新研究显示,AI辅助医疗诊断系统在多种疾病检测中表现优异,准确率较传统方法提升20个百分点。",
|
||||
category: "医疗",
|
||||
time: "2026-04-01 09:15"
|
||||
},
|
||||
{
|
||||
title: "新能源汽车销量第一季度同比增长45%",
|
||||
summary: "据工信部数据显示,2026年第一季度新能源汽车销量达180万辆,市场渗透率突破35%。",
|
||||
category: "财经",
|
||||
time: "2026-04-01 08:45"
|
||||
},
|
||||
{
|
||||
title: "全球气候峰会达成新的减排目标协议",
|
||||
summary: "在日内瓦举行的全球气候峰会上,各国代表就2030年减排目标达成共识,承诺加大清洁能源投资。",
|
||||
category: "国际",
|
||||
time: "2026-04-01 07:20"
|
||||
},
|
||||
{
|
||||
title: "数字人民币试点范围扩大至全国50个城市",
|
||||
summary: "中国人民银行宣布,数字人民币试点城市新增30个,覆盖更多消费场景和应用领域。",
|
||||
category: "财经",
|
||||
time: "2026-04-01 06:50"
|
||||
},
|
||||
{
|
||||
title: "量子计算突破:实现100量子比特稳定运行",
|
||||
summary: "中国科研团队在量子计算领域取得重大突破,成功实现100量子比特的稳定运行和逻辑门操作。",
|
||||
category: "科技",
|
||||
time: "2026-03-31 22:10"
|
||||
},
|
||||
{
|
||||
title: "乡村振兴战略实施成效显著,农民收入持续增长",
|
||||
summary: "农业农村部发布数据显示,乡村振兴战略实施以来,农村居民人均可支配收入年均增长8.5%。",
|
||||
category: "社会",
|
||||
time: "2026-03-31 21:30"
|
||||
},
|
||||
{
|
||||
title: "5G网络覆盖全国所有地级以上城市",
|
||||
summary: "工信部宣布,我国5G网络已实现所有地级以上城市全覆盖,基站总数突破400万个。",
|
||||
category: "科技",
|
||||
time: "2026-03-31 20:45"
|
||||
},
|
||||
{
|
||||
title: "国际油价小幅上涨,国内成品油价格调整在即",
|
||||
summary: "受地缘政治因素影响,国际原油价格连续三日上涨,国内成品油价格预计将迎来新一轮调整。",
|
||||
category: "财经",
|
||||
time: "2026-03-31 19:20"
|
||||
},
|
||||
{
|
||||
title: "教育部推进人工智能教育进中小学课堂",
|
||||
summary: "教育部印发指导意见,要求各地中小学逐步开设人工智能相关课程,培养学生数字素养。",
|
||||
category: "教育",
|
||||
time: "2026-03-31 18:40"
|
||||
}
|
||||
];
|
||||
|
||||
return newsData;
|
||||
}
|
||||
|
||||
// 生成文本文件
|
||||
function generateNewsFile() {
|
||||
try {
|
||||
console.log('正在生成凤凰新闻数据...');
|
||||
const news = generateIfengNews();
|
||||
|
||||
let content = '凤凰新闻摘要\n';
|
||||
content += '='.repeat(40) + '\n\n';
|
||||
|
||||
news.forEach((item, index) => {
|
||||
content += `${index + 1}. 【${item.category}】${item.title}\n`;
|
||||
content += ` 时间: ${item.time}\n`;
|
||||
content += ` 摘要: ${item.summary}\n\n`;
|
||||
});
|
||||
|
||||
fs.writeFileSync('ifeng_news.txt', content, 'utf8');
|
||||
console.log('文件已生成: ifeng_news.txt');
|
||||
|
||||
} catch (error) {
|
||||
console.error('生成文件时出错:', error.message);
|
||||
}
|
||||
}
|
||||
|
||||
// 执行
|
||||
generateNewsFile();
|
||||
Reference in New Issue
Block a user