[xqmodel] Transform xqModelList to dictionary

pull/24/head
remittor 2 years ago
parent 27975a4652
commit 396c20bf2d

@ -51,7 +51,7 @@ dn = gw.device_name
# import connect4 # import connect4
# sys.exit(0) # sys.exit(0)
if gw.model_id < 0 or gw.model_id >= gw.get_modelid_by_name('R2100'): if gw.model_id <= 0 or gw.model_id >= gw.get_modelid_by_name('R2100'):
import connect5 import connect5
sys.exit(0) sys.exit(0)

@ -148,7 +148,7 @@ class Gateway():
pass pass
if not self.device_name: if not self.device_name:
die("You need to make the initial configuration in the WEB of the device!") die("You need to make the initial configuration in the WEB of the device!")
self.model_id = self.get_modelid_by_name(self.device_name, unk = True) self.model_id = self.get_modelid_by_name(self.device_name)
self.status = -1 self.status = -1
x = r0.text.find('a href="/cgi-bin/luci/web/init/hello') x = r0.text.find('a href="/cgi-bin/luci/web/init/hello')
if (x > 10): if (x > 10):

@ -1,104 +1,117 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
# -*- coding: utf-8 -*-
xqModelList = { }
mi = [ "" ] * 2000
def mi(model_id, model, similar = "", altname = ""):
mi[ 3] = "R1CM" xqModelList[model] = { 'model': model, 'id': model_id, 'similar': similar, 'altname': altname }
mi[ 4] = "R2D"
mi[ 5] = "R1CL"
mi[ 6] = "R2CM" mi( 3, "R1CM", "", "miwifi-mini")
mi[ 7] = "R3" mi( 4, "R2D")
mi[ 8] = "R3D" mi( 5, "R1CL", "", "miwifi-nano")
mi[ 9] = "R3L" mi( 6, "R2CM")
mi[10] = "R3P" mi( 7, "R3")
mi[11] = "P01" mi( 8, "R3D", "", "r3d")
mi[12] = "R3A" mi( 9, "R3L", "", "miwifi-3c")
mi[13] = "R3G" mi(10, "R3P", "", "mi-router-3-pro")
mi[14] = "R4" mi(11, "P01")
mi[15] = "R4C" mi(12, "R3A")
mi[16] = "D01" mi(13, "R3G", "", "mi-router-3g")
mi[17] = "R4A" mi(14, "R4", "", "mi-router-4")
mi[18] = "R4CM" mi(15, "R4C", "", "mi-router-4q")
mi[19] = "R4AC" mi(16, "D01")
mi[20] = "R3GV2" mi(17, "R4A", "", "mi-router-4a-gigabit")
mi[21] = "R2600" mi(18, "R4CM", "", "mi-router-4c")
mi(19, "R4AC", "", "mi-router-4a-100m") # mi-router-4a-100m-intl mi-router-4a-100m-intl-v2
mi[22] = "R2100" mi(20, "R3GV2", "", "mi-router-3g-v2")
mi[23] = "RM2100" mi(21, "R2600")
mi[24] = "R3600"
mi[25] = "R1350" mi(22, "R2100", "", "mi-router-ac2100")
mi[26] = "R2200" mi(23, "RM2100", "", "redmi-router-ac2100")
mi[27] = "R2350" mi(24, "R3600", "", "ax3600")
mi[28] = "IR1200G" mi(25, "R1350")
mi[29] = "RM1800" mi(26, "R2200")
mi[30] = "R2100D" mi(27, "R2350", "", "aiot-ac2350")
mi[31] = "RA67" mi(28, "IR1200G")
mi[32] = "RA69" mi(29, "RM1800")
mi[33] = "RA71" mi(30, "R2100D")
mi[34] = "CR6006" mi(31, "RA67")
mi[35] = "CR6008" mi(32, "RA69")
mi[36] = "CR6009" mi(33, "RA71")
mi[37] = "RA70" # AX9000 mi(34, "CR6006", "", "mi-router-cr6606")
mi[38] = "RA75" mi(35, "CR6008", "", "mi-router-cr6608")
mi[39] = "RA72" # Mi Router AX6000 Certification: 2021-05-20 mi(36, "CR6009", "", "mi-router-cr6609")
mi(37, "RA70", "", "ax9000") # AX9000
mi[1005] = "RA50" # Certification: 2022-13063 mi(38, "RA75", "", "mi-ra75")
mi[1006] = "RB02" # Xiaomi AC1200 (INT) mi(39, "RA72") # Mi Router AX6000 Certification: 2021-05-20
mi[1007] = "R4AV2" # Xiaomi AC1200 (CN)
mi(0, "RA50") # Certification: 2022-13063
mi[43] = "RA80" # AX3000 (CN) Certification: 2022-2908 mi(0, "RB02", "R4AV2", "mi-router-4a-gigabit-v2") # Xiaomi AC1200 (INT)
mi[44] = "RA81" # Redmi AX3000 mi(0, "R4AV2", "RB02", "mi-router-4a-gigabit-v2") # Xiaomi AC1200 (CN)
mi[45] = "RA82" # AX3000 (INT)
mi[46] = "RA83" mi(43, "RA80", "RA82") # AX3000 (CN) Certification: 2022-2908
mi[47] = "RA74" # AX5400 mi(44, "RA81") # Redmi AX3000
mi(45, "RA82", "RA80") # AX3000 (INT)
mi[49] = "YY01" mi(46, "RA83")
mi[50] = "RB01" # AX3200 (INT) mi(47, "RA74") # AX5400
mi[51] = "RB03" # AX6S # CR8806 (ChinaMobile)
mi[52] = "CR8808" mi(49, "YY01")
mi[53] = "CR8809" mi(50, "RB01", "RB03", "redmi-router-ax6s") # AX3200 (INT)
mi[54] = "RB04" # Redmi AX5400 mi(51, "RB03", "RB01", "redmi-router-ax6s") # AX6S # CR8806 (ChinaMobile)
mi[55] = "CR5508" mi(52, "CR8808")
mi[56] = "CR5506" mi(53, "CR8809")
mi[57] = "CR5509" mi(54, "RB04") # Redmi AX5400
mi[58] = "RB08" # HomeWiFi mi(55, "CR5508")
mi(56, "CR5506")
mi[1060] = "RB05" # Certification: 2022-3478 mi(57, "CR5509")
mi[61] = "RB06" # Redmi AX6000 mi(58, "RB08") # HomeWiFi
mi[62] = "RB07" # mediatek_mt7981
mi(0, "RB05") # Certification: 2022-3478
mi[64] = "CB04" mi(61, "RB06", "", "redmi-router-ax6000") # Redmi AX6000
mi[65] = "CB0401" # Xiaomi 5G CPE Pro, Magenta Internet 5G Box AX5400 mi(62, "RB07") # mediatek_mt7981
mi[66] = "RC01" # AX10000
mi[1067] = "RC04" # RA75 analog mi(64, "CB04")
mi[68] = "CB0401V2" # Xiaomi 5G CPE Pro mi(65, "CB0401") # Xiaomi 5G CPE Pro, Magenta Internet 5G Box AX5400
mi(66, "RC01") # AX10000
mi[70] = "RC06" # Xiaomi Router 7000 mi(0, "RC04") # RA75 analog
mi[71] = "RD01" # Xiaomi 全屋路由 # https://www.mi.com/xiaomi-routers/whole-room mi(68, "CB0401V2") # Xiaomi 5G CPE Pro
mi[72] = "WR30" # ???
mi[73] = "RD02" # Xiaomi 全屋路由 子路由 (Whole house routing sub-routing) # ipq5018 # Certification: 2023-11107 mi(70, "RC06") # Xiaomi Router 7000
mi[74] = "CR8818" mi(71, "RD01") # Xiaomi 全屋路由 # https://www.mi.com/xiaomi-routers/whole-room
mi[75] = "RD03" # Xiaomi AX3000T (CN) mi(72, "WR30") # ???
mi[76] = "RD04" # Certification: 2023-12227 mi(73, "RD02") # Xiaomi 全屋路由 子路由 (Whole house routing sub-routing) # ipq5018 # Certification: 2023-11107
mi[77] = "RD05" mi(74, "CR8818")
mi[78] = "RD06" mi(75, "RD03") # Xiaomi AX3000T (CN)
mi[79] = "CR8816" mi(76, "RD04") # Certification: 2023-12227
mi[80] = "CR8819" mi(77, "RD05")
mi[81] = "RD08" mi(78, "RD06")
mi(79, "CR8816")
mi(80, "CR8819")
mi(81, "RD08")
# routers with unknown device number # routers with unknown device number
mi[1901] = "WR30U" # Xiaomi AX3000NE mi(0, "WR30U", "", "mi-router-wr30u") # Xiaomi AX3000NE
mi[1902] = "WR30T" # mediatek_mt7981 # Certification: 2022-3536 mi(0, "WR30T") # mediatek_mt7981 # Certification: 2022-3536
mi[1903] = "WR30M" # Certification: 2022-3202 6.0.49 mi(0, "WR30M") # Certification: 2022-3202 6.0.49
xqModelList = mi
def get_modelid_by_name(name):
def get_modelid_by_name(name, unk = False): name = name.upper()
for i, m in enumerate(xqModelList): if name in xqModelList:
if not unk and i >= 1000: return xqModelList[name]['id']
break
if m.lower() == name.lower():
return i
return -1 return -1
def get_model_info(name):
name = name.upper()
if name in xqModelList:
return xqModelList[name]
return { }
def get_model_by_id(id):
if id > 0:
for i, (name, item) in enumerate(xqModelList.items()):
if item['id'] == id:
return item
return { }

Loading…
Cancel
Save