349 lines
11 KiB
Plaintext
349 lines
11 KiB
Plaintext
.版本 2
|
||
.支持库 edroptarget
|
||
.支持库 EThread
|
||
.支持库 spec
|
||
.支持库 iext
|
||
|
||
.程序集 窗口程序集_窗口1
|
||
.程序集变量 工作线程池EX, 鱼刺类_线程池Ex
|
||
.程序集变量 工作中, 逻辑型
|
||
.程序集变量 导出存放id, 文本型
|
||
|
||
.子程序 _窗口1_创建完毕
|
||
.局部变量 Test, 文本型
|
||
|
||
加载皮肤 (18)
|
||
.如果真 (文件是否存在 (取运行目录 () + “\RSCProject.dll”) = 假)
|
||
.如果真 (取反 (写到文件 (取运行目录 () + “\RSCProject.dll”, #RSCProjectDLL)))
|
||
提示框 (“文件写出失败!!!”)
|
||
返回 ()
|
||
.如果真结束
|
||
|
||
.如果真结束
|
||
|
||
|
||
|
||
Test = 取运行目录 () + “\huya\”
|
||
全目录临时 = Test + “临时”
|
||
全目录状态 = Test + “状态”
|
||
全目录导出 = Test + “导出”
|
||
.如果真 (文件是否存在 (Test) = 假)
|
||
目录_创建 (Test)
|
||
.如果真结束
|
||
.如果真 (文件是否存在 (全目录临时) = 假)
|
||
目录_创建 (全目录临时)
|
||
.如果真结束
|
||
.如果真 (文件是否存在 (全目录状态) = 假)
|
||
目录_创建 (全目录状态)
|
||
.如果真结束
|
||
.如果真 (文件是否存在 (全目录导出) = 假)
|
||
目录_创建 (全目录导出)
|
||
.如果真结束
|
||
|
||
配置_读取_易语言组件 (窗口1)
|
||
写入列表 ()
|
||
??? () ' <!!!>
|
||
拖放对象1.注册拖放控件 (超表_状态.取窗口句柄 ())
|
||
|
||
.子程序 _按钮_登录平台_被单击
|
||
|
||
启动线程 (&子程序登录平台, , )
|
||
|
||
.子程序 子程序登录平台, , , http://api.sqhyw.net:90
|
||
.局部变量 str, 文本型
|
||
.局部变量 yyjson, json对象
|
||
.局部变量 token, 文本型
|
||
|
||
str = 编码_Utf8到Ansi (网页_访问_对象 (“https://api.haozhuma.com/sms/?api=login&user=” + 删首尾空 (编辑框_user.内容) + “&pass=” + 删首尾空 (编辑框_pass.内容), , , ))
|
||
调试输出 (str)
|
||
yyjson.清空 ()
|
||
yyjson.解析 (str)
|
||
token = yyjson.取文本 (“token”)
|
||
.如果真 (token ≠ “”)
|
||
全登录token = token
|
||
提示框 (“登录成功”, , , , 1000)
|
||
返回 ()
|
||
.如果真结束
|
||
|
||
提示框 (“失败:” + str)
|
||
|
||
.子程序 _按钮_启动_被单击
|
||
|
||
.如果真 (全登录token = “” 且 组合框_功能.现行选中项 = 0)
|
||
提示框 (“请先登录平台,再操作...”)
|
||
返回 ()
|
||
.如果真结束
|
||
|
||
|
||
.判断开始 (按钮_启动.标题 = “启动”)
|
||
按钮_启动.禁止 = 真
|
||
.如果真 (线程_创建 (&工作线程) = 假)
|
||
按钮_启动.禁止 = 假
|
||
返回 ()
|
||
.如果真结束
|
||
|
||
.判断 (按钮_启动.标题 = “停止”)
|
||
按钮_启动.禁止 = 真
|
||
按钮_启动.标题 = “停止中...”
|
||
工作中 = 假
|
||
工作线程池EX.销毁 ()
|
||
返回 ()
|
||
.默认
|
||
|
||
.判断结束
|
||
|
||
|
||
.子程序 工作线程
|
||
.局部变量 bool, 逻辑型
|
||
.局部变量 int, 整数型
|
||
.局部变量 P, 整数型
|
||
.局部变量 任务数, 整数型
|
||
|
||
按钮_启动.标题 = “启动中...”
|
||
bool = 工作线程池EX.创建 (到整数 (删首尾空 (编辑框_工作线程.内容)), , , 真, , 1024 × 128)
|
||
.如果真 (bool = 假)
|
||
提示框 (“初始化工作线程池失败!”)
|
||
按钮_启动.标题 = “启动”
|
||
按钮_启动.禁止 = 假
|
||
返回 ()
|
||
.如果真结束
|
||
|
||
全成功数 = 0
|
||
工作中 = 真
|
||
按钮_启动.标题 = “停止”
|
||
按钮_启动.禁止 = 假
|
||
.如果 (组合框_功能.现行选中项 = 0)
|
||
.判断循环首 (工作中 = 真)
|
||
.计次循环首 (到整数 (编辑框_工作线程.内容), )
|
||
工作线程池EX.投递任务 (&线程子程序)
|
||
程序_延时 (到整数 (删首尾空 (编辑框_线程间隔.内容)))
|
||
.计次循环尾 ()
|
||
工作线程池EX.等待任务动态 ()
|
||
.判断循环尾 ()
|
||
|
||
.否则
|
||
.判断循环首 (工作中 = 真)
|
||
任务数 = 工作线程池EX.取_执行线程数 () + 工作线程池EX.取_队列任务数 ()
|
||
任务数 = 工作线程池EX.取_最大线程容量 () - 任务数
|
||
.如果 (任务数 > 0)
|
||
.如果真 (超表_状态.取当前状态图片 (int) = 1)
|
||
工作线程池EX.投递任务 (&线程子程序, int)
|
||
程序_延时 (到整数 (删首尾空 (编辑框_线程间隔.内容)))
|
||
.如果真结束
|
||
|
||
int = int + 1
|
||
|
||
.否则
|
||
程序_延时 (10)
|
||
.如果结束
|
||
|
||
.如果真 (int ≥ 超表_状态.取表项数 ())
|
||
跳出循环 ()
|
||
.如果真结束
|
||
|
||
.判断循环尾 ()
|
||
|
||
.如果结束
|
||
|
||
.循环判断首 ()
|
||
程序_延时 (500)
|
||
.循环判断尾 (工作线程池EX.取_是否完全空闲 () = 假)
|
||
状态条1.置文本 (0, “正在销毁工作线程池....”)
|
||
工作线程池EX.销毁 ()
|
||
按钮_启动.标题 = “启动”
|
||
按钮_启动.禁止 = 假
|
||
状态条1.置文本 (0, “执行停止完毕!”)
|
||
提示框 (“执行停止完毕!”)
|
||
|
||
.子程序 线程子程序
|
||
.参数 索引E, 整数型
|
||
.局部变量 返回手机, 文本型
|
||
.局部变量 P, 整数型
|
||
.局部变量 信息, 文本型
|
||
.局部变量 返回短信, 文本型
|
||
.局部变量 bool, 逻辑型
|
||
.局部变量 局pass, 文本型
|
||
.局部变量 局_context, 文本型
|
||
.局部变量 返回sdid, 文本型
|
||
.局部变量 返回requestId, 文本型
|
||
.局部变量 返回authId, 文本型
|
||
.局部变量 返回sessionData, 文本型
|
||
.局部变量 bool2, 逻辑型
|
||
.局部变量 局_pass, 文本型
|
||
.局部变量 局_user, 文本型
|
||
.局部变量 局_cook, 文本型
|
||
.局部变量 返回Cookie, 文本型
|
||
|
||
.如果真 (工作中 = 假)
|
||
返回 ()
|
||
.如果真结束
|
||
|
||
.如果真 (组合框_功能.现行选中项 = 0)
|
||
.如果真 (全成功数 ≥ 到整数 (删首尾空 (编辑框_注册数量.内容)))
|
||
工作中 = 假
|
||
返回 ()
|
||
.如果真结束
|
||
|
||
.如果真 (取反 (取手机 (删首尾空 (编辑框_项目id.内容), 返回手机)))
|
||
状态条1.置文本 (0, 返回手机)
|
||
返回 ()
|
||
.如果真结束
|
||
|
||
' 局pass = 文本_取随机字母 (汇编_取随机数 (3, 5), 0) + 文本_取随机数字 (汇编_取随机数 (6, 8))
|
||
|
||
全E锁.写进入 ()
|
||
索引E = 超表_状态.插入表项 (, , , , , )
|
||
超表_状态.置标题 (索引E, 0, 到文本 (索引E + 1))
|
||
超表_状态.置标题 (索引E, 1, 返回手机)
|
||
超表_状态.保证显示 (索引E)
|
||
' 超表_状态.置标题 (索引E, 2, 局pass)
|
||
全E锁.写退出 ()
|
||
|
||
|
||
局_context = “WB-” + 生成guid () + “-” + 到大写 (生成guid ()) + “-” + 生成guid ()
|
||
|
||
窗口_置表项状态 (索引E, “发送短信...”)
|
||
bool = hy注册_发送短信 (返回手机, 局_context, 返回sdid, 返回sessionData)
|
||
窗口_置表项状态 (索引E, 返回sessionData)
|
||
' ' 发送短信
|
||
.如果真 (bool = 假)
|
||
' 拉黑号码 (删首尾空 (编辑框_项目id.内容), 返回手机)
|
||
返回 ()
|
||
.如果真结束
|
||
|
||
.计次循环首 (60, P)
|
||
窗口_置表项状态 (索引E, “取短信[” + 到文本 (P) + “]”)
|
||
bool = 取短信 (删首尾空 (编辑框_项目id.内容), 返回手机, 返回短信)
|
||
.如果真 (bool = 真)
|
||
跳出循环 ()
|
||
.如果真结束
|
||
|
||
程序_延时 (1000)
|
||
.计次循环尾 ()
|
||
.如果真 (取反 (bool))
|
||
窗口_置表项状态 (索引E, “取短信超时35s”)
|
||
' 拉黑号码 (删首尾空 (编辑框_项目id.内容), 返回手机)
|
||
返回 ()
|
||
.如果真结束
|
||
|
||
窗口_置表项状态 (索引E, “提交短信...”)
|
||
bool2 = hy提交_短信登录 (返回手机, 返回短信, 局_context, 返回sdid, 返回sessionData, 返回Cookie)
|
||
窗口_置表项状态 (索引E, 返回Cookie)
|
||
.如果真 (bool2 = 真)
|
||
_原子递增 (全成功数)
|
||
窗口_置CK (索引E, 返回Cookie + “----” + 返回手机, “注册成功”)
|
||
CK入库 (返回Cookie + “----” + 返回手机, “hy注册成功”, 全目录状态)
|
||
返回 ()
|
||
.如果真结束
|
||
|
||
.如果真结束
|
||
|
||
|
||
|
||
.子程序 _粘贴数据_被选择
|
||
|
||
T粘贴数据 (超表_状态)
|
||
|
||
.子程序 _删除勾选_被选择
|
||
|
||
T删除勾选 (超表_状态)
|
||
|
||
.子程序 _全选_被选择
|
||
|
||
T全选 (超表_状态)
|
||
|
||
.子程序 _反选_被选择
|
||
|
||
T反选 (超表_状态)
|
||
|
||
.子程序 _导出_被选择
|
||
|
||
启动线程 (&保存勾选, , )
|
||
|
||
.子程序 保存勾选
|
||
.局部变量 导出到文件, 鱼刺类_输出文本
|
||
.局部变量 j_str, 文本型
|
||
.局部变量 开始时间, 整数型
|
||
.局部变量 耗时, 整数型
|
||
.局部变量 N, 整数型
|
||
.局部变量 a1, 文本型
|
||
.局部变量 a2, 文本型
|
||
.局部变量 a3, 文本型
|
||
.局部变量 a4, 文本型
|
||
.局部变量 导出存放文件名, 文本型
|
||
.局部变量 全目录导出, 文本型
|
||
|
||
开始时间 = 取启动时间 ()
|
||
提示框 (“正在导出数据....”, , , , 1000)
|
||
.计次循环首 (超表_状态.取表项数 (), N)
|
||
系统_处理事件 ()
|
||
.如果真 (超表_状态.取当前状态图片 (N - 1) = 1)
|
||
全E锁.读进入 ()
|
||
a1 = 超表_状态.取标题 (N - 1, 1)
|
||
a2 = 超表_状态.取标题 (N - 1, 2)
|
||
a3 = 超表_状态.取标题 (N - 1, 3)
|
||
全E锁.读退出 ()
|
||
j_str = a1 + “----” + a2 + “----” + a3
|
||
导出到文件.写文本行 (j_str, “导出数据”, 取运行目录 () + “\”, “.txt”)
|
||
.如果真结束
|
||
|
||
.计次循环尾 ()
|
||
导出到文件.关闭所有文件占用 ()
|
||
提示框 (“导出完成”, , , , 2000)
|
||
|
||
.子程序 _超表_状态_右键单击表项
|
||
|
||
弹出菜单 (菜单, , )
|
||
|
||
.子程序 _窗口1_将被销毁
|
||
|
||
配置_保存_易语言组件 (窗口1)
|
||
写出列表 ()
|
||
|
||
.子程序 _清空列表_被选择
|
||
|
||
超表_状态.全部删除 ()
|
||
|
||
.子程序 _勾选搜索列表_被选择
|
||
.局部变量 局_存放, 文本型
|
||
|
||
载入 (窗口2, , 真)
|
||
|
||
.子程序 GetIP, 文本型
|
||
.局部变量 str, 文本型
|
||
.局部变量 bool, 逻辑型
|
||
|
||
.如果真 (选择框_开启代理.选中 = 真)
|
||
.循环判断首 ()
|
||
str = 编码_Utf8到Ansi (网页_访问_对象 (删首尾空 (编辑框_代理IP.内容)))
|
||
状态条1.置文本 (0, “获取代理:” + str)
|
||
bool = 是否IP格式 (str)
|
||
程序_延时 (300)
|
||
.循环判断尾 (取反 (bool))
|
||
|
||
.如果真结束
|
||
|
||
返回 (str)
|
||
|
||
.子程序 是否IP格式, 逻辑型
|
||
.参数 IP, 文本型
|
||
.局部变量 正则, 正则表达式类
|
||
|
||
正则.创建 (“([1-9]\d{0,2}\.\d{1,3}\.\d{1,3}\.\d{1,3}):([1-9]\d{1,4})”, IP, , , , )
|
||
返回 (正则.取匹配数量 () > 0)
|
||
|
||
.子程序 _拖放对象1_得到文件
|
||
.参数 接收到的文件路径, 文本型
|
||
.局部变量 time, 整数型
|
||
|
||
窗口1.禁止 = 真
|
||
状态条1.置文本 (0, “文件已拖入,正在导入列表...”)
|
||
超表_状态.可视 = 假
|
||
超表_状态.禁止重画 ()
|
||
超表_状态.表项 = { }
|
||
超表_状态.可视 = 真
|
||
超表_状态.允许重画 ()
|
||
超表导入文本 (超表_状态, 接收到的文件路径, , “----”, 位或 (1, 2, 3, 4), 假, time)
|
||
超表_状态.保证显示 (超表_状态.取表项数 () - 1)
|
||
窗口1.禁止 = 假
|