Skip to content

Commit 3b9eb82

Browse files
authored
Merge pull request #1327 from runhey/dev
Automated PR 2025.12.25
2 parents c115cd1 + 72e7f21 commit 3b9eb82

37 files changed

+332
-334
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ OAS 在其基础上进行了如下优化:
8484
相对于其他的游戏,阴阳师玩家总体而言对脚本这类工具具有极高的排斥性。树大招风,无论你是否喜欢 OAS ,我们都希望你不在互联网上进行宣传,这保护 OAS , 也保护开发者们。
8585

8686
为此保持较高的入群门槛:
87-
#### QQ交流群: 465946275
87+
#### QQ交流群: 1群465946275 2群1076565458
8888
- 你的QQ等级必须大于32级(🌞🌞),注册时间超过一年,低等级账号成分复杂,还请见谅。
8989
- 你必须拥有一个 Github 账户来点一个 **Star** (这并不影响你入群后取消Star),同样的要求注册时间过半年。
9090
- 入群验证填入你的 Github `username`(不是`name`),无需在意问题是什么,由QQ机器人审核(机器永远的对的)。

module/device/control.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
from module.base.utils import *
55
# from module.device.method.hermit import Hermit
66
# from module.device.method.maatouch import MaaTouch
7+
from module.device.env import IS_WINDOWS
78
from module.device.method.minitouch import Minitouch
89
from module.device.method.adb import Adb
910
from module.device.method.scrcpy import Scrcpy
@@ -22,7 +23,7 @@ def click_methods(self):
2223
'ADB': self.click_adb,
2324
'uiautomator2': self.click_uiautomator2,
2425
'minitouch': self.click_minitouch,
25-
'window_message': self.click_window_message
26+
'window_message': self.click_window_message if IS_WINDOWS else None,
2627
# 'Hermit': self.click_hermit,
2728
# 'MaaTouch': self.click_maatouch,
2829
}
@@ -33,7 +34,7 @@ def long_click_methods(self):
3334
'ADB': self.long_click_adb,
3435
'uiautomator2': self.long_click_uiautomator2,
3536
'minitouch': self.long_click_minitouch,
36-
'window_message': self.long_click_window_message,
37+
'window_message': self.long_click_window_message if IS_WINDOWS else None,
3738
'scrcpy': self.long_click_scrcpy
3839
# 'Hermit': self.click_hermit,
3940
# 'MaaTouch': self.click_maatouch,

module/device/screenshot.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
from module.base.decorator import cached_property
1212
from module.base.timer import Timer
1313
from module.base.utils import get_color, image_size, limit_in, save_image
14+
from module.device.env import IS_WINDOWS
1415
from module.device.method.adb import Adb
1516
from module.device.method.windows import Window
1617
from module.device.method.droidcast import DroidCast
@@ -43,7 +44,7 @@ def screenshot_methods(self):
4344
'DroidCast': self.screenshot_droidcast,
4445
'DroidCast_raw': self.screenshot_droidcast_raw,
4546
'scrcpy': self.screenshot_scrcpy,
46-
'window_background': self.screenshot_window_background,
47+
'window_background': self.screenshot_window_background if IS_WINDOWS else None,
4748
'nemu_ipc': self.screenshot_nemu_ipc
4849
}
4950

module/server/script_process.py

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
# @author runhey
33
# 脚本进程
44
# github https://github.com/runhey
5+
import sys, os
6+
import signal
57
import multiprocessing
68
from asyncio import QueueEmpty, CancelledError, sleep
79
from enum import Enum
@@ -10,12 +12,14 @@
1012

1113
from module.server.script_websocket import ScriptWSManager
1214

15+
1316
class ScriptState(int, Enum):
1417
INACTIVE = 0
1518
RUNNING = 1
1619
WARNING = 2
1720
UPDATING = 3
1821

22+
1923
class ScriptProcess(ScriptWSManager):
2024

2125
def __init__(self, config_name: str) -> None:
@@ -26,9 +30,6 @@ def __init__(self, config_name: str) -> None:
2630
self.state: ScriptState = ScriptState.INACTIVE
2731
self._process = None
2832

29-
30-
31-
3233
async def start(self):
3334
self.state = ScriptState.RUNNING
3435
await self.broadcast_state({"state": self.state})
@@ -40,10 +41,10 @@ async def start(self):
4041
self._process = multiprocessing.Process(target=func,
4142
args=(self.config_name, self.state_queue, self.log_pipe_in,),
4243
name=self.config_name,
43-
daemon=True)
44+
daemon=True
45+
)
4446
self._process.start()
4547

46-
4748
async def stop(self):
4849
self.state = ScriptState.INACTIVE
4950
await self.broadcast_state({"state": self.state})
@@ -54,6 +55,10 @@ async def stop(self):
5455
logger.warning(f'Script {self.config_name} is not running')
5556
return
5657
self._process.terminate()
58+
self._process.join(timeout=0.7)
59+
if self._process.is_alive():
60+
logger.error(f'Script {self.config_name} subprocess terminate failed')
61+
self._process.kill()
5762
self._process = None
5863

5964
async def coroutine_broadcast_state(self):
@@ -114,6 +119,14 @@ async def coroutine_broadcast_log(self):
114119

115120

116121
def func(config: str, state_queue: multiprocessing.Queue, log_pipe_in) -> None:
122+
def signal_handler(signum, frame):
123+
logger.info(f'Script {config} received signal {signum}, exiting gracefully')
124+
log_pipe_in.close()
125+
state_queue.close()
126+
sys.exit(0)
127+
128+
signal.signal(signal.SIGTERM, signal_handler)
129+
signal.signal(signal.SIGINT, signal_handler)
117130

118131
def start_log() -> None:
119132
try:

requirements-in.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ cn2an==0.5.23
1717
# Web
1818
paho-mqtt==1.6.1
1919
fastapi==0.104.1
20-
uvicorn==0.23.2
20+
uvicorn==0.38.0
2121
websockets==11.0.3
2222
zerorpc==0.6.3
2323
pydantic==2.10.0

requirements.txt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
# pip-compile --annotation-style=line --output-file=requirements.txt requirements-in.txt
66
#
77

8-
98
adbutils==0.11.0 # via -r requirements-in.txt, uiautomator2
109
annotated-types==0.7.0 # via pydantic
1110
anyio==3.7.1 # via fastapi, starlette
@@ -80,7 +79,7 @@ typing-extensions==4.12.2 # via fastapi, pydantic, pydantic-core, uvicorn
8079
uiautomator2==2.16.17 # via -r requirements-in.txt
8180
uiautomator2cache==0.3.0.1 # via -r requirements-in.txt
8281
urllib3==2.1.0 # via requests
83-
uvicorn==0.23.2 # via -r requirements-in.txt
82+
uvicorn==0.38.0 # via -r requirements-in.txt
8483
websockets==11.0.3 # via -r requirements-in.txt
8584
whichcraft==0.6.1 # via adbutils, uiautomator2
8685
wrapt==1.15.0 # via -r requirements-in.txt, deprecated
-2.58 KB
Binary file not shown.
-12.9 KB
Binary file not shown.
-14.2 KB
Binary file not shown.

tasks/ActivityShikigami/0110/click.json

Lines changed: 0 additions & 26 deletions
This file was deleted.

0 commit comments

Comments
 (0)