Browse Source

feat: separate GVLK working directory

dev
Dnomd343 2 years ago
parent
commit
049f9d2156
  1. 30
      gvlk/fetch.py
  2. 780
      gvlk/raw.json

30
assets/gvlk.py → gvlk/fetch.py

@ -4,15 +4,16 @@ import json
import requests import requests
from bs4 import BeautifulSoup from bs4 import BeautifulSoup
TIMEOUT = 10
LANG = ['en-us', 'zh-cn', 'zh-tw'] LANG = ['en-us', 'zh-cn', 'zh-tw']
URL = 'https://learn.microsoft.com/%s/windows-server/get-started/kms-client-activation-keys' URL = 'https://learn.microsoft.com/%s/windows-server/get-started/kms-client-activation-keys'
def analyseKeys(items: list) -> dict: def extractKeys(items: list) -> dict: # detached from original html elements
def splitHeader(header) -> tuple[str, str]: def splitHeader(header) -> tuple[str, str]:
return header['id'], header.text return header['id'], header.text
def splitTable(table) -> dict: def splitTable(table) -> dict: # split from html table
dat = {} dat = {}
for item in [x for x in table.tbody if x.name == 'tr']: for item in [x for x in table.tbody if x.name == 'tr']:
name, key = item.select('td') name, key = item.select('td')
@ -22,7 +23,7 @@ def analyseKeys(items: list) -> dict:
result = {} result = {}
for index in range(len(items)): for index in range(len(items)):
if items[index].name == 'table': if items[index].name == 'table':
keyContent = splitTable(items[index]) keyContent = splitTable(items[index]) # GVLK content
keyId, keyName = splitHeader(items[index - 1]) keyId, keyName = splitHeader(items[index - 1])
result[keyId] = { result[keyId] = {
'name': keyName, 'name': keyName,
@ -31,24 +32,24 @@ def analyseKeys(items: list) -> dict:
return result return result
def fetchKeys(lang: str) -> dict: def fetchGvlk(lang: str) -> dict: # fetch GVLKs of the specified language
request = requests.get(URL % lang, timeout = 10) request = requests.get(URL % lang, timeout = TIMEOUT)
request.raise_for_status() request.raise_for_status() # only http-code 2xx
request.encoding = 'utf-8' request.encoding = 'utf-8'
content = BeautifulSoup(request.text, 'lxml').select('.content')[0] content = BeautifulSoup(request.text, 'lxml').select('.content')[0] # html parsing
items = [] result = []
for element in content.children: for element in content.children:
try: try:
if element['id'] == 'generic-volume-license-keys-gvlk': if element['id'] == 'generic-volume-license-keys-gvlk':
items = [] # GVLK record begin result = [] # GVLK record begin
except: pass except: pass
if element.name in ['h3', 'h4', 'table']: # match target DOM if element.name in ['h3', 'h4', 'table']: # match target DOM
items.append(element) result.append(element)
return analyseKeys(items) return extractKeys(result)
def combineKeys(rawData: dict) -> dict: def combineGvlk(rawData: dict) -> dict: # merge multiple languages
firstVal = lambda x: list(x.values())[0] firstVal = lambda x: list(x.values())[0]
flipDict = lambda x: {v: k for k, v in x.items()} flipDict = lambda x: {v: k for k, v in x.items()}
@ -70,6 +71,5 @@ def combineKeys(rawData: dict) -> dict:
return result return result
print(json.dumps( gvlkData = combineGvlk({x: fetchGvlk(x) for x in LANG})
combineKeys({x: fetchKeys(x) for x in LANG}) print(json.dumps(gvlkData)) # output as json format
))

780
gvlk/raw.json

@ -0,0 +1,780 @@
{
"windows-server-2022": {
"name": {
"en-us": "Windows Server 2022",
"zh-cn": "Windows Server 2022",
"zh-tw": "Windows Server 2022"
},
"content": [
{
"name": {
"en-us": "Windows Server 2022 Datacenter",
"zh-cn": "Windows Server 2022 Datacenter",
"zh-tw": "Windows Server 2022 Datacenter"
},
"key": "WX4NM-KYWYW-QJJR4-XV3QB-6VM33"
},
{
"name": {
"en-us": "Windows Server 2022 Datacenter\nAzure Edition",
"zh-cn": "Windows Server 2022 Datacenter\nAzure Edition",
"zh-tw": "Windows Server 2022 Datacenter\nAzure 版本"
},
"key": "NTBV8-9K7Q8-V27C6-M2BTV-KHMXV"
},
{
"name": {
"en-us": "Windows Server 2022 Standard",
"zh-cn": "Windows Server 2022 Standard",
"zh-tw": "Windows Server 2022 Standard"
},
"key": "VDYBN-27WPP-V4HQT-9VMD4-VMK7H"
}
]
},
"windows-server-2019": {
"name": {
"en-us": "Windows Server 2019",
"zh-cn": "Windows Server 2019",
"zh-tw": "Windows Server 2019"
},
"content": [
{
"name": {
"en-us": "Windows Server 2019 Datacenter",
"zh-cn": "Windows Server 2019 Datacenter",
"zh-tw": "Windows Server 2019 Datacenter"
},
"key": "WMDGN-G9PQG-XVVXX-R3X43-63DFG"
},
{
"name": {
"en-us": "Windows Server 2019 Standard",
"zh-cn": "Windows Server 2019 Standard",
"zh-tw": "Windows Server 2019 Standard"
},
"key": "N69G4-B89J2-4G8F4-WWYCC-J464C"
},
{
"name": {
"en-us": "Windows Server 2019 Essentials",
"zh-cn": "Windows Server 2019 Essentials",
"zh-tw": "Windows Server 2019 Essentials"
},
"key": "WVDHN-86M7X-466P6-VHXV7-YY726"
}
]
},
"windows-server-2016": {
"name": {
"en-us": "Windows Server 2016",
"zh-cn": "Windows Server 2016",
"zh-tw": "Windows Server 2016"
},
"content": [
{
"name": {
"en-us": "Windows Server 2016 Datacenter",
"zh-cn": "Windows Server 2016 Datacenter",
"zh-tw": "Windows Server 2016 Datacenter"
},
"key": "CB7KF-BWN84-R7R2Y-793K2-8XDDG"
},
{
"name": {
"en-us": "Windows Server 2016 Standard",
"zh-cn": "Windows Server 2016 Standard",
"zh-tw": "Windows Server 2016 Standard"
},
"key": "WC2BQ-8NRM3-FDDYY-2BFGV-KHKQY"
},
{
"name": {
"en-us": "Windows Server 2016 Essentials",
"zh-cn": "Windows Server 2016 Essentials",
"zh-tw": "Windows Server 2016 Essentials"
},
"key": "JCKRF-N37P4-C2D82-9YXRT-4M63B"
}
]
},
"windows-server-versions-20h2-2004-1909-1903-and-1809": {
"name": {
"en-us": "Windows Server, versions 20H2, 2004, 1909, 1903, and 1809",
"zh-cn": "Windows Server,版本 20H2、2004、1909、1903 和 1809",
"zh-tw": "Windows Server 版本 20H2、2004、1909、1903 和 1809"
},
"content": [
{
"name": {
"en-us": "Windows Server Datacenter",
"zh-cn": "Windows Server Datacenter",
"zh-tw": "Windows Server Datacenter"
},
"key": "6NMRW-2C8FM-D24W7-TQWMY-CWH2D"
},
{
"name": {
"en-us": "Windows Server Standard",
"zh-cn": "Windows Server Standard",
"zh-tw": "Windows Server Standard"
},
"key": "N2KJX-J94YW-TQVFB-DG9YT-724CC"
}
]
},
"windows-11-and-windows-10-semi-annual-channel-versions": {
"name": {
"en-us": "Windows 11 and Windows 10 (Semi-Annual Channel versions)",
"zh-cn": "Windows 11 和 Windows 10(半年频道版本)",
"zh-tw": "Windows 11和Windows 10 (半年通道版本) "
},
"content": [
{
"name": {
"en-us": "Windows 11 Pro\nWindows 10 Pro",
"zh-cn": "Windows 11 专业版\nWindows 10 专业版",
"zh-tw": "Windows 11 專業版\nWindows 10 Pro"
},
"key": "W269N-WFGWX-YVC9B-4J6C9-T83GX"
},
{
"name": {
"en-us": "Windows 11 Pro N\nWindows 10 Pro N",
"zh-cn": "Windows 11 专业版 N\nWindows 10 专业版 N",
"zh-tw": "Windows 11 專業版 N\nWindows 10 Pro N"
},
"key": "MH37W-N47XK-V7XM9-C7227-GCQG9"
},
{
"name": {
"en-us": "Windows 11 Pro for Workstations\nWindows 10 Pro for Workstations",
"zh-cn": "Windows 11 专业工作站版\nWindows 10 专业工作站版",
"zh-tw": "Windows 11 專業工作站版\nWindows 10 工作站專業版"
},
"key": "NRG8B-VKK3Q-CXVCJ-9G2XF-6Q84J"
},
{
"name": {
"en-us": "Windows 11 Pro for Workstations N\nWindows 10 Pro for Workstations N",
"zh-cn": "Windows 11 专业工作站版 N\nWindows 10 专业工作站版 N",
"zh-tw": "Windows 11 專業工作站版 N\nWindows 10 工作站專業版 N"
},
"key": "9FNHH-K3HBT-3W4TD-6383H-6XYWF"
},
{
"name": {
"en-us": "Windows 11 Pro Education\nWindows 10 Pro Education",
"zh-cn": "Windows 11 专业教育版\nWindows 10 专业教育版",
"zh-tw": "Windows 11 專業教育版\nWindows 10 專業教育版"
},
"key": "6TP4R-GNPTD-KYYHQ-7B7DP-J447Y"
},
{
"name": {
"en-us": "Windows 11 Pro Education N\nWindows 10 Pro Education N",
"zh-cn": "Windows 11 专业教育版 N\nWindows 10 专业教育版 N",
"zh-tw": "Windows 11 專業教育版 N\nWindows 10 專業教育版 N"
},
"key": "YVWGF-BXNMC-HTQYQ-CPQ99-66QFC"
},
{
"name": {
"en-us": "Windows 11 Education\nWindows 10 Education",
"zh-cn": "Windows 11 教育版\nWindows 10 教育版",
"zh-tw": "Windows 11 教育版\nWindows 10 Education"
},
"key": "NW6C2-QMPVW-D7KKK-3GKT6-VCFB2"
},
{
"name": {
"en-us": "Windows 11 Education N\nWindows 10 Education N",
"zh-cn": "Windows 11 教育版 N\nWindows 10 教育版 N",
"zh-tw": "Windows 11 教育版 N\nWindows 10 Education N"
},
"key": "2WH4N-8QGBV-H22JP-CT43Q-MDWWJ"
},
{
"name": {
"en-us": "Windows 11 Enterprise\nWindows 10 Enterprise",
"zh-cn": "Windows 11 企业版\nWindows 10 企业版",
"zh-tw": "Windows 11 企業版\nWindows 10 Enterprise"
},
"key": "NPPR9-FWDCX-D2C8J-H872K-2YT43"
},
{
"name": {
"en-us": "Windows 11 Enterprise N\nWindows 10 Enterprise N",
"zh-cn": "Windows 11 企业版 N\nWindows 10 企业版 N",
"zh-tw": "Windows 11 企業版 N\nWindows 10 Enterprise N"
},
"key": "DPH2V-TTNVB-4X9Q3-TJR4H-KHJW4"
},
{
"name": {
"en-us": "Windows 11 Enterprise G\nWindows 10 Enterprise G",
"zh-cn": "Windows 11 企业版 G\nWindows 10 企业版 G",
"zh-tw": "Windows 11 企業版 G\nWindows 10 企業版 G"
},
"key": "YYVX9-NTFWV-6MDM3-9PT4T-4M68B"
},
{
"name": {
"en-us": "Windows 11 Enterprise G N\nWindows 10 Enterprise G N",
"zh-cn": "Windows 11 企业版 G N\nWindows 10 企业版 G N",
"zh-tw": "Windows 11 企業版 G N\nWindows 10 企業版 G N"
},
"key": "44RPN-FTY23-9VTTB-MP9BX-T84FV"
}
]
},
"windows-10-ltsc-2021-and-2019": {
"name": {
"en-us": "Windows 10 LTSC 2021 and 2019",
"zh-cn": "Windows 10 LTSC 2021 和 2019",
"zh-tw": "Windows 10 LTSC 2021 和 2019"
},
"content": [
{
"name": {
"en-us": "Windows 10 Enterprise LTSC 2021\nWindows 10 Enterprise LTSC 2019",
"zh-cn": "Windows 10 企业版 LTSC 2021\nWindows 10 企业版 LTSC 2019",
"zh-tw": "Windows 10 企業版 LTSC 2021\nWindows 10 企業版 LTSC 2019"
},
"key": "M7XTQ-FN8P6-TTKYV-9D4CC-J462D"
},
{
"name": {
"en-us": "Windows 10 Enterprise N LTSC 2021\nWindows 10 Enterprise N LTSC 2019",
"zh-cn": "Windows 10 企业版 N LTSC 2021\nWindows 10 企业版 N LTSC 2019",
"zh-tw": "Windows 10 企業版 N LTSC 2021\nWindows 10 企業版 N LTSC 2019"
},
"key": "92NFX-8DJQP-P6BBQ-THF9C-7CG2H"
}
]
},
"windows-10-ltsb-2016": {
"name": {
"en-us": "Windows 10 LTSB 2016",
"zh-cn": "Windows 10 LTSB 2016",
"zh-tw": "Windows 10 LTSB 2016"
},
"content": [
{
"name": {
"en-us": "Windows 10 Enterprise LTSB 2016",
"zh-cn": "Windows 10 企业版 LTSB 2016",
"zh-tw": "Windows 10 Enterprise LTSB 2016"
},
"key": "DCPHK-NFMTC-H88MJ-PFHPY-QJ4BJ"
},
{
"name": {
"en-us": "Windows 10 Enterprise N LTSB 2016",
"zh-cn": "Windows 10 企业版 N LTSB 2016",
"zh-tw": "Windows 10 Enterprise N LTSB 2016"
},
"key": "QFFDN-GRT3P-VKWWX-X7T3R-8B639"
}
]
},
"windows-10-ltsb-2015": {
"name": {
"en-us": "Windows 10 LTSB 2015",
"zh-cn": "Windows 10 LTSB 2015",
"zh-tw": "Windows 10 LTSB 2015"
},
"content": [
{
"name": {
"en-us": "Windows 10 Enterprise 2015 LTSB",
"zh-cn": "Windows 10 企业版 2015 LTSB",
"zh-tw": "Windows 10 Enterprise 2015 LTSB"
},
"key": "WNMTR-4C88C-JK8YV-HQ7T2-76DF9"
},
{
"name": {
"en-us": "Windows 10 Enterprise 2015 LTSB N",
"zh-cn": "Windows 10 企业版 2015 LTSB N",
"zh-tw": "Windows 10 Enterprise 2015 LTSB N"
},
"key": "2F77B-TNFGY-69QQF-B8YKP-D69TJ"
}
]
},
"windows-server-version-1803": {
"name": {
"en-us": "Windows Server, version 1803",
"zh-cn": "Windows Server 版本 1803",
"zh-tw": "Windows Server 1803 版"
},
"content": [
{
"name": {
"en-us": "Windows Server Datacenter",
"zh-cn": "Windows Server Datacenter",
"zh-tw": "Windows Server Datacenter"
},
"key": "2HXDN-KRXHB-GPYC7-YCKFJ-7FVDG"
},
{
"name": {
"en-us": "Windows Server Standard",
"zh-cn": "Windows Server Standard",
"zh-tw": "Windows Server Standard"
},
"key": "PTXN8-JFHJM-4WC78-MPCBR-9W4KR"
}
]
},
"windows-server-version-1709": {
"name": {
"en-us": "Windows Server, version 1709",
"zh-cn": "Windows Server 版本 1709",
"zh-tw": "Windows Server 1709 版"
},
"content": [
{
"name": {
"en-us": "Windows Server Datacenter",
"zh-cn": "Windows Server Datacenter",
"zh-tw": "Windows Server Datacenter"
},
"key": "6Y6KB-N82V8-D8CQV-23MJW-BWTG6"
},
{
"name": {
"en-us": "Windows Server Standard",
"zh-cn": "Windows Server Standard",
"zh-tw": "Windows Server Standard"
},
"key": "DPCNP-XQFKJ-BJF7R-FRC8D-GF6G4"
}
]
},
"windows-server-2012-r2": {
"name": {
"en-us": "Windows Server 2012 R2",
"zh-cn": "Windows Server 2012 R2",
"zh-tw": "Windows Server 2012 R2"
},
"content": [
{
"name": {
"en-us": "Windows Server 2012 R2 Standard",
"zh-cn": "Windows Server 2012 R2 Standard",
"zh-tw": "Windows Server 2012 R2 Standard"
},
"key": "D2N9P-3P6X9-2R39C-7RTCD-MDVJX"
},
{
"name": {
"en-us": "Windows Server 2012 R2 Datacenter",
"zh-cn": "Windows Server 2012 R2 Datacenter",
"zh-tw": "Windows Server 2012 R2 Datacenter"
},
"key": "W3GGN-FT8W3-Y4M27-J84CP-Q3VJ9"
},
{
"name": {
"en-us": "Windows Server 2012 R2 Essentials",
"zh-cn": "Windows Server 2012 R2 Essentials",
"zh-tw": "Windows Server 2012 R2 Essentials"
},
"key": "KNC87-3J2TX-XB4WP-VCPJV-M4FWM"
}
]
},
"windows-server-2012": {
"name": {
"en-us": "Windows Server 2012",
"zh-cn": "Windows Server 2012",
"zh-tw": "Windows Server 2012"
},
"content": [
{
"name": {
"en-us": "Windows Server 2012",
"zh-cn": "Windows Server 2012",
"zh-tw": "Windows Server 2012"
},
"key": "BN3D2-R7TKB-3YPBD-8DRP2-27GG4"
},
{
"name": {
"en-us": "Windows Server 2012 N",
"zh-cn": "Windows Server 2012 N",
"zh-tw": "Windows Server 2012 N"
},
"key": "8N2M2-HWPGY-7PGT9-HGDD8-GVGGY"
},
{
"name": {
"en-us": "Windows Server 2012 Single Language",
"zh-cn": "Windows Server 2012 单语言版",
"zh-tw": "Windows Server 2012 單一語言"
},
"key": "2WN2H-YGCQR-KFX6K-CD6TF-84YXQ"
},
{
"name": {
"en-us": "Windows Server 2012 Country Specific",
"zh-cn": "Windows Server 2012 特定国家/地区版",
"zh-tw": "Windows Server 2012 國家/地區特定"
},
"key": "4K36P-JN4VD-GDC6V-KDT89-DYFKP"
},
{
"name": {
"en-us": "Windows Server 2012 Standard",
"zh-cn": "Windows Server 2012 Standard",
"zh-tw": "Windows Server 2012 Standard"
},
"key": "XC9B7-NBPP2-83J2H-RHMBY-92BT4"
},
{
"name": {
"en-us": "Windows Server 2012 MultiPoint Standard",
"zh-cn": "Windows Server 2012 MultiPoint 标准版",
"zh-tw": "Windows Server 2012 MultiPoint Standard"
},
"key": "HM7DN-YVMH3-46JC3-XYTG7-CYQJJ"
},
{
"name": {
"en-us": "Windows Server 2012 MultiPoint Premium",
"zh-cn": "Windows Server 2012 MultiPoint 高级版",
"zh-tw": "Windows Server 2012 MultiPoint Premium"
},
"key": "XNH6W-2V9GX-RGJ4K-Y8X6F-QGJ2G"
},
{
"name": {
"en-us": "Windows Server 2012 Datacenter",
"zh-cn": "Windows Server 2012 Datacenter",
"zh-tw": "Windows Server 2012 Datacenter"
},
"key": "48HP8-DN98B-MYWDG-T2DCC-8W83P"
}
]
},
"windows-server-2008-r2": {
"name": {
"en-us": "Windows Server 2008 R2",
"zh-cn": "Windows Server 2008 R2",
"zh-tw": "Windows Server 2008 R2"
},
"content": [
{
"name": {
"en-us": "Windows Server 2008 R2 Web",
"zh-cn": "Windows Server 2008 R2 Web 版",
"zh-tw": "Windows Server 2008 R2 Web"
},
"key": "6TPJF-RBVHG-WBW2R-86QPH-6RTM4"
},
{
"name": {
"en-us": "Windows Server 2008 R2 HPC edition",
"zh-cn": "Windows Server 2008 R2 HPC 版",
"zh-tw": "Windows Server 2008 R2 HPC Edition"
},
"key": "TT8MH-CG224-D3D7Q-498W2-9QCTX"
},
{
"name": {
"en-us": "Windows Server 2008 R2 Standard",
"zh-cn": "Windows Server 2008 R2 标准版",
"zh-tw": "Windows Server 2008 R2 Standard"
},
"key": "YC6KT-GKW9T-YTKYR-T4X34-R7VHC"
},
{
"name": {
"en-us": "Windows Server 2008 R2 Enterprise",
"zh-cn": "Windows Server 2008 R2 企业版",
"zh-tw": "Windows Server 2008 R2 Enterprise"
},
"key": "489J6-VHDMP-X63PK-3K798-CPX3Y"
},
{
"name": {
"en-us": "Windows Server 2008 R2 Datacenter",
"zh-cn": "Windows Server 2008 R2 Datacenter",
"zh-tw": "Windows Server 2008 R2 Datacenter"
},
"key": "74YFP-3QFB3-KQT8W-PMXWJ-7M648"
},
{
"name": {
"en-us": "Windows Server 2008 R2 for Itanium-based Systems",
"zh-cn": "面向基于 Itanium 系统的 Windows Server 2008 R2",
"zh-tw": "Windows Server 2008 R2 for Itanium-based Systems"
},
"key": "GT63C-RJFQ3-4GMB6-BRFB9-CB83V"
}
]
},
"windows-server-2008": {
"name": {
"en-us": "Windows Server 2008",
"zh-cn": "Windows 2008 Server",
"zh-tw": "Windows Server 2008"
},
"content": [
{
"name": {
"en-us": "Windows Web Server 2008",
"zh-cn": "Windows Web Server 2008",
"zh-tw": "Windows Web Server 2008"
},
"key": "WYR28-R7TFJ-3X2YQ-YCY4H-M249D"
},
{
"name": {
"en-us": "Windows Server 2008 Standard",
"zh-cn": "Windows Server 2008 标准版",
"zh-tw": "Windows Server 2008 Standard"
},
"key": "TM24T-X9RMF-VWXK6-X8JC9-BFGM2"
},
{
"name": {
"en-us": "Windows Server 2008 Standard without Hyper-V",
"zh-cn": "不带 Hyper-V 的 Windows Server 2008 标准版",
"zh-tw": "Windows Server 2008 Standard (無 Hyper-V)"
},
"key": "W7VD6-7JFBR-RX26B-YKQ3Y-6FFFJ"
},
{
"name": {
"en-us": "Windows Server 2008 Enterprise",
"zh-cn": "Windows Server 2008 企业版",
"zh-tw": "Windows Server 2008 Enterprise"
},
"key": "YQGMW-MPWTJ-34KDK-48M3W-X4Q6V"
},
{
"name": {
"en-us": "Windows Server 2008 Enterprise without Hyper-V",
"zh-cn": "不带 Hyper-V 的 Windows Server 2008 企业版",
"zh-tw": "Windows Server 2008 Enterprise (無 Hyper-V)"
},
"key": "39BXF-X8Q23-P2WWT-38T2F-G3FPG"
},
{
"name": {
"en-us": "Windows Server 2008 HPC",
"zh-cn": "Windows Server 2008 HPC",
"zh-tw": "Windows Server 2008 HPC"
},
"key": "RCTX3-KWVHP-BR6TB-RB6DM-6X7HP"
},
{
"name": {
"en-us": "Windows Server 2008 Datacenter",
"zh-cn": "Windows Server 2008 Datacenter",
"zh-tw": "Windows Server 2008 Datacenter"
},
"key": "7M67G-PC374-GR742-YH8V4-TCBY3"
},
{
"name": {
"en-us": "Windows Server 2008 Datacenter without Hyper-V",
"zh-cn": "不带 Hyper-V 的 Windows Server 2008 数据中心版",
"zh-tw": "Windows Server 2008 Datacenter (無 Hyper-V)"
},
"key": "22XQ2-VRXRG-P8D42-K34TD-G3QQC"
},
{
"name": {
"en-us": "Windows Server 2008 for Itanium-Based Systems",
"zh-cn": "面向基于 Itanium 系统的 Windows Server 2008",
"zh-tw": "Windows Server 2008 for Itanium-Based Systems"
},
"key": "4DWFP-JF3DJ-B7DTH-78FJB-PDRHK"
}
]
},
"windows-81": {
"name": {
"en-us": "Windows 8.1",
"zh-cn": "Windows 8.1",
"zh-tw": "Windows 8.1"
},
"content": [
{
"name": {
"en-us": "Windows 8.1 Pro",
"zh-cn": "Windows 8.1 专业版",
"zh-tw": "Windows 8.1 專業版"
},
"key": "GCRJD-8NW9H-F2CDX-CCM8D-9D6T9"
},
{
"name": {
"en-us": "Windows 8.1 Pro N",
"zh-cn": "Windows 8.1 专业版 N",
"zh-tw": "Windows 8.1 專業版 N"
},
"key": "HMCNV-VVBFX-7HMBH-CTY9B-B4FXY"
},
{
"name": {
"en-us": "Windows 8.1 Enterprise",
"zh-cn": "Windows 8.1 企业版",
"zh-tw": "Windows 8.1 Enterprise"
},
"key": "MHF9N-XY6XB-WVXMC-BTDCT-MKKG7"
},
{
"name": {
"en-us": "Windows 8.1 Enterprise N",
"zh-cn": "Windows 8.1 企业版 N",
"zh-tw": "Windows 8.1 Enterprise N"
},
"key": "TT4HM-HN7YT-62K67-RGRQJ-JFFXW"
}
]
},
"windows-8": {
"name": {
"en-us": "Windows 8",
"zh-cn": "Windows 8",
"zh-tw": "Windows 8"
},
"content": [
{
"name": {
"en-us": "Windows 8 Pro",
"zh-cn": "Windows 8 专业版",
"zh-tw": "Windows 8 Pro"
},
"key": "NG4HW-VH26C-733KW-K6F98-J8CK4"
},
{
"name": {
"en-us": "Windows 8 Pro N",
"zh-cn": "Windows 8 专业版 N",
"zh-tw": "Windows 8 專業版 N"
},
"key": "XCVCF-2NXM9-723PB-MHCB7-2RYQQ"
},
{
"name": {
"en-us": "Windows 8 Enterprise",
"zh-cn": "Windows 8 企业版",
"zh-tw": "Windows 8 企業版"
},
"key": "32JNW-9KQ84-P47T8-D8GGY-CWCK7"
},
{
"name": {
"en-us": "Windows 8 Enterprise N",
"zh-cn": "Windows 8 企业版 N",
"zh-tw": "Windows 8 企業版 N"
},
"key": "JMNMF-RHW7P-DMY6X-RF3DR-X2BQT"
}
]
},
"windows-7": {
"name": {
"en-us": "Windows 7",
"zh-cn": "Windows 7",
"zh-tw": "Windows 7"
},
"content": [
{
"name": {
"en-us": "Windows 7 Professional",
"zh-cn": "Windows 7 专业版",
"zh-tw": "Windows 7 專業版"
},
"key": "FJ82H-XT6CR-J8D7P-XQJJ2-GPDD4"
},
{
"name": {
"en-us": "Windows 7 Professional N",
"zh-cn": "Windows 7 专业版 N",
"zh-tw": "Windows 7 專業版 N"
},
"key": "MRPKT-YTG23-K7D7T-X2JMM-QY7MG"
},
{
"name": {
"en-us": "Windows 7 Professional E",
"zh-cn": "Windows 7 专业版 E",
"zh-tw": "Windows 7 專業版 E"
},
"key": "W82YF-2Q76Y-63HXB-FGJG9-GF7QX"
},
{
"name": {
"en-us": "Windows 7 Enterprise",
"zh-cn": "Windows 7 企业版",
"zh-tw": "Windows 7 Enterprise"
},
"key": "33PXH-7Y6KF-2VJC9-XBBR8-HVTHH"
},
{
"name": {
"en-us": "Windows 7 Enterprise N",
"zh-cn": "Windows 7 企业版 N",
"zh-tw": "Windows 7 企業版 N"
},
"key": "YDRBP-3D83W-TY26F-D46B2-XCKRJ"
},
{
"name": {
"en-us": "Windows 7 Enterprise E",
"zh-cn": "Windows 7 企业版 E",
"zh-tw": "Windows 7 企業版 E"
},
"key": "C29WB-22CC8-VJ326-GHFJW-H9DH4"
}
]
},
"windows-vista": {
"name": {
"en-us": "Windows Vista",
"zh-cn": "Windows Vista",
"zh-tw": "Windows Vista"
},
"content": [
{
"name": {
"en-us": "Windows Vista Business",
"zh-cn": "Windows Vista 商用版",
"zh-tw": "Windows Vista Business"
},
"key": "YFKBB-PQJJV-G996G-VWGXY-2V3X8"
},
{
"name": {
"en-us": "Windows Vista Business N",
"zh-cn": "Windows Vista 商用版 N",
"zh-tw": "Windows Vista Business N"
},
"key": "HMBQG-8H2RH-C77VX-27R82-VMQBT"
},
{
"name": {
"en-us": "Windows Vista Enterprise",
"zh-cn": "Windows Vista 企业版",
"zh-tw": "Windows Vista Enterprise"
},
"key": "VKK3X-68KWM-X2YGT-QR4M6-4BWMV"
},
{
"name": {
"en-us": "Windows Vista Enterprise N",
"zh-cn": "Windows Vista 企业版 N",
"zh-tw": "Windows Vista Enterprise N"
},
"key": "VTC42-BM838-43QHV-84HX6-XJXKV"
}
]
}
}
Loading…
Cancel
Save