diff --git a/.idea/git_toolbox_blame.xml b/.idea/git_toolbox_blame.xml
new file mode 100644
index 0000000..7dc1249
--- /dev/null
+++ b/.idea/git_toolbox_blame.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/git_toolbox_prj.xml b/.idea/git_toolbox_prj.xml
new file mode 100644
index 0000000..02b915b
--- /dev/null
+++ b/.idea/git_toolbox_prj.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Entity/Variables.py b/Entity/Variables.py
index 9afaac3..9ce4fd7 100644
--- a/Entity/Variables.py
+++ b/Entity/Variables.py
@@ -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"
# 全局主播列表
diff --git a/Flask/FlaskService.py b/Flask/FlaskService.py
index 4b9b8ff..1be4e6c 100644
--- a/Flask/FlaskService.py
+++ b/Flask/FlaskService.py
@@ -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)
diff --git a/resources/bgv.png b/resources/bgv.png
deleted file mode 100644
index abbcebc..0000000
Binary files a/resources/bgv.png and /dev/null differ
diff --git a/resources/eca000fcb6f55d7ed9b4c524055214c26a7de7aa/bgv.png b/resources/eca000fcb6f55d7ed9b4c524055214c26a7de7aa/bgv.png
deleted file mode 100644
index 98ed838..0000000
Binary files a/resources/eca000fcb6f55d7ed9b4c524055214c26a7de7aa/bgv.png and /dev/null differ
diff --git a/screenshot.png b/screenshot.png
deleted file mode 100644
index 92687f3..0000000
Binary files a/screenshot.png and /dev/null differ
diff --git a/script/ScriptManager.py b/script/ScriptManager.py
index e62e01f..75b8e5a 100644
--- a/script/ScriptManager.py
+++ b/script/ScriptManager.py
@@ -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")