Skip to content

Commit e8f5748

Browse files
committed
1. optimized memory usage
2. fixed typos 3. temp. fix for runtime error on windows
1 parent 6b8abb2 commit e8f5748

File tree

4 files changed

+25
-11
lines changed

4 files changed

+25
-11
lines changed

xapps2/__main__.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,20 @@
66
if __name__ == "__main__":
77
if sys.platform == "win32":
88
policy = asyncio.WindowsProactorEventLoopPolicy()
9+
asyncio.set_event_loop_policy(policy)
10+
loop = asyncio.get_event_loop()
11+
try:
12+
loop.run_until_complete(main())
13+
# https://github.com/encode/httpx/issues/914
14+
loop.run_until_complete(asyncio.sleep(1))
15+
finally:
16+
loop.close()
917
else:
1018
try:
1119
import uvloop
1220
except ImportError:
1321
policy = asyncio.DefaultEventLoopPolicy()
1422
else:
1523
policy = uvloop.EventLoopPolicy()
16-
asyncio.set_event_loop_policy(policy)
17-
asyncio.run(main())
24+
asyncio.set_event_loop_policy(policy)
25+
asyncio.run(main())

xapps2/main.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,16 +32,19 @@ async def main():
3232

3333
tasks: List = []
3434

35-
sem = asyncio.Semaphore(8)
35+
sem = asyncio.Semaphore(4)
3636

3737
for addon in apps_conf["addons"]:
38-
if func := getattr(apk_dl, addon, None):
39-
file_ext = ".zip" if "nikgapps" in addon else ".apk"
38+
addon_split = addon.split("@", 1)
39+
if func := getattr(apk_dl, addon_split[0], None):
40+
filename = "_".join(addon_split) + (
41+
".zip" if addon_split[0] == "nikgapps" else ".apk"
42+
)
4043
tasks.append(
4144
(
42-
addon.replace("@", "_") + file_ext,
45+
filename,
4346
sem,
44-
func(*addon.split("@", 1)[1:]),
47+
func(*addon_split[1:]),
4548
)
4649
)
4750

xapps2/miscdl.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ async def nekox(self, varient: str = "mini") -> Optional[str]:
103103
"NekoX-Dev/NekoX", f"NekoX-{varient}-{DEVICE.arch}-release.apk"
104104
)
105105

106-
async def niksgapps(self, varient: str = "basic") -> Optional[str]:
106+
async def nikgapps(self, varient: str = "basic") -> Optional[str]:
107107
if DEVICE.arch != "arm64-v8a":
108108
return
109109
if link := await get_nikgapps(DEVICE.android_str, varient):

xapps2/playstoredl.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,7 @@ def __init__(self):
2828
"lang": "en",
2929
}
3030

31-
async def _playstore_fetch(self, package_name: str) -> Optional[str]:
32-
page = await self.browser.newPage()
31+
async def _playstore_fetch(self, page, package_name: str) -> Optional[str]:
3332
await page.setUserAgent(self.ua)
3433
url = f"{self.dl_site}?{urlencode({'package': package_name.strip(), **self.params})}"
3534
await page.goto(url)
@@ -54,17 +53,21 @@ async def _playstore_fetch(self, package_name: str) -> Optional[str]:
5453
async def playstore(self, package_name: str) -> Optional[str]:
5554
try_count = 0
5655
dl_link = None
56+
5757
while not dl_link:
5858
try_count += 1
5959
LOG.info(f"Trying to connect to server: {try_count}")
6060
if try_count >= 8:
6161
break
62+
page = await self.browser.newPage()
6263
try:
63-
dl_link = await self._playstore_fetch(package_name)
64+
dl_link = await self._playstore_fetch(page, package_name)
6465
except Exception as e:
6566
LOG.exception(f"{e.__class__.__name__}: {e}")
6667
else:
6768
break
69+
finally:
70+
await page.close()
6871
# except pyppeteer.errors.PageError:
6972
# pass
7073

0 commit comments

Comments
 (0)