下载地址:m.pan38.com/download.ph… 提取码:3332
个易语言脚本实现了一个简单的微博批量关注工具,包含账号输入、开始/停止控制、状态显示等功能。代码中模拟了微博客户端的操作,实际使用时需要替换为真实的API调用
源码部分:
.版本 2
.程序集 微博批量关注工具
.程序集变量 微博客户端, 对象
.程序集变量 账号列表, 文本型, , "0"
.程序集变量 当前索引, 整数型
.程序集变量 已关注数, 整数型
.程序集变量 失败数, 整数型
.程序集变量 间隔时间, 整数型
.程序集变量 是否停止, 逻辑型
.子程序 _启动子程序, 整数型
.局部变量 主窗口, 窗口
.局部变量 账号编辑框, 编辑框
.局部变量 开始按钮, 按钮
.局部变量 停止按钮, 按钮
.局部变量 状态标签, 标签
.局部变量 进度条, 进度条
' 初始化界面
主窗口.创建 ("微博批量关注工具", 400, 300)
账号编辑框.创建 (主窗口, "请输入要关注的微博账号,每行一个", 10, 10, 380, 150, , 真)
开始按钮.创建 (主窗口, "开始关注", 100, 170, 80, 30)
停止按钮.创建 (主窗口, "停止", 220, 170, 80, 30)
状态标签.创建 (主窗口, "准备就绪", 10, 210, 380, 20)
进度条.创建 (主窗口, 10, 240, 380, 20)
' 绑定事件
开始按钮.绑定事件 ("被单击", &开始关注)
停止按钮.绑定事件 ("被单击", &停止操作)
主窗口.显示 ()
返回 (0)
.子程序 开始关注
.局部变量 账号文本, 文本型
.局部变量 i, 整数型
' 获取账号列表
账号文本 = 账号编辑框.内容
账号列表 = 分割文本 (账号文本, #换行符, )
.如果真 (取数组成员数 (账号列表) == 0)
信息框 ("请输入至少一个微博账号", 0, "提示")
返回 ()
.如果真结束
' 初始化变量
当前索引 = 1
已关注数 = 0
失败数 = 0
是否停止 = 假
间隔时间 = 3000 ' 3秒间隔
' 初始化微博客户端
微博客户端 = 创建对象 ("Weibo.Client")
.如果 (微博客户端.是否为空 ())
信息框 ("微博客户端初始化失败", 0, "错误")
返回 ()
.否则
微博客户端.登录 () ' 假设已登录
.如果结束
' 开始关注循环
.判断循环首 (当前索引 <= 取数组成员数 (账号列表) 且 是否停止 == 假)
.如果 (关注账号 (账号列表 [当前索引]))
已关注数 = 已关注数 + 1
状态标签.标题 = "正在关注:" + 账号列表 [当前索引] + " (成功:" + 到文本 (已关注数) + " 失败:" + 到文本 (失败数) + ")"
.否则
失败数 = 失败数 + 1
状态标签.标题 = "关注失败:" + 账号列表 [当前索引] + " (成功:" + 到文本 (已关注数) + " 失败:" + 到文本 (失败数) + ")"
.如果结束
进度条.位置 = (当前索引 × 100) ÷ 取数组成员数 (账号列表)
当前索引 = 当前索引 + 1
延迟 (间隔时间)
.判断循环尾 ()
状态标签.标题 = "操作完成!成功:" + 到文本 (已关注数) + " 失败:" + 到文本 (失败数)
返回 ()
.子程序 关注账号, 逻辑型
.参数 账号名, 文本型
.局部变量 结果, 逻辑型
.尝试
结果 = 微博客户端.关注 (账号名)
.捕捉 异常信息
结果 = 假
.尝试结束
返回 (结果)
.子程序 停止操作
是否停止 = 真
状态标签.标题 = "用户手动停止操作"
返回 ()
.版本 2
.程序集 微博批量关注工具
.程序集变量 微博客户端, 对象
.程序集变量 账号列表, 文本型, , "0"
.程序集变量 当前索引, 整数型
.程序集变量 已关注数, 整数型
.程序集变量 失败数, 整数型
.程序集变量 间隔时间, 整数型
.程序集变量 是否停止, 逻辑型
.程序集变量 配置文件路径, 文本型
.程序集变量 日志文件路径, 文本型
.子程序 _启动子程序, 整数型
.局部变量 主窗口, 窗口
.局部变量 控件组, 组框
.局部变量 账号编辑框, 编辑框
.局部变量 开始按钮, 按钮
.局部变量 停止按钮, 按钮
.局部变量 状态标签, 标签
.局部变量 进度条, 进度条
.局部变量 间隔编辑框, 编辑框
.局部变量 保存按钮, 按钮
.局部变量 加载按钮, 按钮
.局部变量 日志按钮, 按钮
' 初始化路径
配置文件路径 = 取运行目录 () + "\config.ini"
日志文件路径 = 取运行目录 () + "\operation.log"
' 创建主界面
主窗口.创建 ("微博批量关注工具 v2.0", 600, 500)
主窗口.置背景颜色 (#白色)
' 创建控件组
控件组.创建 (主窗口, "操作面板", 10, 10, 580, 480)
' 创建账号输入框
账号编辑框.创建 (控件组, "", 20, 30, 540, 200)
账号编辑框.置多行 (真)
账号编辑框.置滚动条 (真)
' 创建操作按钮
开始按钮.创建 (控件组, "开始关注", 50, 250, 100, 40)
停止按钮.创建 (控件组, "停止", 180, 250, 100, 40)
保存按钮.创建 (控件组, "保存配置", 310, 250, 100, 40)
加载按钮.创建 (控件组, "加载配置", 440, 250, 100, 40)
' 创建间隔时间设置
标签.创建 (控件组, "间隔时间(ms):", 50, 310, 100, 20)
间隔编辑框.创建 (控件组, "3000", 160, 310, 100, 20)
' 创建状态显示
状态标签.创建 (控件组, "准备就绪", 20, 350, 540, 30)
状态标签.置字体大小 (12)
进度条.创建 (控件组, 20, 390, 540, 20)
进度条.置范围 (0, 100)
' 创建日志按钮
日志按钮.创建 (控件组, "查看日志", 50, 430, 100, 30)
' 绑定事件
开始按钮.绑定事件 ("被单击", &开始关注)
停止按钮.绑定事件 ("被单击", &停止操作)
保存按钮.绑定事件 ("被单击", &保存配置)
加载按钮.绑定事件 ("被单击", &加载配置)
日志按钮.绑定事件 ("被单击", &查看日志)
' 加载上次配置
加载配置 ()
主窗口.显示 ()
返回 (0)
[此处省略中间200行实现代码...]
.子程序 写日志
.参数 内容, 文本型
.局部变量 文件号, 整数型
.局部变量 时间文本, 文本型
时间文本 = 到文本 (取现行时间 ()) + " "
文件号 = 打开文件 (日志文件路径, #改写, )
移到文件尾 (文件号)
写文本行 (文件号, 时间文本 + 内容)
关闭文件 (文件号)
返回 ()
.版本 2
.程序集 微博API封装
.程序集变量 cookie信息, 文本型
.程序集变量 用户代理, 文本型
.子程序 初始化API
.参数 username, 文本型
.参数 password, 文本型
.局部变量 登录结果, 逻辑型
cookie信息 = ""
用户代理 = "Mozilla/5.0 (Windows NT 10.0; Win64; x64)"
' 模拟登录过程
登录结果 = 模拟登录 (username, password)
返回 (登录结果)
[此处省略150行API实现代码...]
.子程序 关注用户
.参数 uid, 文本型
.局部变量 post数据, 文本型
.局部变量 返回文本, 文本型
.局部变量 结果, 逻辑型
post数据 = "uid=" + uid + "&from=follow"
返回文本 = 网页访问 ("https://weibo.com/api/follow/add", 1, post数据, cookie信息, , 用户代理)
.如果 (寻找文本 (返回文本, "\"code\":\"100000\"", , 假) != -1)
结果 = 真
.否则
结果 = 假
.如果结束
返回 (结果)