Optimizing scripts

This commit is contained in:
ColdWindScholar 2024-04-21 16:20:12 +08:00
parent fa7b65b2d7
commit 05823d089d
3 changed files with 31 additions and 22 deletions

View File

@ -1,7 +1,6 @@
import base64
import os
import html
import json
import re
import requests
import logging
@ -13,6 +12,7 @@ from xml.dom import minidom
from requests import Session
from packaging import version
class Prop(OrderedDict):
def __init__(self, props: str = ...) -> None:
super().__init__()
@ -29,10 +29,11 @@ class Prop(OrderedDict):
def __repr__(self):
return '\n'.join(f'{item}={self[item]}' for item in self)
logging.captureWarnings(True)
env_file = os.getenv('GITHUB_ENV')
#Category ID
# Category ID
cat_id = '858014f3-3934-4abe-8078-4aa193e74ca8'
release_type = "WIF"
@ -66,10 +67,12 @@ except:
users = {"", user_code}
# The code inside the function WSAInsiderUpdateChecker starts here
currentver = requests.get(f"https://raw.githubusercontent.com/MustardChef/WSABuilds/update/WIF.appversion").text.replace('\n', '')
currentver = requests.get(
f"https://raw.githubusercontent.com/MustardChef/WSABuilds/update/WIF.appversion").text.replace('\n', '')
print("Current working directory:", os.getcwd())
print("Files in '/home/runner/work/WSABuilds/WSABuilds/MagiskOnWSALocal2/xml':", os.listdir('/home/runner/work/WSABuilds/WSABuilds/MagiskOnWSALocal2/xml'))
print("Files in '/home/runner/work/WSABuilds/WSABuilds/MagiskOnWSALocal2/xml':",
os.listdir('/home/runner/work/WSABuilds/WSABuilds/MagiskOnWSALocal2/xml'))
# Write for pushing later
try:
@ -109,7 +112,8 @@ if not new_version_found:
exit(1)
doc = minidom.parseString(html.unescape(out.text))
filenames = {}
for node in doc.getElementsByTagName('ExtendedUpdateInfo')[0].getElementsByTagName('Updates')[0].getElementsByTagName('Update'):
for node in doc.getElementsByTagName('ExtendedUpdateInfo')[0].getElementsByTagName('Updates')[
0].getElementsByTagName('Update'):
node_xml = node.getElementsByTagName('Xml')[0]
node_files = node_xml.getElementsByTagName('Files')
if not node_files:
@ -117,8 +121,9 @@ if not new_version_found:
else:
for node_file in node_files[0].getElementsByTagName('File'):
if node_file.hasAttribute('InstallerSpecificIdentifier') and node_file.hasAttribute('FileName'):
filenames[node.getElementsByTagName('ID')[0].firstChild.nodeValue] = (f"{node_file.attributes['InstallerSpecificIdentifier'].value}_{node_file.attributes['FileName'].value}",
node_xml.getElementsByTagName('ExtendedProperties')[0].attributes['PackageIdentityName'].value)
filenames[node.getElementsByTagName('ID')[0].firstChild.nodeValue] = (
f"{node_file.attributes['InstallerSpecificIdentifier'].value}_{node_file.attributes['FileName'].value}",
node_xml.getElementsByTagName('ExtendedProperties')[0].attributes['PackageIdentityName'].value)
identities = {}
for node in doc.getElementsByTagName('NewUpdates')[0].getElementsByTagName('UpdateInfo'):
node_xml = node.getElementsByTagName('Xml')[0]
@ -131,16 +136,16 @@ if not new_version_found:
fileinfo = filenames[id]
if fileinfo[0] not in identities:
identities[fileinfo[0]] = ([update_identity.attributes['UpdateID'].value,
update_identity.attributes['RevisionNumber'].value], fileinfo[1])
update_identity.attributes['RevisionNumber'].value], fileinfo[1])
wsa_build_ver = 0
for filename, value in identities.items():
if re.match(f"MicrosoftCorporationII.WindowsSubsystemForAndroid_.*.msixbundle", filename):
tmp_wsa_build_ver = re.search(r"\d{4}.\d{5}.\d{1,}.\d{1,}", filename).group()
if (wsa_build_ver == 0):
if wsa_build_ver == 0:
wsa_build_ver = tmp_wsa_build_ver
elif version.parse(wsa_build_ver) < version.parse(tmp_wsa_build_ver):
wsa_build_ver = tmp_wsa_build_ver
if version.parse(currentver) < version.parse(wsa_build_ver):
print(f"New version found: {wsa_build_ver}")
new_version_found = True

View File

@ -1,7 +1,5 @@
import base64
import os
import html
import json
import re
import requests
import logging
@ -13,6 +11,7 @@ from xml.dom import minidom
from requests import Session
from packaging import version
class Prop(OrderedDict):
def __init__(self, props: str = ...) -> None:
super().__init__()
@ -29,6 +28,7 @@ class Prop(OrderedDict):
def __repr__(self):
return '\n'.join(f'{item}={self[item]}' for item in self)
logging.captureWarnings(True)
env_file = os.getenv('GITHUB_ENV')
@ -50,9 +50,11 @@ user_code = ""
users = {""}
print("Current working directory:", os.getcwd())
print("Files in '/home/runner/work/WSABuilds/WSABuilds/MagiskOnWSALocal1/xml':", os.listdir('/home/runner/work/WSABuilds/WSABuilds/MagiskOnWSALocal1/xml'))
print("Files in '/home/runner/work/WSABuilds/WSABuilds/MagiskOnWSALocal1/xml':",
os.listdir('/home/runner/work/WSABuilds/WSABuilds/MagiskOnWSALocal1/xml'))
currentver = requests.get(f"https://raw.githubusercontent.com/MustardChef/WSABuilds/update/retail.appversion").text.replace('\n', '')
currentver = requests.get(
f"https://raw.githubusercontent.com/MustardChef/WSABuilds/update/retail.appversion").text.replace('\n', '')
# Write for pushing later
try:
@ -92,7 +94,8 @@ if not new_version_found:
exit(1)
doc = minidom.parseString(html.unescape(out.text))
filenames = {}
for node in doc.getElementsByTagName('ExtendedUpdateInfo')[0].getElementsByTagName('Updates')[0].getElementsByTagName('Update'):
for node in doc.getElementsByTagName('ExtendedUpdateInfo')[0].getElementsByTagName('Updates')[
0].getElementsByTagName('Update'):
node_xml = node.getElementsByTagName('Xml')[0]
node_files = node_xml.getElementsByTagName('Files')
if not node_files:
@ -100,8 +103,9 @@ if not new_version_found:
else:
for node_file in node_files[0].getElementsByTagName('File'):
if node_file.hasAttribute('InstallerSpecificIdentifier') and node_file.hasAttribute('FileName'):
filenames[node.getElementsByTagName('ID')[0].firstChild.nodeValue] = (f"{node_file.attributes['InstallerSpecificIdentifier'].value}_{node_file.attributes['FileName'].value}",
node_xml.getElementsByTagName('ExtendedProperties')[0].attributes['PackageIdentityName'].value)
filenames[node.getElementsByTagName('ID')[0].firstChild.nodeValue] = (
f"{node_file.attributes['InstallerSpecificIdentifier'].value}_{node_file.attributes['FileName'].value}",
node_xml.getElementsByTagName('ExtendedProperties')[0].attributes['PackageIdentityName'].value)
identities = {}
for node in doc.getElementsByTagName('NewUpdates')[0].getElementsByTagName('UpdateInfo'):
node_xml = node.getElementsByTagName('Xml')[0]
@ -114,16 +118,16 @@ if not new_version_found:
fileinfo = filenames[id]
if fileinfo[0] not in identities:
identities[fileinfo[0]] = ([update_identity.attributes['UpdateID'].value,
update_identity.attributes['RevisionNumber'].value], fileinfo[1])
update_identity.attributes['RevisionNumber'].value], fileinfo[1])
wsa_build_ver = 0
for filename, value in identities.items():
if re.match(f"MicrosoftCorporationII.WindowsSubsystemForAndroid_.*.msixbundle", filename):
tmp_wsa_build_ver = re.search(r"\d{4}.\d{5}.\d{1,}.\d{1,}", filename).group()
if (wsa_build_ver == 0):
if wsa_build_ver == 0:
wsa_build_ver = tmp_wsa_build_ver
elif version.parse(wsa_build_ver) < version.parse(tmp_wsa_build_ver):
wsa_build_ver = tmp_wsa_build_ver
if version.parse(currentver) < version.parse(wsa_build_ver):
print(f"New version found: {wsa_build_ver}")
new_version_found = True

View File

@ -1,5 +1,5 @@
import os
from bs4 import BeautifulSoup, Tag
from bs4 import BeautifulSoup
# Load the README.md file
with open('README.md', 'r') as file:
@ -89,4 +89,4 @@ for (row_num, col_num), env_var in release_types[release_type]:
# Write the updated content back to the README.md file
with open('README.md', 'w') as file:
file.write(str(soup))
file.write(str(soup))