deeke-script-app 1.6.2 → 1.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -16,6 +16,16 @@ interface FloatDialogs {
16
16
  */
17
17
  public show(content: string): void;
18
18
 
19
+ /**
20
+ * toast 吐司,与System.toast区别是,可以后台弹出消息
21
+ */
22
+ public toast(content: string): void;
23
+
24
+ /**
25
+ * toastLong 吐司(时间更长),与System.toast区别是,可以后台弹出消息
26
+ */
27
+ public toastLong(content: string): void;
28
+
19
29
  /**
20
30
  * 关闭FloatDialogs开启的所有弹窗
21
31
  */
@@ -103,6 +103,12 @@ interface System {
103
103
  * @param show 是否显示
104
104
  */
105
105
  public setTimeWindowShow(show: boolean);
106
+
107
+ /**
108
+ * 切换无障碍模式,快速模式下,将自动过滤非重要控件。注意通过id或者text方式获取控件不受此模式影响;
109
+ * @param mode 快速模式mode为fast,非快速模式为!fast
110
+ */
111
+ public setAccessibilityMode(mode: string);
106
112
  }
107
113
 
108
114
  export { };
package/deekeScript.json CHANGED
@@ -426,6 +426,64 @@
426
426
  "jsFile": "script/task/redirect.js"
427
427
  }
428
428
  ]
429
+ },
430
+ {
431
+ "title": "新功能",
432
+ "titleHidden": false,
433
+ "hidden": false,
434
+ "methods": [
435
+ {
436
+ "title": "直接运行1",
437
+ "columns": 12,
438
+ "icon": "images/test/score.png",
439
+ "jsFile": "src/task/douyin_zan.js",
440
+ "settingPage": {
441
+ "params": [
442
+ {
443
+ "type": "numberRange",
444
+ "label": "点赞次数",
445
+ "name": "task_douyin_zan_count",
446
+ "max": 60,
447
+ "min": 5,
448
+ "value": 5,
449
+ "step": 1
450
+ },
451
+ {
452
+ "type": "number",
453
+ "label": "评论次数",
454
+ "name": "task_douyin_zan_comment",
455
+ "value": 5
456
+ }
457
+ ]
458
+ }
459
+ },
460
+ {
461
+ "title": "手动运行",
462
+ "columns": 12,
463
+ "runType": "floatSwitch",
464
+ "icon": "images/test/score.png",
465
+ "jsFile": "src/task/douyin_zan.js",
466
+ "settingPage": {
467
+ "params": [
468
+ {
469
+ "type": "numberRange",
470
+ "label": "点赞次数",
471
+ "name": "task_douyin_zan_count",
472
+ "max": 60,
473
+ "min": 5,
474
+ "value": 5,
475
+ "step": 1
476
+ },
477
+ {
478
+ "type": "number",
479
+ "label": "评论次数",
480
+ "name": "task_douyin_zan_comment",
481
+ "value": 5
482
+ }
483
+ ]
484
+ }
485
+ }
486
+ ]
429
487
  }
430
488
  ],
431
489
  "bottomMenus": [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "deeke-script-app",
3
- "version": "1.6.2",
3
+ "version": "1.6.3",
4
4
  "description": "DeekeScript应用",
5
5
  "main": "src/index.ts",
6
6
  "scripts": {
@@ -0,0 +1,20 @@
1
+ let e = {
2
+ setLog(e) {
3
+ Log.setFile(e);
4
+ },
5
+ log() {
6
+ Log.log(arguments), console.log(arguments);
7
+ },
8
+ click(e) {
9
+ this.log("点击了控件:", e), Gesture.click(e.bounds().left + Math.random() * e.bounds().width(), e.bounds().top + Math.random() * e.bounds().height());
10
+ },
11
+ input(e, t) {
12
+ e.setText(t);
13
+ },
14
+ swipe() {
15
+ var e = Device.height() * (.6 + .2 * Math.random()), t = Device.height() * (.2 + .2 * Math.random()), o = Math.random() * Device.width() * .6 + .2 * Device.width();
16
+ Gesture.swipe(o, e, o + .1 * Device.width(), t, 200 + 100 * Math.random());
17
+ }
18
+ };
19
+
20
+ module.exports = e;
@@ -0,0 +1,10 @@
1
+ let e = {
2
+ openApp() {
3
+ App.launch("com.ss.android.ugc.aweme"), System.sleep(8e3);
4
+ },
5
+ id(e) {
6
+ return UiSelector().id("com.ss.android.ugc.aweme:id/" + e);
7
+ }
8
+ };
9
+
10
+ module.exports = e;
@@ -0,0 +1,4 @@
1
+ let e;
2
+
3
+ (e = 310701 == App.getAppVersionCode("com.ss.android.ugc.aweme") ? require("../version/310701.js") : e) || (FloatDialogs.show("当前版本不支持"),
4
+ System.exit()), module.exports = e;
@@ -0,0 +1,8 @@
1
+ let i = require("../../common/util"), r = require("./common"), o = require("./version"), e = {
2
+ zan() {
3
+ var e = r.id(o.video.zan).isVisibleToUser(!0).findOne();
4
+ e && i.click(e);
5
+ }
6
+ };
7
+
8
+ module.exports = e;
@@ -0,0 +1,7 @@
1
+ let e = require("../../common/util"), o = require("../../dy/common/common"), m = require("../../dy/common/video"), c = {
2
+ exec() {
3
+ o.openApp(), m.zan();
4
+ }
5
+ };
6
+
7
+ c.exec();
@@ -0,0 +1,7 @@
1
+ let e = {
2
+ video: {
3
+ zan: "fd9"
4
+ }
5
+ };
6
+
7
+ module.exports = e;
package/script/index.js CHANGED
@@ -1 +0,0 @@
1
- //这个文件不用编写代码
@@ -0,0 +1,38 @@
1
+ let e = {
2
+ log() {
3
+ Log.log(arguments), console.log(arguments);
4
+ },
5
+ comment() {
6
+ var e = UiSelector().id("com.ss.android.ugc.aweme:id/comment_container").isVisibleToUser(!0).findOne(), e = (console.log(e),
7
+ Gesture.click(e.bounds().left + Math.random() * e.bounds().width(), e.bounds().centerY()),
8
+ console.log("打开评论窗口"), System.sleep(1200), UiSelector().className("android.widget.EditText").editable(!0).findOne()), e = (console.log(e),
9
+ Gesture.click(e.bounds().left + Math.random() * e.bounds().width(), e.bounds().centerY()),
10
+ console.log("开始输入评论"), System.sleep(500), UiSelector().className("android.widget.EditText").editable(!0).findOne()), e = (console.log(e),
11
+ Log.log(e), e.setText("太棒了"), System.sleep(500), UiSelector().id("com.ss.android.ugc.aweme:id/dqq").text("发送").findOne());
12
+ console.log(e), Gesture.click(e.bounds().centerX(), e.bounds().centerY()),
13
+ System.sleep(500), Gesture.back(), System.sleep(500);
14
+ },
15
+ backHome() {
16
+ var e;
17
+ console.log("开始返回主页");
18
+ let o = 5;
19
+ for (;(e = UiSelector().id("com.ss.android.ugc.aweme:id/x_t").isVisibleToUser(!0).findOne()) && console.log("在首页"),
20
+ Gesture.back(), console.log("返回"), System.sleep(1e3), !e && 0 <= --o; );
21
+ },
22
+ run() {
23
+ console.log("开始进入应用"), App.launch("com.ss.android.ugc.aweme"), System.sleep(2e3);
24
+ let e = Storage.getInteger("task_douyin_zan_count"), o = Storage.getInteger("task_douyin_zan_comment");
25
+ for (console.log("配置:" + e + " 赞," + o + " 评论"); 0 < e || 0 < o; ) try {
26
+ var s;
27
+ console.log("zanCount: " + e + " commentCount: " + o), 0 <= --e && (s = UiSelector().id("com.ss.android.ugc.aweme:id/fd9").isVisibleToUser(!0).findOne(),
28
+ console.log("点赞tag", s), Gesture.click(s.bounds().left + Math.random() * s.bounds().width(), s.bounds().centerY()),
29
+ System.sleep(1e3), console.log("点赞完成")), 0 <= --o && (this.comment(),
30
+ System.sleep(1e3)), UiSelector().id("com.ss.android.ugc.aweme:id/viewpager").desc("视频").scrollable(!0).findOne().scrollForward(),
31
+ System.sleep(3e3);
32
+ } catch (e) {
33
+ console.log(e), this.backHome();
34
+ }
35
+ }
36
+ };
37
+
38
+ Log.setFile("douyin_zan.js.log"), e.run(), FloatDialogs.show("抖音任务完成");
package/script/task/dy.js CHANGED
@@ -1,14 +1,7 @@
1
- let dyApp = require("./dyApp");
1
+ let e = require("./dyApp"), o = UiSelector().id("name").findOne(), r = {
2
+ toker_view_video_keywords: Storage.get("toker_view_video_keywords"),
3
+ toker_view_video_second: Storage.getInteger("toker_view_video_second"),
4
+ toker_run_sex: Storage.getArray("toker_run_sex")
5
+ };
2
6
 
3
- let tag = UiSelector().id('name').findOne();
4
-
5
- // console.log(tag.click());
6
- let config = {
7
- toker_view_video_keywords: Storage.get('toker_view_video_keywords'),
8
- toker_view_video_second: Storage.getInteger('toker_view_video_second'),
9
- toker_run_sex: Storage.getArray('toker_run_sex'),
10
- }
11
-
12
- console.log(config, dyApp.getName());//获取json文件中的配置参数
13
-
14
- FloatDialogs.show('提示', '请编写业务代码');
7
+ console.log(r, e.getName()), FloatDialogs.show("提示", "请编写业务代码");
@@ -1,7 +1,7 @@
1
- const dyApp = {
2
- getName(){
1
+ let e = {
2
+ getName() {
3
3
  return "appName";
4
4
  }
5
- }
5
+ };
6
6
 
7
- module.exports = dyApp;
7
+ module.exports = e;
@@ -1 +1 @@
1
- FloatDialogs.show('提示', '请编写业务代码');
1
+ FloatDialogs.show("提示", "请编写业务代码");
@@ -1,19 +1,10 @@
1
- let myTask = {
2
- intoApp() {
3
- //打开并进入App
4
- },
5
-
6
- backApp() {
7
- //退出当前App
8
- },
9
-
10
- task(){
11
- //任务代码
12
- },
13
-
1
+ let a = {
2
+ intoApp() {},
3
+ backApp() {},
4
+ task() {},
14
5
  run() {
15
- FloatDialogs.show('提示', '请编写业务代码');
6
+ FloatDialogs.show("提示", "请编写业务代码");
16
7
  }
17
- }
8
+ };
18
9
 
19
- myTask.run();
10
+ a.run();
@@ -0,0 +1 @@
1
+ System.sleep(2e3), Engines.executeScriptStr("engines", "setInterval(function (){console.log('engines任务');}, 1000);");
@@ -0,0 +1,3 @@
1
+ setInterval(function() {
2
+ console.log("延时3秒执行完成");
3
+ }, 3e3);
@@ -0,0 +1,17 @@
1
+ function n() {
2
+ console.log("任务1");
3
+ }
4
+
5
+ function e(n) {
6
+ console.log("任务2", "i=" + n);
7
+ }
8
+
9
+ let o = 0, a = (setInterval(function() {
10
+ n(), o++;
11
+ }, 1e3), {
12
+ run: function() {
13
+ for (;;) e(o), System.sleep(3e3);
14
+ }
15
+ }), l = new java.lang.Thread(new java.lang.Runnable(a));
16
+
17
+ l.start();
package/src/12/main.js ADDED
@@ -0,0 +1,40 @@
1
+
2
+ let res = {
3
+ code: 0,
4
+ data: {
5
+ action: 'task'
6
+ }
7
+ };
8
+
9
+ let index = 0;
10
+
11
+ setInterval(function () {
12
+ index++;
13
+ if (index > 5) {
14
+ console.log('关闭通知');
15
+ res.data.action = 'exit';
16
+ }
17
+
18
+ if (index > 6) {
19
+ res.data.action = "";
20
+ }
21
+
22
+ if (res.code == 0 && res.data.action != "") {
23
+ let taskName = res.data.action;
24
+ if (taskName == 'exit') {
25
+ console.log('关闭除了当前脚本外的其他脚本');
26
+ Engines.closeOther();
27
+ return;
28
+ }
29
+
30
+ if (Engines.childScriptCount() > 0) {
31
+ console.log('正在运行中');
32
+ return;
33
+ }
34
+
35
+ console.log('开始执行任务:' + taskName + ".js");
36
+ Engines.executeScript("./" + taskName + ".js");
37
+ }
38
+
39
+ // Http.get("xxx.com/heard?isRunning=" + (Engines.childScriptCount() > 0 ? true : false));
40
+ }, 3000);
package/src/12/task.js ADDED
@@ -0,0 +1,10 @@
1
+
2
+ let task2 = {
3
+ run() {
4
+ console.log('task运行了');
5
+ System.sleep(5000000);
6
+ console.log('task运行完了');
7
+ }
8
+ }
9
+
10
+ task2.run();
@@ -0,0 +1,28 @@
1
+ let util = {
2
+ setLog(file) {
3
+ Log.setFile(file);
4
+ },
5
+ log() {
6
+ Log.log(arguments);
7
+ console.log(arguments);
8
+ },
9
+
10
+ click(tag) {
11
+ this.log('点击了控件:', tag);
12
+ Gesture.click(tag.bounds().left + Math.random() * tag.bounds().width(), tag.bounds().top + Math.random() * tag.bounds().height());
13
+ },
14
+
15
+ input(tag, text) {
16
+ tag.setText(text);
17
+ },
18
+
19
+ swipe() {
20
+ let bottom = Device.height() * (0.6 + Math.random() * 0.2);
21
+ let top = Device.height() * (0.2 + Math.random() * 0.2);
22
+ let left = Math.random() * Device.width() * 0.6 + Device.width() * 0.2;
23
+
24
+ Gesture.swipe(left, bottom, left + Device.width() * 0.1, top, 200 + 100 * Math.random());
25
+ }
26
+ }
27
+
28
+ module.exports = util;
@@ -0,0 +1,13 @@
1
+
2
+ let common = {
3
+ openApp() {
4
+ App.launch('com.ss.android.ugc.aweme');//打开抖音
5
+ System.sleep(8000);
6
+ },
7
+
8
+ id(idName){
9
+ return UiSelector().id('com.ss.android.ugc.aweme:id/' + idName);
10
+ }
11
+ }
12
+
13
+ module.exports = common;
@@ -0,0 +1,12 @@
1
+ let ids;
2
+
3
+ if (App.getAppVersionCode('com.ss.android.ugc.aweme') == 310701) {
4
+ ids = require('../version/310701.js');
5
+ }
6
+
7
+ if (!ids) {
8
+ FloatDialogs.show('当前版本不支持');
9
+ System.exit();
10
+ }
11
+
12
+ module.exports = ids;
@@ -0,0 +1,14 @@
1
+ let util = require('../../common/util');
2
+ let common = require('./common');
3
+ let ids = require('./version');
4
+
5
+ let video = {
6
+ zan(){
7
+ let zanTag = common.id(ids.video.zan).isVisibleToUser(true).findOne();
8
+ if(zanTag){
9
+ util.click(zanTag);
10
+ }
11
+ }
12
+ }
13
+
14
+ module.exports = video;
@@ -0,0 +1,13 @@
1
+ let util = require('../../common/util');
2
+ let common = require('../../dy/common/common');
3
+ let video = require('../../dy/common/video');
4
+
5
+ let task = {
6
+ exec(){
7
+ common.openApp();
8
+ video.zan();
9
+ }
10
+ }
11
+
12
+
13
+ task.exec();
@@ -0,0 +1,7 @@
1
+ let ids = {
2
+ video: {
3
+ zan: 'fd9',
4
+ }
5
+ }
6
+
7
+ module.exports = ids;
@@ -0,0 +1,89 @@
1
+
2
+ let newTask = {
3
+ log(){
4
+ Log.log(arguments);
5
+ console.log(arguments);
6
+ },
7
+ comment() {
8
+ //注释
9
+ let tag = UiSelector().id('com.ss.android.ugc.aweme:id/comment_container').isVisibleToUser(true).findOne();
10
+ console.log(tag);
11
+ Gesture.click(tag.bounds().left + Math.random() * tag.bounds().width(), tag.bounds().centerY());
12
+ console.log('打开评论窗口');
13
+ System.sleep(1200);
14
+
15
+ let inputTag = UiSelector().className('android.widget.EditText').editable(true).findOne();
16
+ console.log(inputTag);
17
+ Gesture.click(inputTag.bounds().left + Math.random() * inputTag.bounds().width(), inputTag.bounds().centerY());
18
+ console.log('开始输入评论');
19
+ System.sleep(500);
20
+
21
+ let iptTag = UiSelector().className('android.widget.EditText').editable(true).findOne();
22
+ console.log(iptTag);
23
+ Log.log(iptTag);
24
+ iptTag.setText('太棒了');
25
+ System.sleep(500);
26
+
27
+ let sendTag = UiSelector().id('com.ss.android.ugc.aweme:id/dqq').text('发送').findOne();
28
+ console.log(sendTag);
29
+
30
+ Gesture.click(sendTag.bounds().centerX(), sendTag.bounds().centerY());
31
+ System.sleep(500);
32
+ Gesture.back();
33
+ System.sleep(500);
34
+ },
35
+
36
+ backHome() {
37
+ console.log('开始返回主页');
38
+ let homeTag;
39
+ let backMaxCount = 5;
40
+ do {
41
+ homeTag = UiSelector().id('com.ss.android.ugc.aweme:id/x_t').isVisibleToUser(true).findOne();
42
+ if (homeTag) {
43
+ console.log('在首页');
44
+ }
45
+ Gesture.back();
46
+ console.log('返回');
47
+ System.sleep(1000);
48
+ } while (!homeTag && --backMaxCount >= 0);
49
+ },
50
+
51
+ run() {
52
+ console.log('开始进入应用');
53
+ App.launch('com.ss.android.ugc.aweme');
54
+ System.sleep(2000);
55
+ let zanCount = Storage.getInteger('task_douyin_zan_count');
56
+ let commentCount = Storage.getInteger('task_douyin_zan_comment');
57
+
58
+ console.log('配置:' + zanCount + ' 赞,' + commentCount + ' 评论');
59
+ while (zanCount > 0 || commentCount > 0) {
60
+ try {
61
+ console.log('zanCount: ' + zanCount + ' commentCount: ' + commentCount);
62
+ if (--zanCount >= 0) {
63
+ let tag = UiSelector().id('com.ss.android.ugc.aweme:id/fd9').isVisibleToUser(true).findOne();
64
+ console.log('点赞tag', tag);
65
+ Gesture.click(tag.bounds().left + Math.random() * tag.bounds().width(), tag.bounds().centerY());
66
+ System.sleep(1000);
67
+ console.log('点赞完成');
68
+ }
69
+
70
+ if (--commentCount >= 0) {
71
+ this.comment();
72
+ System.sleep(1000);
73
+ }
74
+
75
+
76
+ let tag = UiSelector().id('com.ss.android.ugc.aweme:id/viewpager').desc('视频').scrollable(true).findOne();
77
+ tag.scrollForward();
78
+ System.sleep(3000);
79
+ } catch (e) {
80
+ console.log(e);
81
+ this.backHome();
82
+ }
83
+ }
84
+ },
85
+ }
86
+
87
+ Log.setFile("douyin_zan.js.log");
88
+ newTask.run();
89
+ FloatDialogs.show('抖音任务完成');
package/src/test/2.js ADDED
@@ -0,0 +1,2 @@
1
+ System.sleep(2000);
2
+ Engines.executeScriptStr("engines", "setInterval(function (){console.log('engines任务');}, 1000);");
package/src/test/5.js ADDED
@@ -0,0 +1,4 @@
1
+
2
+ setInterval(function () {
3
+ console.log('延时3秒执行完成');
4
+ }, 3000);
package/src/test/8.js ADDED
@@ -0,0 +1,36 @@
1
+
2
+ //请开始编写DeekeScript代码吧~
3
+
4
+ function taskOne(){
5
+ console.log('任务1');
6
+ }
7
+
8
+ function taskTwo(i){
9
+ console.log('任务2', "i="+i);
10
+ }
11
+
12
+ /**
13
+ Engines.executeScriptStr("engines", "console.log('开始');System.sleep(5000);console.log('完成');");
14
+ */
15
+
16
+ let i = 0;
17
+ setInterval(function(){
18
+ taskOne();
19
+ i++;
20
+ }, 1000);
21
+
22
+ let obj = {
23
+ run: function () {
24
+ while(true){
25
+ taskTwo(i);
26
+ System.sleep(3000);
27
+ }
28
+ }
29
+ }
30
+
31
+ let thread = new java.lang.Thread(new java.lang.Runnable(obj))
32
+ thread.start();
33
+
34
+
35
+
36
+