diff --git a/docs/program-update.md b/docs/program-update.md
index f3cf364ca3..d69fe1cbe1 100644
--- a/docs/program-update.md
+++ b/docs/program-update.md
@@ -314,6 +314,12 @@ pageClass: routes
+## 特斯拉系统更新
+
+### 版本详细信息
+
+
+
## 腾讯柠檬 Lab
### 柠檬精选 Mac Apps
diff --git a/lib/router.js b/lib/router.js
index 52dba550e4..5f2ca3ae2f 100644
--- a/lib/router.js
+++ b/lib/router.js
@@ -3537,4 +3537,7 @@ router.get('/youdao/latest', require('./routes/youdao/latest'));
router.get('/yinxiang/note', require('./routes/yinxiang/note'));
router.get('/yinxiang/card/:id?', require('./routes/yinxiang/card'));
+// 特斯拉系统更新
+router.get('/tesla', require('./routes/tesla/update'));
+
module.exports = router;
diff --git a/lib/routes/tesla/update.js b/lib/routes/tesla/update.js
new file mode 100644
index 0000000000..979b06d98e
--- /dev/null
+++ b/lib/routes/tesla/update.js
@@ -0,0 +1,42 @@
+const got = require('@/utils/got');
+const cheerio = require('cheerio');
+
+module.exports = async (ctx) => {
+ const response = await got({
+ method: 'get',
+ url: 'https://www.notateslaapp.com/zh-cn',
+ headers: {
+ Referer: 'https://www.notateslaapp.com/zh-cn',
+ },
+ });
+
+ const data = response.data;
+
+ const $ = cheerio.load(data);
+ const list = $('article[id]');
+
+ ctx.state.data = {
+ title: '特斯拉系统更新',
+ link: 'https://www.notateslaapp.com/zh-cn',
+ description: '特斯拉系统更新 - 最新发布',
+ item:
+ list &&
+ list
+ .map((index, item) => {
+ item = $(item);
+ const targetDate = item
+ .find('.date')
+ .text()
+ .replace(/[\u4e00-\u9fa5]/g, '-')
+ .replace(/\s/g, '')
+ .match(/(\d{4}-\d{1,2}-\d{1,2})/);
+ return {
+ title: item.find('.container h1').text(),
+ description: item.find('.notes-container').text() + '
',
+ pubDate: targetDate[0],
+ link: 'https://www.notateslaapp.com' + item.find('.selector-container-notes a').attr('href'),
+ };
+ })
+ .get(),
+ };
+};