deeke-script-app 1.9.4 → 2.0.0

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.
Files changed (131) hide show
  1. package/deekeScript.json +700 -699
  2. package/deekeScript.schema.json +826 -821
  3. package/jsconfig.json +12 -25
  4. package/package.json +17 -43
  5. package/src/task/dy.js +14 -14
  6. package/.vscode/settings.json +0 -9
  7. package/@deekeScript/@type/Class/Global.d.ts +0 -2
  8. package/@deekeScript/@type/Class/Rect.d.ts +0 -16
  9. package/@deekeScript/@type/Class/UiSelector.d.ts +0 -201
  10. package/@deekeScript/@type/Class/WebSocket.d.ts +0 -49
  11. package/@deekeScript/@type/README.md +0 -19
  12. package/@deekeScript/@type/interface/Access.d.ts +0 -199
  13. package/@deekeScript/@type/interface/App.d.ts +0 -106
  14. package/@deekeScript/@type/interface/Audio.d.ts +0 -96
  15. package/@deekeScript/@type/interface/Console.d.ts +0 -220
  16. package/@deekeScript/@type/interface/DeekeScript.d.ts +0 -83
  17. package/@deekeScript/@type/interface/DeekeScriptJson.d.ts +0 -13
  18. package/@deekeScript/@type/interface/Device.d.ts +0 -275
  19. package/@deekeScript/@type/interface/DeviceApp.d.ts +0 -97
  20. package/@deekeScript/@type/interface/DeviceHardware.d.ts +0 -36
  21. package/@deekeScript/@type/interface/DeviceKiosk.d.ts +0 -30
  22. package/@deekeScript/@type/interface/DevicePolicy.d.ts +0 -27
  23. package/@deekeScript/@type/interface/Dialogs.d.ts +0 -41
  24. package/@deekeScript/@type/interface/Encrypt.d.ts +0 -58
  25. package/@deekeScript/@type/interface/Engines.d.ts +0 -39
  26. package/@deekeScript/@type/interface/Files.d.ts +0 -283
  27. package/@deekeScript/@type/interface/FloatDialogs.d.ts +0 -71
  28. package/@deekeScript/@type/interface/ForegroundServiceBridge.d.ts +0 -31
  29. package/@deekeScript/@type/interface/Gesture.d.ts +0 -54
  30. package/@deekeScript/@type/interface/Hid.d.ts +0 -342
  31. package/@deekeScript/@type/interface/Http.d.ts +0 -94
  32. package/@deekeScript/@type/interface/Images.d.ts +0 -71
  33. package/@deekeScript/@type/interface/Intent.d.ts +0 -12
  34. package/@deekeScript/@type/interface/Java.d.ts +0 -7
  35. package/@deekeScript/@type/interface/KeyBoards.d.ts +0 -63
  36. package/@deekeScript/@type/interface/Log.d.ts +0 -16
  37. package/@deekeScript/@type/interface/MediaStore.d.ts +0 -146
  38. package/@deekeScript/@type/interface/NotificationBridge.d.ts +0 -28
  39. package/@deekeScript/@type/interface/SocketIOClient.d.ts +0 -76
  40. package/@deekeScript/@type/interface/Storage.d.ts +0 -119
  41. package/@deekeScript/@type/interface/System.d.ts +0 -142
  42. package/@deekeScript/@type/interface/Threads.d.ts +0 -103
  43. package/@deekeScript/@type/interface/UiObject.d.ts +0 -202
  44. package/README.md +0 -67
  45. package/deekeScriptZipBuild +0 -48
  46. package/gulpfile +0 -17
  47. package/images/test/ad.png +0 -0
  48. package/images/test/add.png +0 -0
  49. package/images/test/ai-back.png +0 -0
  50. package/images/test/anchor_focus.png +0 -0
  51. package/images/test/auto-2.png +0 -0
  52. package/images/test/back.png +0 -0
  53. package/images/test/barrage.png +0 -0
  54. package/images/test/clear_fans.png +0 -0
  55. package/images/test/close.png +0 -0
  56. package/images/test/comment-2.png +0 -0
  57. package/images/test/delete.png +0 -0
  58. package/images/test/edit.png +0 -0
  59. package/images/test/fans-inc.png +0 -0
  60. package/images/test/fans.png +0 -0
  61. package/images/test/friend.png +0 -0
  62. package/images/test/grab.png +0 -0
  63. package/images/test/hot.png +0 -0
  64. package/images/test/into.png +0 -0
  65. package/images/test/invite.png +0 -0
  66. package/images/test/live-zan.png +0 -0
  67. package/images/test/live.png +0 -0
  68. package/images/test/member.png +0 -0
  69. package/images/test/msg_back.png +0 -0
  70. package/images/test/new_user.png +0 -0
  71. package/images/test/notice-2.png +0 -0
  72. package/images/test/openai-icon.png +0 -0
  73. package/images/test/precise-user.png +0 -0
  74. package/images/test/private-2.png +0 -0
  75. package/images/test/qingsong.png +0 -0
  76. package/images/test/robot.png +0 -0
  77. package/images/test/rocket.png +0 -0
  78. package/images/test/score_live.png +0 -0
  79. package/images/test/sett.png +0 -0
  80. package/images/test/show.png +0 -0
  81. package/images/test/show_password.png +0 -0
  82. package/images/test/speech-say.png +0 -0
  83. package/images/test/statistics.png +0 -0
  84. package/images/test/task.png +0 -0
  85. package/images/test/team-buy.png +0 -0
  86. package/images/test/tuandui.png +0 -0
  87. package/images/test/user-get.png +0 -0
  88. package/images/test/vertical.png +0 -0
  89. package/images/test/weixin.png +0 -0
  90. package/images/test/xhs-fans.png +0 -0
  91. package/images/test/xhs-wanneng.png +0 -0
  92. package/images/test/xhs-zan.png +0 -0
  93. package/images/test/zan-1.png +0 -0
  94. package/images/test/zan.png +0 -0
  95. package/init +0 -32
  96. package/init.lock +0 -0
  97. package/music/music.mp3 +0 -0
  98. package/script/index.js +0 -1
  99. package/script/statistics/statistics.js +0 -120
  100. package/script/task/douyin_zan.js +0 -89
  101. package/script/task/dy.js +0 -14
  102. package/script/task/dyApp.js +0 -7
  103. package/script/task/dyCity.js +0 -1
  104. package/script/task/exec_js.js +0 -4
  105. package/script/task/tool.js +0 -19
  106. package/script/task.html +0 -4
  107. package/src/index.js +0 -1
  108. package/test.json +0 -133
  109. package/uglify-config.json +0 -16
  110. package/update-types.js +0 -137
  111. /package/{images → src/images}/test/ai.png +0 -0
  112. /package/{images → src/images}/test/app.png +0 -0
  113. /package/{images → src/images}/test/cancel_focus.png +0 -0
  114. /package/{images → src/images}/test/cancel_zan.png +0 -0
  115. /package/{images → src/images}/test/city.png +0 -0
  116. /package/{images → src/images}/test/clear.png +0 -0
  117. /package/{images → src/images}/test/finger.png +0 -0
  118. /package/{images → src/images}/test/home-top.png +0 -0
  119. /package/{images → src/images}/test/home.png +0 -0
  120. /package/{images → src/images}/test/jubao.png +0 -0
  121. /package/{images → src/images}/test/kefu.png +0 -0
  122. /package/{images → src/images}/test/manual.png +0 -0
  123. /package/{images → src/images}/test/notice.png +0 -0
  124. /package/{images → src/images}/test/score.png +0 -0
  125. /package/{images → src/images}/test/setting-top.png +0 -0
  126. /package/{images → src/images}/test/setting.png +0 -0
  127. /package/{images → src/images}/test/speech.png +0 -0
  128. /package/{images → src/images}/test/tool.png +0 -0
  129. /package/{images → src/images}/test/update.png +0 -0
  130. /package/{images → src/images}/test/upload.png +0 -0
  131. /package/{images → src/images}/test/view_back.png +0 -0
@@ -1,89 +0,0 @@
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/script/task/dy.js DELETED
@@ -1,14 +0,0 @@
1
- let dyApp = require("./dyApp");
2
-
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('提示', '请编写业务代码');
@@ -1,7 +0,0 @@
1
- const dyApp = {
2
- getName(){
3
- return "appName";
4
- }
5
- }
6
-
7
- module.exports = dyApp;
@@ -1 +0,0 @@
1
- FloatDialogs.show('提示', '请编写业务代码');
@@ -1,4 +0,0 @@
1
-
2
- console.log("开始执行");
3
-
4
- Dialogs.show('执行了自定义的js代码');
@@ -1,19 +0,0 @@
1
- let myTask = {
2
- intoApp() {
3
- //打开并进入App
4
- },
5
-
6
- backApp() {
7
- //退出当前App
8
- },
9
-
10
- task(){
11
- //任务代码
12
- },
13
-
14
- run() {
15
- FloatDialogs.show('提示', '请编写业务代码');
16
- }
17
- }
18
-
19
- myTask.run();
package/script/task.html DELETED
@@ -1,4 +0,0 @@
1
- <h1>功能说明</h1>
2
-
3
- <h3>一、功能一</h3>
4
- 功能说明:XXXXX
package/src/index.js DELETED
@@ -1 +0,0 @@
1
- //这个文件不用编写代码
package/test.json DELETED
@@ -1,133 +0,0 @@
1
- {
2
- "$schema": "./deekeScript.schema.json",
3
- "name": "test",
4
- "versionCode": "100",
5
- "versionName": "名称",
6
- "debug": true,
7
- "icon": "icon.png",
8
- "head": "head.png",
9
- "host": "http://127.0.0.1:8080",
10
- "switchSetting": {
11
- "alipay": false
12
- },
13
- "settingTopBg": "top.png",
14
- "groups": [
15
- {
16
- "title": "测试",
17
- "methods": [
18
- {
19
- "icon": "icon.png",
20
- "title": "测试",
21
- "jsFile": "test.js",
22
- "settingPage": {
23
- "params": [
24
- {
25
- "label": "标题",
26
- "name": "title",
27
- "type": "number"
28
- },
29
- {
30
- "type": "notice",
31
- "title": "提示"
32
- },
33
- {
34
- "type": "switch",
35
- "label": "标题",
36
- "name": "title",
37
- "value": true
38
- },
39
- {
40
- "type": "number",
41
- "label": "标题",
42
- "name": "title",
43
- "value": 3223
44
- },
45
- {
46
- "type": "digit",
47
- "label": "标题",
48
- "name": "title",
49
- "value": 32
50
- },
51
- {
52
- "type": "numberRange",
53
- "label": "标题",
54
- "name": "title",
55
- "value": 32,
56
- "min": 0,
57
- "max": 100,
58
- "step": 1
59
- },
60
- {
61
- "type": "textArea",
62
- "label": "标题",
63
- "name": "title",
64
- "value": "32",
65
- "lines": 3
66
- },
67
- {
68
- "type": "checkboxGroup",
69
- "label": "标题",
70
- "name": "title",
71
- "children": ["1", "2", "3"],
72
- "values": ["1", "2", "3"]
73
- },
74
- {
75
- "type": "digitRange",
76
- "label": "标题",
77
- "name": "title",
78
- "value": 32,
79
- "min": 0,
80
- "max": 100,
81
- "step": 1
82
- },
83
- {
84
- "type": "radio",
85
- "label": "标题",
86
- "name": "title",
87
- "value": "1",
88
- "dataFrom": "role",
89
- "options": []
90
- },
91
- {
92
- "type": "text",
93
- "label": "标题",
94
- "name": "title",
95
- "value": "32"
96
- }
97
- ]
98
- }
99
- }
100
- ]
101
- }
102
- ],
103
- "apis": [
104
- {
105
- "type": "aiSpeechToken",
106
- "url": "http://127.0.0.1:8080/api/aiSpeechToken"
107
- }
108
- ],
109
- "bottomMenus": [
110
- {
111
- "banner": "banner.png",
112
- "icon": "icon.png",
113
- "title": "标题",
114
- "type": "home"
115
- }
116
- ],
117
- "settingLists": [
118
- {
119
- "title": "设置",
120
- "icon": "icon.png",
121
- "type": "clear",
122
- "settingPage": {
123
- "params": [
124
- {
125
- "label": "标题",
126
- "name": "title",
127
- "type": "number"
128
- }
129
- ]
130
- }
131
- }
132
- ]
133
- }
@@ -1,16 +0,0 @@
1
- {
2
- "compress": {
3
- "drop_console": false,
4
- "unused": true,
5
- "sequences": true,
6
- "dead_code": true,
7
- "unsafe_math": true
8
- },
9
- "mangle": {
10
- "toplevel": true
11
- },
12
- "output": {
13
- "beautify": true,
14
- "comments": "/^!|@license/i"
15
- }
16
- }
package/update-types.js DELETED
@@ -1,137 +0,0 @@
1
- const fs = require('fs');
2
- const path = require('path');
3
- const os = require('os');
4
- const { execSync } = require('child_process');
5
-
6
- const PROJECT_ROOT = __dirname;
7
- const TYPES_FOLDER = path.join(PROJECT_ROOT, '@deekeScript');
8
- /** 旧版脚本使用的临时目录,仅用于清理遗留 */
9
- const LEGACY_TEMP_DIR = path.join(PROJECT_ROOT, '.temp-update');
10
- const PACKAGE_NAME = 'deeke-script-app';
11
-
12
- const ROOT_FILES_FROM_PACKAGE = [
13
- { name: 'deekeScript.schema.json', required: false },
14
- { name: 'update-types.js', required: false }
15
- ];
16
-
17
- // 颜色输出
18
- const colors = {
19
- reset: '\x1b[0m',
20
- green: '\x1b[32m',
21
- yellow: '\x1b[33m',
22
- red: '\x1b[31m',
23
- blue: '\x1b[34m',
24
- cyan: '\x1b[36m'
25
- };
26
-
27
- function log(message, color = 'reset') {
28
- console.log(`${colors[color]}${message}${colors.reset}`);
29
- }
30
-
31
- function cleanupLegacyTemp() {
32
- if (fs.existsSync(LEGACY_TEMP_DIR)) {
33
- fs.rmSync(LEGACY_TEMP_DIR, { recursive: true, force: true });
34
- }
35
- }
36
-
37
- function removeDir(dir) {
38
- if (dir && fs.existsSync(dir)) {
39
- fs.rmSync(dir, { recursive: true, force: true });
40
- }
41
- }
42
-
43
- /**
44
- * 使用 npm pack + 解压 tarball 获取包内容,避免在项目内 npm install
45
- * 触发 deeke-script-app 的 postinstall(init),从而把文件写到错误目录。
46
- */
47
- function updateFromNpm() {
48
- log('\n📦 从 npm 拉取包并更新类型与相关文件...', 'cyan');
49
-
50
- const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'deeke-types-'));
51
-
52
- try {
53
- log('检查 npm 包版本...', 'blue');
54
- const latestVersion = execSync(`npm view ${PACKAGE_NAME} version`, { encoding: 'utf-8' }).trim();
55
- log(`最新版本: ${latestVersion}`, 'green');
56
-
57
- log('下载包(npm pack,不执行安装脚本)...', 'blue');
58
- const packOutput = execSync(`npm pack ${PACKAGE_NAME}@${latestVersion}`, {
59
- cwd: tempDir,
60
- encoding: 'utf-8',
61
- stdio: ['pipe', 'pipe', 'pipe']
62
- }).trim();
63
- const tgzLine = packOutput.split(/\r?\n/).filter(Boolean).pop();
64
- if (!tgzLine) {
65
- throw new Error('npm pack 未返回 tarball 文件名');
66
- }
67
- const tgzName = path.basename(tgzLine.trim());
68
- const tgzPath = path.join(tempDir, tgzName);
69
- if (!fs.existsSync(tgzPath)) {
70
- throw new Error(`未找到 tarball: ${tgzPath}`);
71
- }
72
-
73
- execSync(`tar -xzf ${JSON.stringify(tgzName)}`, {
74
- cwd: tempDir,
75
- stdio: 'pipe'
76
- });
77
-
78
- const packRoot = path.join(tempDir, 'package');
79
- if (!fs.existsSync(packRoot)) {
80
- throw new Error('解压后未找到 package 目录(npm 包结构异常)');
81
- }
82
-
83
- const sourceTypesFolder = path.join(packRoot, '@deekeScript');
84
- if (!fs.existsSync(sourceTypesFolder)) {
85
- throw new Error('npm 包中未找到 @deekeScript 文件夹');
86
- }
87
-
88
- if (fs.existsSync(TYPES_FOLDER)) {
89
- log('备份现有类型定义...', 'yellow');
90
- const backupFolder = path.join(PROJECT_ROOT, '@deekeScript.backup');
91
- removeDir(backupFolder);
92
- fs.cpSync(TYPES_FOLDER, backupFolder, { recursive: true });
93
- }
94
-
95
- if (fs.existsSync(TYPES_FOLDER)) {
96
- fs.rmSync(TYPES_FOLDER, { recursive: true, force: true });
97
- }
98
- fs.cpSync(sourceTypesFolder, TYPES_FOLDER, { recursive: true });
99
- log('✅ 已更新 @deekeScript', 'green');
100
-
101
- for (const { name, required } of ROOT_FILES_FROM_PACKAGE) {
102
- const src = path.join(packRoot, name);
103
- const dest = path.join(PROJECT_ROOT, name);
104
- if (fs.existsSync(src)) {
105
- fs.copyFileSync(src, dest);
106
- log(`✅ 已更新 ${name}`, 'green');
107
- } else if (required) {
108
- throw new Error(`npm 包中未找到必需文件: ${name}`);
109
- } else {
110
- log(`⚠️ 包中暂无 ${name},跳过(发布包含该文件后即可同步)`, 'yellow');
111
- }
112
- }
113
-
114
- log(`已同步自 registry 版本: ${latestVersion}`, 'green');
115
- } finally {
116
- removeDir(tempDir);
117
- }
118
- }
119
-
120
- function main() {
121
- log('🚀 开始从远程包更新 @deekeScript 等文件...', 'cyan');
122
-
123
- try {
124
- if (!fs.existsSync(path.join(PROJECT_ROOT, 'package.json'))) {
125
- throw new Error('请在项目根目录运行此脚本');
126
- }
127
-
128
- updateFromNpm();
129
- } catch (error) {
130
- log(`\n❌ 更新失败: ${error.message}`, 'red');
131
- process.exit(1);
132
- } finally {
133
- cleanupLegacyTemp();
134
- }
135
- }
136
-
137
- main();
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes