2025-07-09 15:51:23 +08:00
|
|
|
package com.example.studyapp.job
|
|
|
|
|
|
|
|
import android.content.Context
|
|
|
|
import android.content.Intent
|
|
|
|
import android.os.Handler
|
|
|
|
import android.os.Looper
|
|
|
|
import android.util.Log
|
|
|
|
import androidx.core.app.JobIntentService
|
|
|
|
import com.example.studyapp.autoJS.AutoJsUtil
|
|
|
|
import com.example.studyapp.device.ChangeDeviceInfoUtil
|
|
|
|
import com.example.studyapp.device.LoadDeviceCallback
|
|
|
|
import com.example.studyapp.proxy.ClashUtil
|
|
|
|
import com.example.studyapp.task.TaskUtil
|
|
|
|
import com.example.studyapp.update.ChangeCallBack
|
|
|
|
import com.example.studyapp.update.UpdateUtil.changeDevice
|
|
|
|
import com.example.studyapp.utils.CountryCode
|
|
|
|
import com.example.studyapp.utils.IpUtil
|
|
|
|
import com.example.studyapp.utils.LogFileUtil
|
|
|
|
import org.json.JSONObject
|
|
|
|
import java.util.Locale
|
|
|
|
import java.util.UUID
|
|
|
|
|
|
|
|
class ScriptJobService : JobIntentService() {
|
|
|
|
|
|
|
|
override fun onHandleWork(intent: Intent) {
|
|
|
|
execute(callback = object : JobCallback {
|
|
|
|
override fun onJobFailed() {
|
|
|
|
Handler(Looper.getMainLooper()).postDelayed({
|
|
|
|
StartJobService.onEvent(applicationContext)
|
2025-07-09 17:16:36 +08:00
|
|
|
}, 1000 * 20)
|
2025-07-09 15:51:23 +08:00
|
|
|
}
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
fun execute(callback: JobCallback) {
|
|
|
|
val taskId = UUID.randomUUID().toString()
|
|
|
|
runCatching {
|
|
|
|
ChangeDeviceInfoUtil.getAddDeviceInfo(
|
|
|
|
CountryCode.currentCountry.uppercase(Locale.getDefault()), CountryCode.DEVICE_TYPE,
|
|
|
|
object :LoadDeviceCallback {
|
|
|
|
override fun onLoadDeviceInfo(
|
|
|
|
bigoDevice: JSONObject?,
|
|
|
|
afDevice: JSONObject?
|
|
|
|
) {
|
2025-07-09 18:03:30 +08:00
|
|
|
// ClashUtil.startProxy(applicationContext)
|
2025-07-09 15:51:23 +08:00
|
|
|
ClashUtil.switchProxyWithPort(CountryCode.switchCountry())
|
2025-07-09 18:03:30 +08:00
|
|
|
// ClashUtil.switchProxyGroup("PROXY", "my-socks5-proxy", "http://127.0.0.1:6170")
|
2025-07-09 15:51:23 +08:00
|
|
|
changeDevice(packageName, bigoDevice, afDevice, object : ChangeCallBack {
|
|
|
|
override fun changeSuccess() {
|
|
|
|
runCatching {
|
|
|
|
AutoJsUtil.runAutojsScript(applicationContext)
|
|
|
|
TaskUtil.execSaveTask(
|
|
|
|
applicationContext,
|
|
|
|
androidId,
|
|
|
|
taskId,
|
|
|
|
name,
|
|
|
|
IpUtil.fetchGeoInfo()
|
|
|
|
)
|
2025-07-09 15:56:32 +08:00
|
|
|
TaskUtil.uploadFile(applicationContext, androidId, name)
|
2025-07-09 15:51:23 +08:00
|
|
|
}.onFailure {
|
|
|
|
callback.onJobFailed()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
override fun changeFailed() {
|
|
|
|
LogFileUtil.logAndWrite(
|
|
|
|
Log.ERROR,
|
|
|
|
TAG,
|
|
|
|
"Change device failed",
|
|
|
|
null
|
|
|
|
)
|
|
|
|
callback.onJobFailed()
|
|
|
|
}
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
override fun onLoadDeviceError(error: String?) {
|
|
|
|
callback.onJobFailed()
|
|
|
|
}
|
|
|
|
})
|
|
|
|
}.onFailure {
|
|
|
|
callback.onJobFailed()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
companion object {
|
|
|
|
private const val TAG = "ScriptJobService"
|
|
|
|
private const val jobId = 102
|
|
|
|
private const val androidId = "FyZqWrStUvOpKlMn"
|
|
|
|
|
|
|
|
private var name = ""
|
|
|
|
|
|
|
|
fun onEvent(context: Context, packageName: String) {
|
|
|
|
name = packageName
|
|
|
|
enqueueWork(
|
|
|
|
context,
|
|
|
|
ScriptJobService::class.java, jobId, Intent(
|
|
|
|
context,
|
|
|
|
ScriptJobService::class.java
|
|
|
|
)
|
|
|
|
)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|