修改API模式逻辑,支持循环注册到设定数量
This commit is contained in:
@@ -191,18 +191,28 @@ class GUIThreadManagerWithPyno(ThreadManagerWithPyno):
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
if self.email_source == "api":
|
if self.email_source == "api":
|
||||||
# 使用API获取单个邮箱
|
# 使用API模式,循环获取邮箱直到达到设定数量
|
||||||
self.gui.update_status("系统消息", "正在从API获取邮箱...")
|
with ThreadPoolExecutor(max_workers=1) as self.executor: # 使用单线程处理
|
||||||
email_data = self.get_email_from_api()
|
# 循环注册,直到达到设定数量
|
||||||
if not email_data:
|
while self._running and (self.reg_count == 0 or self.processed_count < self.reg_count):
|
||||||
self.gui.update_status("API错误", "无法从API获取邮箱", result="失败")
|
self.gui.update_status("系统消息", f"正在从API获取邮箱({self.processed_count+1}/{self.reg_count})...")
|
||||||
return
|
|
||||||
|
# 每次只获取一个邮箱
|
||||||
# 处理单个邮箱,不使用线程池
|
email_data = self.get_email_from_api()
|
||||||
if email_data['email'] not in self.completed_tasks:
|
if not email_data:
|
||||||
self.process_email(email_data)
|
self.gui.update_status("API错误", "无法从API获取邮箱", result="失败")
|
||||||
else:
|
break
|
||||||
self.gui.update_status(email_data['email'], "邮箱已处理过,跳过", result="跳过")
|
|
||||||
|
# 处理单个邮箱,依然使用线程池但限制为1个线程
|
||||||
|
if email_data['email'] not in self.completed_tasks:
|
||||||
|
# 提交任务并等待完成
|
||||||
|
future = self.executor.submit(self.process_email, email_data)
|
||||||
|
future.result() # 等待当前注册完成
|
||||||
|
else:
|
||||||
|
self.gui.update_status(email_data['email'], "邮箱已处理过,跳过", result="跳过")
|
||||||
|
|
||||||
|
# 每次处理完一个邮箱后,暂停一下避免请求过快
|
||||||
|
time.sleep(2)
|
||||||
else:
|
else:
|
||||||
# 使用本地文件获取邮箱
|
# 使用本地文件获取邮箱
|
||||||
with open(self.email_file, 'r', encoding='utf-8') as file:
|
with open(self.email_file, 'r', encoding='utf-8') as file:
|
||||||
|
|||||||
Reference in New Issue
Block a user