From 5b1c4cf80269f4bdd7bf71db82dd2a1674301fa5 Mon Sep 17 00:00:00 2001
From: hellodword <46193371+hellodword@users.noreply.github.com>
Date: Thu, 7 Jan 2021 11:22:29 +0800
Subject: [PATCH] feat: add microsoft store updates
---
docs/en/program-update.md | 6 +++++
docs/program-update.md | 6 +++++
lib/router.js | 3 +++
lib/routes/microsoft-store/updates.js | 32 +++++++++++++++++++++++++++
4 files changed, 47 insertions(+)
create mode 100644 lib/routes/microsoft-store/updates.js
diff --git a/docs/en/program-update.md b/docs/en/program-update.md
index 9325fd5e2..13b702821 100644
--- a/docs/en/program-update.md
+++ b/docs/en/program-update.md
@@ -164,6 +164,12 @@ The owner of the official image fills in the library, for example: https://rsshu
+## Microsoft Store
+
+### Updates
+
+
+
## Minecraft
Refer to [#minecraft](/en/game.html#minecraft)
diff --git a/docs/program-update.md b/docs/program-update.md
index 5cddf1086..ed7354551 100644
--- a/docs/program-update.md
+++ b/docs/program-update.md
@@ -212,6 +212,12 @@ pageClass: routes
+## Microsoft Store
+
+### Updates
+
+
+
## Minecraft
见 [#minecraft](/game.html#minecraft)
diff --git a/lib/router.js b/lib/router.js
index 71be05cda..e50f2c3a0 100644
--- a/lib/router.js
+++ b/lib/router.js
@@ -2853,6 +2853,9 @@ router.get('/xposed/module/:mod', require('./routes/xposed/module'));
// Microsoft Edge
router.get('/edge/addon/:crxid', require('./routes/edge/addon'));
+// Microsoft Store
+router.get('/microsoft-store/updates/:productid/:market?', require('./routes/microsoft-store/updates'));
+
// 上海立信会计金融学院
router.get('/slu/tzgg/:id', require('./routes/universities/slu/tzgg'));
router.get('/slu/jwc/:id', require('./routes/universities/slu/jwc'));
diff --git a/lib/routes/microsoft-store/updates.js b/lib/routes/microsoft-store/updates.js
new file mode 100644
index 000000000..4c5f63f62
--- /dev/null
+++ b/lib/routes/microsoft-store/updates.js
@@ -0,0 +1,32 @@
+const got = require('@/utils/got');
+
+module.exports = async (ctx) => {
+ const { market = 'CN', productid } = ctx.params;
+
+ const { data } = await got({
+ method: 'get',
+ url: `https://displaycatalog.mp.microsoft.com/v7.0/products/${productid}/?fieldsTemplate=&market=${market}&languages=en`,
+ headers: {
+ 'Content-Type': 'application/json',
+ 'MS-CV': `${Array(16)
+ .join()
+ .split(',')
+ .map(function () {
+ return 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'.charAt(Math.floor(Math.random() * 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'.length));
+ })
+ .join('')}.1`,
+ },
+ });
+
+ ctx.state.data = {
+ title: `${data.Product.LocalizedProperties[0].ProductTitle} - Microsoft Store Updates`,
+ link: `https://www.microsoft.com/store/productId/${productid}`,
+ item: [
+ {
+ title: data.Product.DisplaySkuAvailabilities[0].Sku.Properties.Packages[0].PackageFullName,
+ pubDate: new Date(data.Product.DisplaySkuAvailabilities[0].Sku.LastModifiedDate),
+ link: `https://www.microsoft.com/store/productId/${productid}`,
+ },
+ ],
+ };
+};