Files
iOSAI/script/ScriptManager.py

99 lines
3.3 KiB
Python

import random
import time
import wda
import os
from Utils.AiUtils import AiUtils
from Utils.ControlUtils import ControlUtils
from Utils.LogManager import LogManager
# 脚本管理类
class ScriptManager():
# 单利对象
_instance = None # 类变量,用于存储单例实例
def __new__(cls):
# 如果实例不存在,则创建一个新实例
if cls._instance is None:
cls._instance = super(ScriptManager, cls).__new__(cls)
# 返回已存在的实例
return cls._instance
def __init__(self):
super().__init__()
self.initialized = True # 标记已初始化
# 养号
def growAccount(self, udid, event):
client = wda.USBClient(udid)
session = client.session()
session.appium_settings({"snapshotMaxDepth": 15})
# 检测当前打开的是否是Tik Tok。如果不是就打开
ControlUtils.openTikTok(session)
time.sleep(3)
# 创建udid名称的目录
AiUtils.makeUdidDir(udid)
# 假设此时有个开关
while not event.is_set():
try:
img = client.screenshot()
filePath = f"resources/{udid}/bgv.png"
img.save(filePath)
LogManager.info("保存屏幕图像成功", udid)
print("保存了背景图")
time.sleep(1)
except Exception as e:
LogManager.error(e, udid)
print(e)
try:
# 判断视频类型
addX, addY = AiUtils.findImageInScreen("add", udid)
isSame = False
for i in range(2):
tx, ty = AiUtils.findImageInScreen("add", udid)
if addX == tx and addY == ty:
isSame = True
time.sleep(1)
else:
isSame = False
break
# 如果找到普通视频
if addX > 0 and isSame:
needLike = random.randint(0, 10)
# 查找首页按钮
homeButton = AiUtils.findHomeButton(udid)
if homeButton:
print("查看视频")
videoTime = random.randint(5, 15)
time.sleep(videoTime)
# 百分之三的概率点赞
if needLike < 3:
print("点赞")
ControlUtils.clickLike(session, udid)
print("继续观看视频")
videoTime = random.randint(10, 30)
time.sleep(videoTime)
print("准备划到下一个视频")
client.swipe_up()
else:
print("目前没有首页按钮。需要另外处理")
else:
nextTime = random.randint(1, 5)
time.sleep(nextTime)
client.swipe_up()
except Exception as e:
print(f"发生异常:{e}")
client.swipe_up()
# manager = ScriptManager()
# manager.growAccount("eca000fcb6f55d7ed9b4c524055214c26a7de7aa")