This commit is contained in:
2025-08-14 15:40:17 +08:00
parent 6747de733a
commit 0621bc6e54
8 changed files with 65 additions and 20 deletions

6
.idea/git_toolbox_blame.xml generated Normal file
View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="GitToolBoxBlameSettings">
<option name="version" value="2" />
</component>
</project>

15
.idea/git_toolbox_prj.xml generated Normal file
View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="GitToolBoxProjectSettings">
<option name="commitMessageIssueKeyValidationOverride">
<BoolValueOverride>
<option name="enabled" value="true" />
</BoolValueOverride>
</option>
<option name="commitMessageValidationEnabledOverride">
<BoolValueOverride>
<option name="enabled" value="true" />
</BoolValueOverride>
</option>
</component>
</project>

View File

@@ -3,7 +3,7 @@ from typing import Dict, Any
from Entity.AnchorModel import AnchorModel
tikTokApp = "com.zhiliaoapp.musically"
tikTokApp = "com.ss.iphone.ugc.Ame"
# wda apple bundle id
WdaAppBundleId = "com.vv.wda.xctrunner"
# 全局主播列表

View File

@@ -25,6 +25,7 @@ CORS(app)
listData = []
dataQueue = Queue()
def start_socket_listener():
port = int(os.getenv('FLASK_COMM_PORT', 0))
print(f"Received port from environment: {port}")
@@ -66,10 +67,12 @@ def start_socket_listener():
except Exception as e:
print(f"[ERROR] ❌ Socket服务启动失败: {e}")
# 在独立线程中启动Socket服务
listener_thread = threading.Thread(target=start_socket_listener, daemon=True)
listener_thread.start()
@app.route('/passToken', methods=['POST'])
def passToken():
data = request.get_json()
@@ -78,9 +81,9 @@ def passToken():
Requester.requestComments()
return ResultData(data="").toJson()
# 获取设备列表
@app.route('/deviceList', methods=['GET'])
def deviceList():
@@ -95,6 +98,7 @@ def deviceList():
listData.remove(data)
return ResultData(data=listData).toJson()
# 获取设备应用列表
@app.route('/deviceAppList', methods=['POST'])
def deviceAppList():
@@ -103,6 +107,7 @@ def deviceAppList():
apps = ControlUtils.getDeviceAppList(udid)
return ResultData(data=apps).toJson()
# 打开指定app
@app.route('/launchApp', methods=['POST'])
def launchApp():
@@ -113,6 +118,7 @@ def launchApp():
t.app_start(bundleId)
return ResultData(data="").toJson()
# 回到首页
@app.route('/toHome', methods=['POST'])
def toHome():
@@ -122,6 +128,7 @@ def toHome():
client.home()
return ResultData(data="").toJson()
# 点击事件
@app.route('/tapAction', methods=['POST'])
def tapAction():
@@ -137,6 +144,7 @@ def tapAction():
session.tap(x, y)
return ResultData(data="").toJson()
# 拖拽事件
@app.route('/swipeAction', methods=['POST'])
def swipeAction():
@@ -157,6 +165,7 @@ def swipeAction():
session.swipe_right()
return ResultData(data="").toJson()
# 长按事件
@app.route('/longPressAction', methods=['POST'])
def longPressAction():
@@ -167,9 +176,10 @@ def longPressAction():
client = wda.USBClient(udid)
session = client.session()
session.appium_settings({"snapshotMaxDepth": 5})
session.tap_hold(x,y,1.0)
session.tap_hold(x, y, 1.0)
return ResultData(data="").toJson()
# 养号
@app.route('/growAccount', methods=['POST'])
def growAccount():
@@ -179,12 +189,13 @@ def growAccount():
manager = ScriptManager()
event = threading.Event()
# 启动脚本
thread = threading.Thread(target=manager.growAccount, args=(udid,event))
thread = threading.Thread(target=manager.growAccount, args=(udid, event))
thread.start()
# 添加到线程管理
ThreadManager.add(udid, thread, event)
return ResultData(data="").toJson()
# 观看直播
@app.route("/watchLiveForGrowth", methods=['POST'])
def watchLiveForGrowth():
@@ -198,6 +209,7 @@ def watchLiveForGrowth():
ThreadManager.add(udid, thread, event)
return ResultData(data="").toJson()
# 停止脚本
@app.route("/stopScript", methods=['POST'])
def stopScript():
@@ -230,6 +242,7 @@ def passAnchorData():
ThreadManager.add(udid, thread, event)
return ResultData(data="").toJson()
# 添加临时数据
@app.route("/addTempAnchorData", methods=['POST'])
def addTempAnchorData():
@@ -237,6 +250,7 @@ def addTempAnchorData():
addModelToAnchorList(data)
return ResultData(data="").toJson()
# 获取当前屏幕上的聊天信息
@app.route("/getChatTextInfo", methods=['POST'])
def getChatTextInfo():
@@ -248,5 +262,20 @@ def getChatTextInfo():
result = AiUtils.extract_messages_from_xml(xml)
return ResultData(data=result).toJson()
# 监控消息
@app.route("/replyMessages", methods=['POST'])
def monitorMessages():
body = request.get_json()
udid = body.get("udid")
manager = ScriptManager()
event = threading.Event()
thread = threading.Thread(target=manager.replyMessages, args=(udid, event))
thread.start()
# 添加到线程管理
ThreadManager.add(udid, thread, event)
return ResultData(data="").toJson()
if __name__ == '__main__':
app.run("0.0.0.0", port=5000, debug=True, use_reloader=False)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 MiB

View File

@@ -14,7 +14,6 @@ from Utils.Requester import Requester
# 脚本管理类
class ScriptManager():
# 单利对象
_instance = None # 类变量,用于存储单例实例
@@ -103,7 +102,6 @@ class ScriptManager():
print(f"发生异常:{e}")
client.swipe_up()
# 观看直播
def watchLiveForGrowth(self, udid, event):
client = wda.USBClient(udid)
@@ -178,8 +176,6 @@ class ScriptManager():
time.sleep(2)
session = client.session()
# 关注打招呼以及回复主播消息
def greetNewFollowers(self, udid, needReply, event):
client = wda.USBClient(udid)
@@ -285,7 +281,7 @@ class ScriptManager():
# 如果打开视频失败。说明该主播没有视频
if cellClickResult == True:
# 观看主播视频
LogManager.info("去查看主播视频",udid)
LogManager.info("去查看主播视频", udid)
viewAnchorVideo()
time.sleep(3)
LogManager.info("视频看完了,重置试图查询深度", udid)
@@ -372,18 +368,20 @@ class ScriptManager():
# 点击搜索按钮
ControlUtils.clickSearch(session)
# 检查未读消息并回复
def monitorMessages(self, session, udid):
def replyMessages(self, udid, event):
client = wda.USBClient(udid)
session = client.session()
ControlUtils.closeTikTok(session, udid)
time.sleep(2)
ControlUtils.closeTikTok(session, udid)
ControlUtils.openTikTok(session, udid)
time.sleep(3)
while event.is_set:
self.monitorMessages(session, udid)
# 检查未读消息并回复
def monitorMessages(self, session, udid):
session.appium_settings({"snapshotMaxDepth": 7})
el = session(xpath='//XCUIElementTypeButton[@name="a11y_vo_inbox"]')
# 如果收件箱有消息 则进行点击
if el.exists:
m = re.search(r'(\d+)', el.label) # 抓到的第一个数字串
@@ -531,15 +529,12 @@ class ScriptManager():
print("当前屏幕没有找到 用户 未读徽标数字")
badge_text = None
def test(self, udid):
client = wda.USBClient(udid)
session = client.session()
session.appium_settings({"snapshotMaxDepth": 10})
print(client.source())
# manager = ScriptManager()
# manager.test("eca000fcb6f55d7ed9b4c524055214c26a7de7aa")
# manager.growAccount("eca000fcb6f55d7ed9b4c524055214c26a7de7aa")
# manager.test("2335890f77fb51322361bd46b85f7fd1311aed53")
# manager.growAccount("2335890f77fb51322361bd46b85f7fd1311aed53")