deeke-script-app 1.7.0 → 1.7.2

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 (46) hide show
  1. package/.vscode/settings.json +1 -0
  2. package/@deekeScript/@type/Class/Global.d.ts +1 -1
  3. package/@deekeScript/@type/Class/Rect.d.ts +16 -16
  4. package/@deekeScript/@type/Class/UiSelector.d.ts +201 -201
  5. package/@deekeScript/@type/Class/WebSocket.d.ts +49 -49
  6. package/@deekeScript/@type/interface/Access.d.ts +104 -104
  7. package/@deekeScript/@type/interface/App.d.ts +101 -101
  8. package/@deekeScript/@type/interface/DeekeScriptJson.d.ts +13 -13
  9. package/@deekeScript/@type/interface/Device.d.ts +88 -88
  10. package/@deekeScript/@type/interface/Encrypt.d.ts +58 -58
  11. package/@deekeScript/@type/interface/Engines.d.ts +39 -39
  12. package/@deekeScript/@type/interface/Files.d.ts +283 -283
  13. package/@deekeScript/@type/interface/FloatDialogs.d.ts +41 -41
  14. package/@deekeScript/@type/interface/ForegroundServiceBridge.d.ts +31 -31
  15. package/@deekeScript/@type/interface/Hid.d.ts +342 -342
  16. package/@deekeScript/@type/interface/Http.d.ts +94 -43
  17. package/@deekeScript/@type/interface/Images.d.ts +71 -71
  18. package/@deekeScript/@type/interface/Java.d.ts +7 -7
  19. package/@deekeScript/@type/interface/KeyBoards.d.ts +27 -27
  20. package/@deekeScript/@type/interface/Log.d.ts +16 -16
  21. package/@deekeScript/@type/interface/MediaStore.d.ts +146 -146
  22. package/@deekeScript/@type/interface/NotificationBridge.d.ts +28 -28
  23. package/@deekeScript/@type/interface/SocketIOClient.d.ts +76 -76
  24. package/@deekeScript/@type/interface/Storage.d.ts +119 -119
  25. package/@deekeScript/@type/interface/System.d.ts +114 -114
  26. package/@deekeScript/@type/interface/UiObject.d.ts +197 -197
  27. package/README.md +67 -67
  28. package/deekeScript.json +670 -669
  29. package/deekeScript.schema.json +492 -0
  30. package/deekeScriptZipBuild +48 -48
  31. package/gulpfile +17 -17
  32. package/images/test/statistics.png +0 -0
  33. package/init +32 -32
  34. package/jsconfig.json +11 -11
  35. package/package.json +44 -43
  36. package/script/statistics/statistics.js +120 -120
  37. package/script/task.html +4 -4
  38. package/src/statistics/statistics.js +120 -120
  39. package/src/task/douyin_zan.js +89 -89
  40. package/src/task/dy.js +14 -14
  41. package/src/task/dyApp.js +7 -7
  42. package/src/task/tool.js +19 -19
  43. package/src/task.html +4 -4
  44. package/test.json +67 -0
  45. package/uglify-config.json +15 -15
  46. package/update-types.js +118 -0
@@ -1,89 +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('抖音任务完成');
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/task/dy.js CHANGED
@@ -1,14 +1,14 @@
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
+ 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('提示', '请编写业务代码');
package/src/task/dyApp.js CHANGED
@@ -1,7 +1,7 @@
1
- const dyApp = {
2
- getName(){
3
- return "appName";
4
- }
5
- }
6
-
7
- module.exports = dyApp;
1
+ const dyApp = {
2
+ getName(){
3
+ return "appName";
4
+ }
5
+ }
6
+
7
+ module.exports = dyApp;
package/src/task/tool.js CHANGED
@@ -1,19 +1,19 @@
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();
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/src/task.html CHANGED
@@ -1,4 +1,4 @@
1
- <h1>功能说明</h1>
2
-
3
- <h3>一、功能一</h3>
4
- 功能说明:XXXXX
1
+ <h1>功能说明</h1>
2
+
3
+ <h3>一、功能一</h3>
4
+ 功能说明:XXXXX
package/test.json ADDED
@@ -0,0 +1,67 @@
1
+ {
2
+ "$schema": "./deekeScript.schema.json",
3
+ "name": "test",
4
+ "version": "1.0.0",
5
+ "description": "test",
6
+ "versionCode": "100",
7
+ "versionName": "名称",
8
+ "debug": true,
9
+ "icon": "icon.png",
10
+ "head": "head.png",
11
+ "host": "http://127.0.0.1:8080",
12
+ "switchSetting": {
13
+ "alipay": false
14
+ },
15
+ "settingTopBg": "top.png",
16
+ "groups": [
17
+ {
18
+ "title": "测试",
19
+ "methods": [
20
+ {
21
+ "icon": "icon.png",
22
+ "title": "测试",
23
+ "jsFile": "test.js",
24
+ "settingPage": {
25
+ "params": [
26
+ {
27
+ "label": "标题",
28
+ "name": "title",
29
+ "type": "number"
30
+ }
31
+ ]
32
+ }
33
+ }
34
+ ]
35
+ }
36
+ ],
37
+ "apis": [
38
+ {
39
+ "type": "aiSpeechToken",
40
+ "url": "http://127.0.0.1:8080/api/aiSpeechToken"
41
+ }
42
+ ],
43
+ "bottomMenus": [
44
+ {
45
+ "banner": "banner.png",
46
+ "icon": "icon.png",
47
+ "title": "标题",
48
+ "type": "home"
49
+ }
50
+ ],
51
+ "settingLists": [
52
+ {
53
+ "title": "设置",
54
+ "icon": "icon.png",
55
+ "type": "clear",
56
+ "settingPage": {
57
+ "params": [
58
+ {
59
+ "label": "标题",
60
+ "name": "title",
61
+ "type": "number"
62
+ }
63
+ ]
64
+ }
65
+ }
66
+ ]
67
+ }
@@ -1,16 +1,16 @@
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
- }
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
16
  }
@@ -0,0 +1,118 @@
1
+ const fs = require('fs');
2
+ const path = require('path');
3
+ const { execSync } = require('child_process');
4
+
5
+ const PROJECT_ROOT = __dirname;
6
+ const TYPES_FOLDER = path.join(PROJECT_ROOT, '@deekeScript');
7
+ const TEMP_DIR = path.join(PROJECT_ROOT, '.temp-update');
8
+ const PACKAGE_NAME = 'deeke-script-app';
9
+
10
+ // 颜色输出
11
+ const colors = {
12
+ reset: '\x1b[0m',
13
+ green: '\x1b[32m',
14
+ yellow: '\x1b[33m',
15
+ red: '\x1b[31m',
16
+ blue: '\x1b[34m',
17
+ cyan: '\x1b[36m'
18
+ };
19
+
20
+ function log(message, color = 'reset') {
21
+ console.log(`${colors[color]}${message}${colors.reset}`);
22
+ }
23
+
24
+ // 清理临时目录
25
+ function cleanup() {
26
+ if (fs.existsSync(TEMP_DIR)) {
27
+ fs.rmSync(TEMP_DIR, { recursive: true, force: true });
28
+ }
29
+ }
30
+
31
+ // 从npm更新
32
+ async function updateFromNpm() {
33
+ log('\n📦 从npm更新类型定义文件...', 'cyan');
34
+
35
+ try {
36
+ // 检查npm包是否存在
37
+ log('检查npm包版本...', 'blue');
38
+ const latestVersion = execSync(`npm view ${PACKAGE_NAME} version`, { encoding: 'utf-8' }).trim();
39
+ log(`最新版本: ${latestVersion}`, 'green');
40
+
41
+ // 创建临时目录
42
+ if (!fs.existsSync(TEMP_DIR)) {
43
+ fs.mkdirSync(TEMP_DIR, { recursive: true });
44
+ }
45
+
46
+ const tempPackageDir = path.join(TEMP_DIR, 'node_modules', PACKAGE_NAME);
47
+
48
+ // 在临时目录安装npm包
49
+ log('下载并安装npm包...', 'blue');
50
+ const packageJsonPath = path.join(TEMP_DIR, 'package.json');
51
+ fs.writeFileSync(packageJsonPath, JSON.stringify({
52
+ name: 'temp-update',
53
+ version: '1.0.0',
54
+ dependencies: {
55
+ [PACKAGE_NAME]: 'latest'
56
+ }
57
+ }, null, 2));
58
+
59
+ execSync('npm install', {
60
+ cwd: TEMP_DIR,
61
+ stdio: 'pipe',
62
+ env: { ...process.env, npm_config_progress: 'false' }
63
+ });
64
+
65
+ // 检查@deekeScript文件夹是否存在
66
+ const sourceTypesFolder = path.join(tempPackageDir, '@deekeScript');
67
+ if (!fs.existsSync(sourceTypesFolder)) {
68
+ throw new Error('npm包中未找到@deekeScript文件夹');
69
+ }
70
+
71
+ // 备份现有文件夹
72
+ if (fs.existsSync(TYPES_FOLDER)) {
73
+ log('备份现有类型定义文件...', 'yellow');
74
+ const backupFolder = path.join(PROJECT_ROOT, '@deekeScript.backup');
75
+ if (fs.existsSync(backupFolder)) {
76
+ fs.rmSync(backupFolder, { recursive: true, force: true });
77
+ }
78
+ fs.cpSync(TYPES_FOLDER, backupFolder, { recursive: true });
79
+ }
80
+
81
+ // 删除旧文件夹并复制新文件夹
82
+ if (fs.existsSync(TYPES_FOLDER)) {
83
+ fs.rmSync(TYPES_FOLDER, { recursive: true, force: true });
84
+ }
85
+ fs.cpSync(sourceTypesFolder, TYPES_FOLDER, { recursive: true });
86
+
87
+ log('✅ 类型定义文件更新成功!', 'green');
88
+ log(`已更新到版本: ${latestVersion}`, 'green');
89
+
90
+ } catch (error) {
91
+ log(`❌ 从npm更新失败: ${error.message}`, 'red');
92
+ throw error;
93
+ }
94
+ }
95
+
96
+ // 主函数
97
+ async function main() {
98
+ log('🚀 开始更新@deekeScript类型定义文件...', 'cyan');
99
+
100
+ try {
101
+ // 确保在项目根目录
102
+ if (!fs.existsSync(path.join(PROJECT_ROOT, 'package.json'))) {
103
+ throw new Error('请在项目根目录运行此脚本');
104
+ }
105
+
106
+ await updateFromNpm();
107
+
108
+ } catch (error) {
109
+ log(`\n❌ 更新失败: ${error.message}`, 'red');
110
+ process.exit(1);
111
+ } finally {
112
+ // 清理临时文件
113
+ cleanup();
114
+ }
115
+ }
116
+
117
+ // 运行主函数
118
+ main();