Skip to content

Commit

Permalink
增加定时任务备份和恢复的工具,readme增加简易在线图色工具地址
Browse files Browse the repository at this point in the history
  • Loading branch information
TonyJiangWJ committed Sep 3, 2020
1 parent 02d3386 commit 3f2f717
Show file tree
Hide file tree
Showing 5 changed files with 145 additions and 0 deletions.
5 changes: 5 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,11 @@

```

## 开发辅助

- 在线取色工具:[图片base64取色](https://tonyjiangwj.gitee.io/statics/pic_base64.html)
- 在线多点取色路径生成: [多点取色辅助工具](https://tonyjiangwj.gitee.io/statics/multi_color_assist.html)

## lib下的js说明

- 待补充
8 changes: 8 additions & 0 deletions 定时任务备份与恢复/使用说明.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
本脚本用于在不同的AutoJS软件之间备份和恢复定时任务
执行 备份所有的定时任务.js 会在当前文件夹下创建 tasks.json 保存当前AutoJS下的 定时任务(TimedTask)和意图任务(IntentTask)
切换到需要重载的AutoJS下,执行 重载备份的定时任务.js 会读取当前文件夹下的tasks.js备份信息,并设置到当前的AutoJS软件下。
默认情况下重载会移除当前已经添加的定时任务,如果不想要自动移除 请将removeExists设为false。
使用场景:
想要将免费版的AutoJS下的定时任务复制到Pro版。
1, 先打开免费版AutoJS,运行 备份所有的定时任务.js 此时会在文件夹下生成 tasks.json
2, 打开AutoJS Pro,运行 重载备份的定时任务.js 此时会将 tasks.json 中的备份信息加载进来
26 changes: 26 additions & 0 deletions 定时任务备份与恢复/备份所有的定时任务.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
/*
* @Author: TonyJiangWJ
* @Date: 2020-05-18 13:28:10
* @Last Modified by: TonyJiangWJ
* @Last Modified time: 2020-08-27 13:31:59
* @Description:
*/
let packageName = context.getPackageName() === 'org.autojs.autojsm' ? org.autojs.autojsm : org.autojs.autojs
let isPro = context.getPackageName() === 'org.autojs.autojspro'
let TimedTaskManager = packageName.timing.TimedTaskManager
if (isPro) {
packageName = com.stardust.autojs.core
TimedTaskManager = packageName.timing.TimedTaskManager.Companion
}
let timedTasks = TimedTaskManager.getInstance().getAllTasksAsList()
let intentTasks = TimedTaskManager.getInstance().getAllIntentTasksAsList()

log('timedTasks: ' + JSON.stringify(timedTasks))
log('intentTasks: ' + JSON.stringify(intentTasks))
let tasks = {
timedTasks: timedTasks,
intentTasks: intentTasks
}

files.write(files.cwd() + "/tasks.json", JSON.stringify(tasks))
toast('done!')
29 changes: 29 additions & 0 deletions 定时任务备份与恢复/清空所有的定时任务.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
/*
* @Author: TonyJiangWJ
* @Date: 2020-08-27 13:53:34
* @Last Modified by: TonyJiangWJ
* @Last Modified time: 2020-08-27 13:54:21
* @Description:
*/
let packageName = context.getPackageName() === 'org.autojs.autojsm' ? org.autojs.autojsm : org.autojs.autojs
let isPro = context.getPackageName() === 'org.autojs.autojspro'
let TimedTaskManager = packageName.timing.TimedTaskManager
if (isPro) {
packageName = com.stardust.autojs.core
TimedTaskManager = packageName.timing.TimedTaskManager.Companion
}
let timedTasks = TimedTaskManager.getInstance().getAllTasksAsList()
let intentTasks = TimedTaskManager.getInstance().getAllIntentTasksAsList()
log('exist timedTasks: ' + JSON.stringify(timedTasks))
log('exist intentTasks: ' + JSON.stringify(intentTasks))

let taskManager = TimedTaskManager.getInstance()
for (let i = 0; i < timedTasks.size(); i++) {
let task = timedTasks.get(i)
taskManager[isPro ? 'removeTaskSync' : 'removeTask'](task)
}
for (let i = 0; i < intentTasks.size(); i++) {
let task = intentTasks.get(i)
taskManager[isPro ? 'removeTaskSync' : 'removeTask'](task)
}
toastLog('done!')
77 changes: 77 additions & 0 deletions 定时任务备份与恢复/重载备份的定时任务.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
/*
* @Author: TonyJiangWJ
* @Date: 2020-05-18 13:28:10
* @Last Modified by: TonyJiangWJ
* @Last Modified time: 2020-08-27 13:52:52
* @Description:
*/
let packageName = context.getPackageName() === 'org.autojs.autojsm' ? org.autojs.autojsm : org.autojs.autojs
let isPro = context.getPackageName() === 'org.autojs.autojspro'
let TimedTaskManager = packageName.timing.TimedTaskManager
if (isPro) {
packageName = com.stardust.autojs.core
TimedTaskManager = packageName.timing.TimedTaskManager.Companion
}
let timedTasks = TimedTaskManager.getInstance().getAllTasksAsList()
let intentTasks = TimedTaskManager.getInstance().getAllIntentTasksAsList()
log('exist timedTasks: ' + JSON.stringify(timedTasks))
log('exist intentTasks: ' + JSON.stringify(intentTasks))

let taskManager = TimedTaskManager.getInstance()
let removeExists = true
if (removeExists) {
for (let i = 0; i < timedTasks.size(); i++) {
let task = timedTasks.get(i)
taskManager[isPro ? 'removeTaskSync' : 'removeTask'](task)
}
for (let i = 0; i < intentTasks.size(); i++) {
let task = intentTasks.get(i)
taskManager[isPro ? 'removeTaskSync' : 'removeTask'](task)
}
}

let allTasks = JSON.parse(files.read(files.cwd() + "/tasks.json"))

for (let i = 0; i < allTasks.timedTasks.length; i++) {
let task = allTasks.timedTasks[i]
taskManager[isPro ? 'addTaskSync' : 'addTask'](convertTimeTask(task))
}
for (let i = 0; i < allTasks.intentTasks.length; i++) {
let task = allTasks.intentTasks[i]
taskManager[isPro ? 'addTaskSync' : 'addTask'](convertIntentTask(task))
}

toast('done!')

//
function convertTimeTask(task) {
let timedTask = new packageName.timing.TimedTask()
if (task.scriptPath) {
timedTask.setTimeFlag(task.timeFlag)
timedTask.setDelay(task.delay)
timedTask.setInterval(task.interval)
timedTask.setLoopTimes(task.loopTimes)
timedTask.setMillis(task.millis)
timedTask.setScriptPath(task.scriptPath)
timedTask.setScheduled(false)
} else {
timedTask.setTimeFlag(task.mTimeFlag)
timedTask.setDelay(task.mDelay)
timedTask.setInterval(task.mInterval)
timedTask.setLoopTimes(task.mLoopTimes)
timedTask.setMillis(task.mMillis)
timedTask.setScriptPath(task.mScriptPath)
timedTask.setScheduled(false)
}
return timedTask
}

function convertIntentTask(task) {
let intentTask = new packageName.timing.IntentTask()
intentTask.setScriptPath(task.mScriptPath)
intentTask.setAction(task.mAction)
intentTask.setCategory(task.mCategory)
intentTask.setDataType(task.mDataType)
intentTask.setLocal(task.mLocal)
return intentTask
}

0 comments on commit 3f2f717

Please sign in to comment.