737 lines
27 KiB
Plaintext
737 lines
27 KiB
Plaintext
.版本 2
|
||
.支持库 commobj
|
||
.支持库 iext
|
||
.支持库 EThread
|
||
.支持库 edroptarget
|
||
|
||
.程序集 窗口程序集_窗口1
|
||
.程序集变量 工作线程池EX, 鱼刺类_线程池Ex
|
||
.程序集变量 运行状态, 运行状态信息, , , 状态信息
|
||
.程序集变量 许可证, 整数型
|
||
.程序集变量 全局游戏分类成功, 整数型
|
||
.程序集变量 超级文本, 文本型
|
||
.程序集变量 最大数量, 整数型
|
||
.程序集变量 超时值, 整数型
|
||
.程序集变量 导出存放文件名, 文本型
|
||
.程序集变量 集_成功数, 整数型
|
||
.程序集变量 线程操作, 鱼刺类_线程操作
|
||
.程序集变量 集_临界, 鱼刺类_临界许可
|
||
|
||
.子程序 _标签_运行状态信息_反馈事件, 整数型
|
||
.参数 参数一, 整数型
|
||
.参数 参数二, 整数型
|
||
.局部变量 text, 文本型
|
||
.局部变量 log, 文本型
|
||
.局部变量 Color, 整数型
|
||
|
||
' 小伙伴们可能遇到过 频繁操作窗口组件 会照那个组件成有几率一闪一闪的
|
||
' 投递消息给UI线程 让消息循环 去队列处理窗口组件操作 即可解决此问题
|
||
.如果真 (内部_取队列日志 (log, Color) = 真)
|
||
' 画板_运行日志.文本颜色 = Color
|
||
' 画板_运行日志.滚动写行 (log)
|
||
.如果真结束
|
||
|
||
|
||
.子程序 _列表框数据_右键单击表项
|
||
|
||
弹出菜单 (菜单1, , )
|
||
|
||
.子程序 _拖放对象1_得到文件
|
||
.参数 接收到的文件路径, 文本型
|
||
.局部变量 快速, 快速文本对象
|
||
.局部变量 保存文本, 鱼刺类_输出文本
|
||
.局部变量 文本, 文本型, , "0"
|
||
.局部变量 重复数, 整数型
|
||
.局部变量 i, 整数型
|
||
.局部变量 临时目录, 文本型
|
||
.局部变量 临时文件名, 文本型
|
||
.局部变量 j_str, 文本型
|
||
.局部变量 去重后文件名, 文本型
|
||
.局部变量 去重后目录完整路径, 文本型
|
||
|
||
状态条.置文本 (5, “文件已拖入,正在导入列表...”)
|
||
载入小小小号 (接收到的文件路径)
|
||
|
||
.子程序 _列表数据去重复_被选择, , 公开
|
||
|
||
启动线程 (&去重复, 1, )
|
||
|
||
.子程序 去重复
|
||
.参数 _, 整数型
|
||
.局部变量 重复数, 整数型
|
||
.局部变量 总耗时, 整数型
|
||
.局部变量 去重耗时, 整数型
|
||
|
||
超级列表框_去重复 (列表框数据, 1, 真, 重复数, 总耗时, 去重耗时)
|
||
输出运行日志 (“数据对比重复数:” + 到文本 (重复数) + “|去重耗时:” + 到文本 (去重耗时), 2)
|
||
|
||
.子程序 超级列表框_去重复
|
||
.参数 参_超级列表框, 超级列表框, 参考
|
||
.参数 参考列, 整数型
|
||
.参数 重新编号, 逻辑型, 可空, 为真时重新编号 即使没有重复
|
||
.参数 重复数, 整数型, 参考 可空
|
||
.参数 总耗时, 整数型, 参考 可空
|
||
.参数 去重耗时, 整数型, 参考
|
||
.局部变量 哈希, QEHashTable
|
||
.局部变量 开始时间, 整数型
|
||
.局部变量 新表项, 快速字节集对象
|
||
.局部变量 原表项, 快速字节集对象
|
||
.局部变量 原表项数, 整数型
|
||
.局部变量 原表项字节集数组, 字节集, , "0"
|
||
.局部变量 计次, 整数型
|
||
.局部变量 内部字节集, 字节集
|
||
.局部变量 内部字节集数组, 字节集, , "0"
|
||
.局部变量 内内部字节集, 字节集
|
||
.局部变量 计数, 整数型
|
||
.局部变量 计次2, 整数型
|
||
|
||
|
||
开始时间 = 取启动时间 () ' 计时开始
|
||
|
||
' 原表项.置可用内存 (, )
|
||
原表项.置字节集 (参_超级列表框.表项) ' 用快速字节集对象的话 数据量大的时候分割快一点 但是超过2G要置可用内存
|
||
原表项字节集数组 = 原表项.分割字节集 ({ 0, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0 }, ) ' 创建个超级列表框 加点表项 调试输出一下就知道字节集构成了
|
||
|
||
哈希.重置 (取数组成员数 (原表项字节集数组) + 1) ' 加1是自我安慰 可以无视...
|
||
|
||
.计次循环首 (取数组成员数 (原表项字节集数组) - 1, 计次) ' 数组第一个是空字节集
|
||
内部字节集 = 原表项字节集数组 [计次 + 1]
|
||
内部字节集数组 = 分割字节集 (内部字节集, { 0, 0, 1, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0 }, ) ' 数组最后一个多了{0,0} 但是并没有影响什么
|
||
.如果真 (取数组成员数 (内部字节集数组) > 参考列) ' 默认将没有参考列或者为空的表项也当作重复项删除了 可以改
|
||
内内部字节集 = 内部字节集数组 [参考列 + 1]
|
||
.如果真 (内内部字节集 ≠ { })
|
||
.如果真 (哈希.查找 (内内部字节集, ) = 假)
|
||
哈希.添加 (内内部字节集, { 0 })
|
||
.如果 (重新编号)
|
||
计数 = 计数 + 1
|
||
新表项.添加 ({ 0, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0 } + 到字节集 (到文本 (计数)))
|
||
.计次循环首 (取数组成员数 (内部字节集数组) - 1, 计次2)
|
||
新表项.添加 ({ 0, 0, 1, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0 } + 内部字节集数组 [计次2 + 1])
|
||
.计次循环尾 ()
|
||
.否则
|
||
新表项.添加 ({ 0, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0 } + 内部字节集)
|
||
.如果结束
|
||
|
||
到循环尾 ()
|
||
.如果真结束
|
||
|
||
.如果真结束
|
||
|
||
.如果真结束
|
||
重复数 = 重复数 + 1
|
||
.计次循环尾 ()
|
||
|
||
去重耗时 = 取启动时间 () - 开始时间 ' 去重时间
|
||
|
||
.如果真 (原表项.取字节集 (, ) ≠ 新表项.取字节集 (, ))
|
||
参_超级列表框.可视 = 假 ' 可视和重画会严重影响时间
|
||
参_超级列表框.禁止重画 ()
|
||
参_超级列表框.表项 = 新表项.取字节集 (, )
|
||
参_超级列表框.可视 = 真
|
||
参_超级列表框.允许重画 ()
|
||
参_超级列表框.保证显示 (参_超级列表框.取表项数 () - 1)
|
||
.如果真结束
|
||
|
||
总耗时 = 取启动时间 () - 开始时间
|
||
|
||
|
||
.子程序 去文本数组重复, , , By 帝皇法老
|
||
.参数 文本数组, 文本型, 参考 数组
|
||
.局部变量 X, 整数型
|
||
.局部变量 键, 变体型
|
||
.局部变量 空变体型变量, 变体型
|
||
.局部变量 哈希表, 对象
|
||
.局部变量 N, 整数型
|
||
|
||
X = 1
|
||
哈希表.创建 (“scripting.Dictionary”, )
|
||
.循环判断首 ()
|
||
键.赋值 (文本数组 [X], )
|
||
|
||
.如果 (哈希表.逻辑方法 (“Exists”, 键))
|
||
删除成员 (文本数组, X, )
|
||
.否则
|
||
哈希表.方法 (“Add”, 键, 空变体型变量)
|
||
置入代码 ({ 255, 69, 252 })
|
||
|
||
.如果结束
|
||
|
||
.循环判断尾 (X ≤ 取数组成员数 (文本数组))
|
||
|
||
|
||
.子程序 去重复操作
|
||
.参数 num, 整数型
|
||
.参数 文件所在路径, 文本型
|
||
.局部变量 快速, 快速文本对象
|
||
.局部变量 文本数组数据, 文本型, , "0"
|
||
.局部变量 原数组量, 整数型
|
||
.局部变量 新数组量, 整数型
|
||
.局部变量 index, 整数型
|
||
.局部变量 临时数组, 文本型, , "0"
|
||
.局部变量 计次2, 整数型
|
||
.局部变量 计次1, 整数型
|
||
.局部变量 N, 整数型
|
||
|
||
输出运行日志 (“正在导入数据。。。。”, 1)
|
||
|
||
|
||
快速.从文件读 (文件所在路径)
|
||
文本数组数据 = 快速.分割文本 (#换行符, )
|
||
快速.清除文本 ()
|
||
原数组量 = 取数组成员数 (文本数组数据)
|
||
|
||
去文本数组重复 (文本数组数据)
|
||
|
||
新数组量 = 取数组成员数 (文本数组数据)
|
||
输出运行日志 (“去重复前:” + 到文本 (原数组量) + “>>>检测重复:” + 到文本 (原数组量 - 新数组量) + “>>>去重复后:” + 到文本 (新数组量), 1)
|
||
输出运行日志 (“正在载入到列表数据。。。。”, 1)
|
||
|
||
列表框数据.全部删除 ()
|
||
.计次循环首 (取数组成员数 (文本数组数据), N)
|
||
临时数组 = 分割文本 (文本数组数据 [N], “----”, )
|
||
.如果真 (取数组成员数 (临时数组) ≥ 3)
|
||
index = 列表框数据.插入表项 (, , , , , )
|
||
列表框数据.置状态图片 (index, 1)
|
||
列表框数据.置标题 (index, 0, 到文本 (index + 1))
|
||
列表框数据.置标题 (index, 1, 临时数组 [1])
|
||
列表框数据.置标题 (index, 2, 临时数组 [2])
|
||
列表框数据.置标题 (index, 3, 临时数组 [3])
|
||
列表框数据.置标题 (index, 3, 临时数组 [3])
|
||
.如果真结束
|
||
|
||
_处理事件 ()
|
||
.计次循环尾 ()
|
||
清除数组 (临时数组)
|
||
清除数组 (文本数组数据)
|
||
列表框数据.保证显示 (index)
|
||
输出运行日志 (“导入数据到列表完成。。。。”, 1)
|
||
|
||
.子程序 __启动窗口_创建完毕
|
||
.局部变量 返回值, 文本型
|
||
.局部变量 str, 文本型
|
||
.局部变量 s广告, 文本型
|
||
.局部变量 a, 文本型
|
||
.局部变量 b, 文本型
|
||
.局部变量 c, 文本型
|
||
|
||
未闻花名_皮肤加载 (13, , , , , 真)
|
||
.如果真 (信息框 (“此程序仅用于学习、技术交流,请勿用于非法!如出现任何问题后果自负!”, #确认取消钮, “免责声明!!!”, ) = #取消钮)
|
||
结束 ()
|
||
.如果真结束
|
||
|
||
.如果真 (文件是否存在 (取运行目录 () + “\RSCProject.dll”) = 假)
|
||
写到文件 (取运行目录 () + “\RSCProject.dll”, #RSCProjectDLL)
|
||
.如果真结束
|
||
.如果真 (文件是否存在 (取运行目录 () + “\RSOpenCV.dll”) = 假)
|
||
写到文件 (取运行目录 () + “\RSOpenCV.dll”, #RSOpenCVDLL)
|
||
.如果真结束
|
||
.如果真 (文件是否存在 (取运行目录 () + “\XfreeJY.dll”) = 假)
|
||
写到文件 (取运行目录 () + “\XfreeJY.dll”, #XfreeJYDLL)
|
||
.如果真结束
|
||
|
||
jyInit ()
|
||
' 'jiRel (2)
|
||
SetProcessAffinityMask (-1, 1)
|
||
全目录Test = 取运行目录 () + “\Dy_登录\”
|
||
全目录临时 = 全目录Test + “临时”
|
||
全目录状态 = 全目录Test + “数据状态”
|
||
全目录导出 = 全目录Test + “导出记录”
|
||
.如果真 (文件是否存在 (全目录Test) = 假)
|
||
目录_创建 (全目录Test)
|
||
.如果真结束
|
||
.如果真 (文件是否存在 (全目录临时) = 假)
|
||
目录_创建 (全目录临时)
|
||
.如果真结束
|
||
.如果真 (文件是否存在 (全目录状态) = 假)
|
||
目录_创建 (全目录状态)
|
||
.如果真结束
|
||
.如果真 (文件是否存在 (全目录导出) = 假)
|
||
目录_创建 (全目录导出)
|
||
.如果真结束
|
||
|
||
配置_读取_易语言组件 (_启动窗口)
|
||
拖放对象1.注册拖放控件 (列表框数据.取窗口句柄 ())
|
||
启动线程 (&账号写入列表, , )
|
||
|
||
.子程序 __启动窗口_可否被关闭, 逻辑型
|
||
|
||
_启动窗口.总在最前 = 假
|
||
.如果 (信息框 (“程序正在工作,确定要退出?”, #信息图标 + #确认钮 + #取消钮, , ) = #确认钮)
|
||
返回 (真)
|
||
.否则
|
||
返回 (假)
|
||
.如果结束
|
||
|
||
|
||
.子程序 __启动窗口_将被销毁
|
||
|
||
工作中 = 假
|
||
配置_保存_易语言组件 (_启动窗口)
|
||
账号写出列表 ()
|
||
结束 ()
|
||
|
||
.子程序 _时钟_更新运行状态_周期事件
|
||
.局部变量 str, 文本型
|
||
.局部变量 int, 整数型
|
||
.局部变量 更新配置, 整数型
|
||
|
||
.如果真 (工作中 = 真)
|
||
更新配置 = 更新配置 + 300
|
||
.如果真 (更新配置 ≥ 30000) ' 30秒更新一次配置
|
||
更新配置 = 0
|
||
.如果真结束
|
||
.' 如果真 (配置_更新 () = 假)
|
||
' 状态条.置文本 (1, “运行参数设置异常!”)
|
||
.如果真结束
|
||
|
||
int = 到整数 (编辑框_工作线程.内容) ' 重置最大线程数
|
||
.如果真 (int > 0 且 int < 50) ' 限制最大线程数
|
||
工作线程池EX.置_最大线程数 (int)
|
||
.如果真结束
|
||
|
||
.如果真结束
|
||
|
||
|
||
.子程序 _粘贴数据_被选择
|
||
|
||
T粘贴数据 (列表框数据)
|
||
|
||
.子程序 _文本导入_被选择
|
||
|
||
通用对话框1.初始目录 = 取运行目录 () ' 3=系统桌面
|
||
通用对话框1.标题 = “请选择欲导入的文本”
|
||
.如果真 (通用对话框1.打开 () = 真)
|
||
超级文本 = 通用对话框1.文件名
|
||
启动线程 (&超级导入, , )
|
||
.如果真结束
|
||
|
||
|
||
.子程序 超级导入
|
||
.局部变量 time, 整数型
|
||
|
||
超级列表数据_导入文本 (列表框数据, 超级文本, , “----”, 3, 假, time)
|
||
|
||
提示框 (“导入完成,耗时:” + 到文本 (time ÷ 1000) + “秒”, 0, , , 1000)
|
||
|
||
.子程序 _全选_被选择
|
||
|
||
T全选 (列表框数据)
|
||
|
||
.子程序 _反选_被选择
|
||
|
||
T反选 (列表框数据)
|
||
|
||
.子程序 _全不选_被选择
|
||
|
||
T全不选 (列表框数据)
|
||
|
||
.子程序 _删除当前_被选择
|
||
|
||
T删除当前行 (列表框数据)
|
||
|
||
.子程序 _删除勾选_被选择
|
||
|
||
T删除勾选 (列表框数据)
|
||
|
||
.子程序 _清空全部_被选择
|
||
|
||
列表框数据.全部删除 ()
|
||
|
||
.子程序 _导出勾选账号数据_被选择
|
||
|
||
输入框 (“默认保存在默认在同程序路径下的导出数据目录下,仅输入文件名即可”, “导出文件”, , 导出存放文件名, , )
|
||
.如果真 (导出存放文件名 = “”)
|
||
信息框 (“请输入文件名!”, 0, , )
|
||
返回 ()
|
||
.如果真结束
|
||
|
||
启动线程 (&保存勾选, , )
|
||
|
||
.子程序 保存勾选
|
||
.局部变量 导出到文件, 鱼刺类_输出文本
|
||
.局部变量 j_str, 文本型
|
||
.局部变量 开始时间, 整数型
|
||
.局部变量 耗时, 整数型
|
||
.局部变量 N, 整数型
|
||
|
||
开始时间 = 取启动时间 ()
|
||
输出运行日志 (“正在导出数据。。。。”, 1)
|
||
.计次循环首 (列表框数据.取表项数 (), N)
|
||
.如果真 (列表框数据.取当前状态图片 (N - 1) = 1)
|
||
j_str = 列表框数据.取标题 (N - 1, 1) + “----” + 列表框数据.取标题 (N - 1, 2) + “----” + 列表框数据.取标题 (N - 1, 3) + “----” + 列表框数据.取标题 (N - 1, 4)
|
||
导出到文件.写文本行 (j_str, 导出存放文件名, 全目录导出, “.txt”)
|
||
|
||
.如果真结束
|
||
|
||
.计次循环尾 ()
|
||
导出到文件.关闭所有文件占用 ()
|
||
耗时 = 取启动时间 () - 开始时间
|
||
|
||
输出运行日志 (“导出数据完成,耗时:” + 到文本 (耗时), 1)
|
||
提示框 (“导出完成”, , , , 2000)
|
||
|
||
|
||
|
||
.子程序 _按钮_启动_被单击
|
||
|
||
.判断开始 (按钮_启动.标题 = “启 动”)
|
||
配置_保存_易语言组件 (_启动窗口)
|
||
按钮_启动.禁止 = 真
|
||
.如果真 (线程操作.创建 (&工作线程) = 假)
|
||
按钮_启动.禁止 = 假
|
||
返回 ()
|
||
.如果真结束
|
||
|
||
|
||
.判断 (按钮_启动.标题 = “停 止”)
|
||
按钮_启动.禁止 = 真
|
||
按钮_启动.标题 = “停 止 中...”
|
||
状态条.置文本 (1, “程 序 停 止 中...”)
|
||
工作中 = 假
|
||
工作线程池EX.销毁 ()
|
||
.默认
|
||
|
||
.判断结束
|
||
|
||
|
||
.子程序 工作线程
|
||
.局部变量 bool, 逻辑型
|
||
.局部变量 是否创建, 逻辑型
|
||
.局部变量 N, 整数型
|
||
.局部变量 int, 整数型
|
||
.局部变量 局_任务数量, 整数型
|
||
.局部变量 列表数量, 整数型
|
||
.局部变量 user, 文本型
|
||
.局部变量 pass, 文本型
|
||
.局部变量 data, 文本型
|
||
.局部变量 任务数, 整数型
|
||
|
||
线程操作.置CPU亲和性 ()
|
||
按钮_启动.标题 = “启 动 中...”
|
||
状态条.置文本 (1, “程序启动中...”)
|
||
|
||
bool = 工作线程池EX.创建 (到整数 (删首尾空 (编辑框_工作线程.内容)), , , 真, , 1024 × 512)
|
||
.如果真 (bool = 假)
|
||
状态条.置文本 (1, “初始化工作线程池失败!”)
|
||
按钮_启动.标题 = “启 动”
|
||
按钮_启动.禁止 = 假
|
||
返回 ()
|
||
.如果真结束
|
||
|
||
工作中 = 真
|
||
按钮_启动.标题 = “停 止”
|
||
按钮_启动.禁止 = 假
|
||
int = 0
|
||
.判断循环首 (工作中 = 真)
|
||
任务数 = 工作线程池EX.取_执行线程数 () + 工作线程池EX.取_队列任务数 ()
|
||
任务数 = 工作线程池EX.取_最大线程容量 () - 任务数
|
||
.如果 (任务数 > 0)
|
||
.如果真 (列表框数据.取当前状态图片 (int) = 1)
|
||
工作线程池EX.投递任务 (&任务子程序, int)
|
||
程序_延时 (到整数 (删首尾空 (编辑框_时间间隔.内容)))
|
||
.如果真结束
|
||
|
||
int = int + 1
|
||
|
||
.否则
|
||
程序_延时 (20)
|
||
.如果结束
|
||
|
||
.如果真 (int ≥ 列表框数据.取表项数 ())
|
||
跳出循环 ()
|
||
.如果真结束
|
||
|
||
.判断循环尾 ()
|
||
.循环判断首 ()
|
||
程序_延时 (300)
|
||
.循环判断尾 (工作线程池EX.取_是否完全空闲 () = 假)
|
||
按钮_启动.禁止 = 真
|
||
工作中 = 假
|
||
状态条.置文本 (1, “正在销毁工作线程池....”)
|
||
程序_延时 (300)
|
||
工作线程池EX.销毁 ()
|
||
状态条.置文本 (1, “销毁工作线程池成功!”)
|
||
程序_延时 (300)
|
||
按钮_启动.标题 = “启 动”
|
||
按钮_启动.禁止 = 假
|
||
状态条.置文本 (1, “执行停止完毕!”)
|
||
|
||
.子程序 GetIP, 文本型
|
||
.局部变量 str, 文本型
|
||
.局部变量 bool, 逻辑型
|
||
|
||
.循环判断首 ()
|
||
str = 编码_Utf8到Ansi (网页_访问_对象 (删首尾空 (编辑框_代理IP.内容)))
|
||
状态条.置文本 (1, “正在获取代理:” + 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)
|
||
|
||
.子程序 任务子程序
|
||
.参数 索引EX, 整数型
|
||
.局部变量 httpR, WinHttpR
|
||
.局部变量 str, 文本型
|
||
.局部变量 登录状态, 文本型
|
||
.局部变量 zyjson, zyJsonValue
|
||
.局部变量 zyjson2, zyJsonValue
|
||
.局部变量 zyjson3, zyJsonValue
|
||
.局部变量 zyjson4, zyJsonValue
|
||
.局部变量 code_token, 文本型
|
||
.局部变量 challenge, 文本型
|
||
.局部变量 str3, 文本型
|
||
.局部变量 局_短信, 文本型
|
||
.局部变量 Lurl, 文本型
|
||
.局部变量 局pass, 文本型
|
||
.局部变量 COOK, 文本型
|
||
.局部变量 局_Cookie, 文本型
|
||
.局部变量 str4, 文本型
|
||
.局部变量 P, 整数型
|
||
.局部变量 acf_nickname, 文本型
|
||
.局部变量 acf_uid, 文本型
|
||
.局部变量 返回CK, 文本型
|
||
.局部变量 geetest_seccode, 文本型
|
||
.局部变量 局_CookieNEW, 文本型
|
||
.局部变量 返回URL, 文本型
|
||
.局部变量 boolEX, 逻辑型
|
||
.局部变量 areaCode, 文本型
|
||
.局部变量 Sdata, 文本型
|
||
.局部变量 F_F, 文本型, , "0"
|
||
.局部变量 dy_user, 文本型
|
||
.局部变量 dy_pass, 文本型
|
||
.局部变量 mail_user, 文本型
|
||
.局部变量 mail_pass, 文本型
|
||
.局部变量 P1, 整数型
|
||
.局部变量 str2e, 文本型
|
||
.局部变量 局返回CK, 文本型
|
||
.局部变量 E, 整数型
|
||
.局部变量 返回msg, 文本型
|
||
.局部变量 局_mail_user, 文本型
|
||
.局部变量 局_mail_pass, 文本型
|
||
.局部变量 run_Cookie, 文本型
|
||
.局部变量 K, 整数型
|
||
.局部变量 DYL, 逻辑型
|
||
.局部变量 数循环, 整数型
|
||
.局部变量 bs1, 逻辑型
|
||
.局部变量 bs2, 逻辑型
|
||
.局部变量 M, 整数型
|
||
.局部变量 runerr1, 文本型
|
||
.局部变量 返回登录, 文本型
|
||
.局部变量 sild3, 逻辑型
|
||
.局部变量 challenge3, 文本型
|
||
.局部变量 validate3, 文本型
|
||
.局部变量 token3, 文本型
|
||
.局部变量 bool3, 逻辑型
|
||
.局部变量 CK, 文本型
|
||
.局部变量 did, 文本型
|
||
.局部变量 p2, 整数型
|
||
.局部变量 p3, 整数型
|
||
.局部变量 seccode2, 文本型
|
||
.局部变量 sendstr, 文本型
|
||
.局部变量 P5, 整数型
|
||
.局部变量 局_代理IP, 文本型
|
||
.局部变量 返回code, 文本型
|
||
.局部变量 Cookie_new, 文本型
|
||
.局部变量 data, 文本型
|
||
.局部变量 acf_auth, 文本型
|
||
.局部变量 acf_jwt_token, 文本型
|
||
.局部变量 acf_stk, 文本型
|
||
.局部变量 acf_ltkid, 文本型
|
||
.局部变量 局_token, 文本型
|
||
|
||
全临界.进入 ()
|
||
列表框数据.置状态图片 (索引EX, 0)
|
||
Sdata = 列表框数据.取标题 (索引EX, 1)
|
||
列表框数据.保证显示 (索引EX)
|
||
全临界.退出 ()
|
||
|
||
F_F = 分割文本 (Sdata, “|”, )
|
||
.如果真 (取数组成员数 (F_F) < 4)
|
||
状态条.置文本 (1, “数据格式错误”)
|
||
窗口_置表项状态 (索引EX, 0, “数据格式错误”)
|
||
返回 ()
|
||
.如果真结束
|
||
|
||
dy_user = F_F [1]
|
||
dy_pass = F_F [2]
|
||
mail_user = F_F [3]
|
||
mail_pass = F_F [4]
|
||
|
||
.计次循环首 (20, K)
|
||
状态条.置文本 (1, “正在识别滑块...”)
|
||
窗口_置表项状态 (索引EX, 0, “正在识别滑块...”)
|
||
sild3 = slide2 (challenge3, validate3, token3)
|
||
.如果真 (sild3 = 真)
|
||
窗口_置表项状态 (索引EX, 0, “滑块成功,正在登录[” + 到文本 (K) + “]”)
|
||
局_代理IP = GetIP ()
|
||
DYL = 登录斗鱼2 (局_代理IP, dy_user, dy_pass, challenge3, validate3, token3, 返回code, 局返回CK)
|
||
' '调试输出 (局返回CK)
|
||
.如果真 (DYL = 真)
|
||
跳出循环 ()
|
||
.如果真结束
|
||
|
||
.如果真 (局返回CK = “账号或者密码错误”)
|
||
状态条.置文本 (1, “账号或者密码错误”)
|
||
窗口_置表项状态 (索引EX, 0, “账号或者密码错误”)
|
||
CK入库 (Sdata, “账号或者密码错误”, 全目录状态)
|
||
|
||
返回 ()
|
||
.如果真结束
|
||
.如果真 (局返回CK = “登录异常”)
|
||
状态条.置文本 (1, “账号登录异常”)
|
||
窗口_置表项状态 (索引EX, 0, “账号登录异常”)
|
||
CK入库 (Sdata, “账号登录异常”, 全目录状态)
|
||
返回 ()
|
||
.如果真结束
|
||
.如果真 (局返回CK = “账号不存在”)
|
||
状态条.置文本 (1, “账号不存在”)
|
||
窗口_置表项状态 (索引EX, 0, “账号不存在”)
|
||
CK入库 (Sdata, “账号不存在”, 全目录状态)
|
||
返回 ()
|
||
.如果真结束
|
||
.如果真 (局返回CK = “邮箱密码错误”)
|
||
状态条.置文本 (1, “邮箱密码错误”)
|
||
窗口_置表项状态 (索引EX, 0, “邮箱密码错误”)
|
||
CK入库 (Sdata, “邮箱密码错误”, 全目录状态)
|
||
返回 ()
|
||
.如果真结束
|
||
.如果真 (局返回CK = “账号登录异常”)
|
||
状态条.置文本 (1, “账号登录异常”)
|
||
窗口_置表项状态 (索引EX, 0, “账号登录异常”)
|
||
CK入库 (Sdata, “账号登录异常”, 全目录状态)
|
||
返回 ()
|
||
.如果真结束
|
||
|
||
|
||
|
||
.如果真结束
|
||
|
||
.计次循环尾 ()
|
||
.如果真 (DYL = 假)
|
||
状态条.置文本 (1, “登录验证失败”)
|
||
窗口_置表项状态 (索引EX, 0, “登录验证失败”)
|
||
返回 ()
|
||
.如果真结束
|
||
|
||
.如果真 (邮箱发送验证 (返回code, 局返回CK) = 假)
|
||
状态条.置文本 (1, “邮件发送失败”)
|
||
窗口_置表项状态 (索引EX, 0, “邮件发送失败”)
|
||
返回 ()
|
||
.如果真结束
|
||
|
||
局_代理IP = GetIP ()
|
||
.计次循环首 (5, )
|
||
窗口_置表项状态 (索引EX, 0, “正在获取邮件...”)
|
||
.如果真 (取最新邮件E2X (mail_user, mail_pass, 返回msg) = 真)
|
||
局_代理IP = GetIP ()
|
||
窗口_置表项状态 (索引EX, 0, “正在提交邮件...”)
|
||
.如果真 (提交邮件码验证 (返回code, 返回msg, 局返回CK, Lurl) = 真)
|
||
局_代理IP = GetIP ()
|
||
窗口_置表项状态 (索引EX, 0, “正在更新Cookie...”)
|
||
bool3 = 登录取Cookie (局_代理IP, 局返回CK, Lurl, run_Cookie)
|
||
.如果真 (bool3 = 真)
|
||
窗口_置表项状态 (索引EX, 0, “登录成功”)
|
||
跳出循环 ()
|
||
|
||
.如果真结束
|
||
|
||
.如果真结束
|
||
|
||
.如果真结束
|
||
|
||
.计次循环尾 ()
|
||
.如果真 (取反 (bool3))
|
||
窗口_置表项状态 (索引EX, 0, “登录失败”)
|
||
返回 ()
|
||
.如果真结束
|
||
|
||
|
||
acf_auth = _取单条Cookie (run_Cookie, “acf_auth”, 假)
|
||
acf_jwt_token = _取单条Cookie (run_Cookie, “acf_jwt_token”, 假)
|
||
acf_uid = _取单条Cookie (run_Cookie, “acf_uid”, 假)
|
||
acf_stk = _取单条Cookie (run_Cookie, “acf_stk”, 假)
|
||
acf_ltkid = _取单条Cookie (run_Cookie, “acf_ltkid”, 假)
|
||
|
||
Cookie_new = dy_user + “----” + dy_pass + “----” + acf_auth + “; ” + acf_jwt_token + “; ” + acf_uid + “; ” + acf_stk + “; ” + acf_ltkid
|
||
' 调试输出 (Cookie_new)
|
||
' 用户3557899963----a778899----acf_auth=bb65yPiagitvgsakjF1SBchOePmprnWsAPKGHGuSqv%2FldVFH2xr9En5GRhZG7uLWAsGWrwlZjQs9tPufAuVpuq9FREP%2BHMf%2FBJQidxP6ZrBn%2FdmdHpdHz5Q; acf_jwt_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJtZDUifQ.eyJ1aWQiOjUwMjU0NjEzOSwiY3QiOjAsInN1YiI6InN0IiwiYXVkIjpbImR5Iiwibm9uZSJdLCJiaXoiOjEsImx0a2lkIjo5MDQzNDY4MCwic3RrIjoiOWE1ZGNiZTliYWQwMTRkMiIsImV4cCI6MTc3Njc3ODI1OCwiaWF0IjoxNzc2MTczNDU4LCJrZXkiOiJkeS1qd3QtbWQ1In0.ZTg5NmU5ZGRjODgwNjYzNDU1NjI1NWRkOGFjOTM0NDY
|
||
窗口_置表项状态 (索引EX, 0, Cookie_new)
|
||
|
||
CK入库 (Cookie_new, “斗鱼Cookie”, 全目录状态)
|
||
|
||
|
||
.如果真 (组合框_功能.现行选中项 = 1)
|
||
.如果 (查询SM (run_Cookie) = 真)
|
||
CK入库 (Sdata, “已认证”, 全目录状态)
|
||
窗口_置表项状态 (索引EX, 0, “已认证”)
|
||
.否则
|
||
CK入库 (Sdata, “未认证”, 全目录状态)
|
||
窗口_置表项状态 (索引EX, 0, “未认证XX”)
|
||
.如果结束
|
||
|
||
.如果真结束
|
||
|
||
|
||
|
||
.子程序 _勾选自定义回调状态_被选择
|
||
|
||
载入 (窗口1, _启动窗口, 真)
|
||
|
||
.子程序 _勾选动态量_被选择
|
||
.局部变量 n, 整数型
|
||
.局部变量 索引, 整数型
|
||
.局部变量 存放, 文本型
|
||
.局部变量 是否存在, 逻辑型
|
||
|
||
输入框 (“勾选自定义动态量”, “自定义勾选”, , 存放, , )
|
||
.计次循环首 (列表框数据.取表项数 (), n)
|
||
.判断开始 (寻找文本 (列表框数据.取标题 (n - 1, 5), 存放, , 假) ≠ -1)
|
||
列表框数据.置状态图片 (n - 1, 1)
|
||
|
||
.默认
|
||
列表框数据.置状态图片 (n - 1, 0)
|
||
.判断结束
|
||
|
||
.计次循环尾 ()
|
||
|
||
.子程序 _勾选列表范围1N_被选择
|
||
.局部变量 K, 整数型
|
||
.局部变量 T, 整数型
|
||
.局部变量 A, 文本型
|
||
|
||
' N = 到整数 (编辑框_跳到.内容) - 1 ' 为什么要-1 因为表项索引是从0开始的 比如第10行 表项就是9
|
||
' M = 到整数 (编辑框1.内容)
|
||
输入框 (“比如:1-10(代表从第1列勾选到第999列),注意:只能是连续范围!”, “勾选选用指定范围”, “1-99”, A, 1, )
|
||
.如果真 (A ≠ “”)
|
||
.计次循环首 (列表框数据.取表项数 (), T)
|
||
列表框数据.置状态图片 (T - 1, 0)
|
||
.计次循环尾 ()
|
||
.计次循环首 (到整数 (文本_取右边 (A, “-”)), K)
|
||
.如果真 (K ≥ 到整数 (文本_取左边 (A, “-”)))
|
||
列表框数据.置状态图片 (K - 1, 1)
|
||
.如果真结束
|
||
|
||
.计次循环尾 ()
|
||
信息框 (“共选择:” + 到文本 (K) + “条数据”, 0, , )
|
||
.如果真结束
|
||
|
||
|
||
|
||
.子程序 _列表框数据_被双击, 逻辑型
|
||
.参数 横向位置, 整数型
|
||
.参数 纵向位置, 整数型
|
||
.参数 功能键状态, 整数型
|
||
.局部变量 str, 文本型
|
||
|
||
str = 列表框数据.取标题 (列表框数据.现行选中项, 2)
|
||
置剪辑板文本 (str)
|
||
提示框 (“已复制:” + #换行符 + str)
|
||
|