易语言通过get的方式多线程刷微视播放量的代码

时间:2022-06-01 21:38:09

全局变量表

?
1
2
3
.版本 2
.全局变量 skey, 文本型
.全局变量 gtk, 文本型

QQ登陆代码

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
.版本 2
.支持库 spec
.程序集 窗口程序集_窗口1
.子程序 _超文本浏览框1_载入开始
.局部变量 正则, 正则表达式
.局部变量 cookie, 文本型
cookie = 网页_取Cookie (“qq.com”, )
调试输出 (cookie)
.如果真 (寻找文本 (cookie, “;skey=”, , 假) ≠ -1)
  正则.创建 (“(@[0-9a-zA-Z]{9})”, , , )
  正则.搜索全部 (cookie)
  skey = 正则.取子匹配文本 (1, 1)
  gtk = 计算Gtk (skey)
  _启动窗口.可视 = 真
  销毁 ()
.如果真结束
.子程序 计算Gtk, 文本型, 公开, 返回计算后的值(Gtk)
.参数 被计算值, 文本型, , skey或者p_skey
.局部变量 hash, 整数型
.局部变量 i, 整数型
.局部变量 skey1, 文本型
hash = 5381
skey1 = 被计算值
.如果真 (skey1 = “”)
  skey1 = 被计算值
.如果真结束
.计次循环首 (取文本长度 (skey1), i)
  hash = hash + 左移 (hash, 5) + 取代码 (skey1, i)
.计次循环尾 ()
hash = 位与 (hash, 2147483647)
返回 (到文本 (hash))
.子程序 _窗口1_可否被关闭, 逻辑型
结束 ()

微视多线程刷播放量的代码

实现此功能需要加载精易模块5.6、鱼刺类_Http模块和鱼刺类_多线程应用模块

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
.版本 2
.支持库 EThread
.程序集 窗口程序集_启动窗口
.程序集变量 临界, 鱼刺类_临界许可
.程序集变量 线程池, 鱼刺类_线程池Ex
.程序集变量 已刷播放量, 文本型
.程序集变量 id, 文本型
.子程序 __启动窗口_创建完毕
_启动窗口.可视 = 假
载入 (窗口1, , 真)
.子程序 工作开始
.局部变量 并发线程数, 整数型
.局部变量 bool, 逻辑型
.局部变量 需刷数量, 整数型
.局部变量 int, 整数型
.局部变量 已派发任务数, 整数型
.如果真 (线程池.取_状态 () ≠ 0)
  返回 ()
.如果真结束
按钮_启动停止.禁止 = 真
按钮_启动停止.标题 = “正在启动”
并发线程数 = 到整数 (编辑框_并发线程数.内容)
.如果真 (并发线程数 < 1)
  并发线程数 = 1
.如果真结束
.如果真 (并发线程数 > 999)
  并发线程数 = 999
.如果真结束
bool = 线程池.创建 (并发线程数, , , , )
.如果真 (bool = 假)
  按钮_启动停止.标题 = “启动”
  按钮_启动停止.禁止 = 假
  返回 ()
.如果真结束
需刷数量 = 到整数 (编辑框_注册数量.内容)
.如果真 (需刷数量 < 1)
  需刷数量 = 1
.如果真结束
按钮_启动停止.标题 = “停止”
按钮_启动停止.禁止 = 假
已派发任务数 = 0
.判断循环首 (已派发任务数 < 需刷数量)
  int = 线程池.取_空闲线程数 ()
  .判断循环首 (int = 0)
    .如果真 (线程池.取_状态 () ≠ 1)
      返回 ()
    .如果真结束
    _延迟 (10)
    int = 线程池.取_空闲线程数 ()
  .判断循环尾 ()
  .计次循环首 (int, )
    线程池.投递任务 (&刷播放量, , )
    已派发任务数 = 已派发任务数 + 1
  .计次循环尾 ()
  _处理事件 ()
.判断循环尾 ()
.判断循环首 (线程池.取_是否空闲 () = 假)
  .如果真 (线程池.取_状态 () ≠ 1)
    返回 ()
  .如果真结束
  _延迟 (10)
.判断循环尾 ()
工作结束 ()
.子程序 工作结束
.如果真 (线程池.取_状态 () ≠ 1)
  返回 () ' 防止频繁调用 其实也没事的 线程池在销毁中被再次调用 销毁 会立即返回 假 不会造成报错
.如果真结束
按钮_启动停止.禁止 = 真
按钮_启动停止.标题 = “正在停止”
线程池.销毁 ()
按钮_启动停止.标题 = “启动”
按钮_启动停止.禁止 = 假
时钟_状态.时钟周期 = 1000
编辑框_作品地址.禁止 = 假
.子程序 刷播放量
.局部变量 http, WinHttpW
.局部变量 data, 文本型
.局部变量 局_skey, 文本型
.局部变量 局_gtk, 文本型
.局部变量 局_id, 文本型
临界.进入 ()
局_skey = skey
局_gtk = gtk
局_id = id
临界.退出 ()
http.Auto ()
http.AutoCookies ()
http.SetTimeouts (3000, 3000, 3000, 3000)
http.Cookies (“skey=” + 局_skey)
http.Open (“POST”, “http://h5.qzone.qq.com/webapp/json/weishi/ReportFeedPlay?g_tk=” + 局_gtk)
http.SetAccept (“application/json”)
http.SetAcceptLanguage (“zh-CN,zh;q=0.9”)
http.SetRequestHeader (“origin”, “https://h5.qzone.qq.com”, )
http.SetReferer (“https://h5.qzone.qq.com/weishi/feed/” + 局_id + “/wsfeed?_proxy=1&_wv=1&id=” + 局_id + “&from=pc&orifrom=”)
http.SetUserAgent (“Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36”)
http.SetContentType (“application/json”)
http.SetXMLHttpRequest ()
http.Send (“{” + #引号 + “feed_id” + #引号 + “:” + #引号 + 局_id + #引号 + “}”, , )
data = http.GetResponseText ()
临界.进入 ()
' 试输出 (data)
已刷播放量 = 文本_取中间 (data, “playnum” + #引号 + “:”, “,” + #引号 + “_idc”, , , , )
' 输出 (已刷播放量)
临界.退出 ()
返回 ()
.子程序 _时钟_状态_周期事件
.局部变量 int, 整数型
' 0=未启动,1=正在工作,2=正在创建,3=正在销毁。
int = 线程池.取_状态 ()
.判断开始 (int = 0)
  标签_线程池状态.标题 = “线程池状态:未启动”
.判断 (int = 1)
  标签_线程池状态.标题 = “线程池状态:正在工作”
.判断 (int = 2)
  标签_线程池状态.标题 = “线程池状态:正在创建”
.判断 (int = 3)
  标签_线程池状态.标题 = “线程池状态:正在销毁”
.默认
.判断结束
int = 线程池.取_线程池容量 ()
标签_线程池容量.标题 = “线程池容量:” + 到文本 (int)
int = 线程池.取_执行线程数 ()
标签_执行线程数.标题 = “执行线程数:” + 到文本 (int)
int = 线程池.取_空闲线程数 ()
标签_空闲线程数.标题 = “空闲线程数:” + 到文本 (int)
int = 线程池.取_队列任务数 ()
标签_队列任务数.标题 = “队列任务数:” + 到文本 (int)
标签_已注册数量.标题 = “已刷播放量:” + 已刷播放量
.子程序 _按钮_启动停止_被单击
.局部变量 str, 文本型
str = 按钮_启动停止.标题
.判断开始 (str = “启动”)
  id = 文本_取中间 (编辑框_作品地址.内容, “weishi/feed/”, “/wsfeed”, , , , )
  .如果 (id ≠ “”)
    编辑框_作品地址.禁止 = 真
    时钟_状态.时钟周期 = 1000
    启动线程 (&工作开始, , )
  .否则
    信息框 (“未在编辑框内找到视频id”, 0, , )
  .如果结束
.判断 (str = “停止”)
  工作结束 ()
.默认
  _处理事件 ()
.判断结束
.子程序 __启动窗口_可否被关闭, 逻辑型
工作结束 ()

运行结果:

易语言通过get的方式多线程刷微视播放量的代码

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对服务器之家的支持。如果你想了解更多相关内容请查看下面相关链接