小红书.apk(点击下载) / UploadInfoCollector.java
package com.qiniu.android.collect;
import com.qiniu.android.http.UserAgent;
import com.qiniu.android.storage.UpToken;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.charset.Charset;
import java.util.Date;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
public final class UploadInfoCollector {
private static OkHttpClient httpClient;
private static UploadInfoCollector httpCollector;
private static ExecutorService singleServer;
private long lastUpload;
private File recordFile = null;
private final String recordFileName;
private final String serverURL;
public static abstract class RecordMsg {
public abstract String toRecordMsg();
}
private UploadInfoCollector(String str, String str2) {
this.recordFileName = str;
this.serverURL = str2;
try {
reset0();
} catch (Exception e14) {
e14.printStackTrace();
}
}
private static OkHttpClient getHttpClient() {
if (httpClient == null) {
OkHttpClient.Builder builder = new OkHttpClient.Builder();
TimeUnit timeUnit = TimeUnit.SECONDS;
builder.connectTimeout(10, timeUnit);
builder.readTimeout(15, timeUnit);
builder.writeTimeout((long) ((((Config.interval / 2) + 1) * 60) - 10), timeUnit);
httpClient = builder.build();
}
return httpClient;
}
private static UploadInfoCollector getHttpCollector() {
if (httpCollector == null) {
httpCollector = new UploadInfoCollector("_qiniu_record_file_hs5z9lo7anx03", "https://uplog.qbox.me/log/4");
}
return httpCollector;
}
private File getRecordDir(String str) {
return new File(str);
}
private void handle0(final UpToken upToken, final RecordMsg recordMsg) {
ExecutorService executorService = singleServer;
if (executorService != null && !executorService.isShutdown()) {
singleServer.submit(new Runnable() {
/* class com.qiniu.android.collect.UploadInfoCollector.AnonymousClass1 */
public void run() {
if (Config.isRecord) {
try {
UploadInfoCollector.this.tryRecode(recordMsg.toRecordMsg(), UploadInfoCollector.this.recordFile);
} catch (Throwable unused) {
}
}
}
});
if (Config.isUpload && !UpToken.isInvalid(upToken)) {
singleServer.submit(new Runnable() {
/* class com.qiniu.android.collect.UploadInfoCollector.AnonymousClass2 */
public void run() {
if (Config.isRecord && Config.isUpload) {
try {
UploadInfoCollector uploadInfoCollector = UploadInfoCollector.this;
uploadInfoCollector.tryUploadAndClean(upToken, uploadInfoCollector.recordFile);
} catch (Throwable unused) {
}
}
}
});
}
}
}
public static void handleHttp(UpToken upToken, RecordMsg recordMsg) {
try {
if (Config.isRecord) {
getHttpCollector().handle0(upToken, recordMsg);
}
} catch (Throwable unused) {
}
}
public static void handleUpload(UpToken upToken, RecordMsg recordMsg) {
handleHttp(upToken, recordMsg);
}
private void initRecordFile(File file) throws IOException {
if (file == null) {
throw new IOException("record's dir is not setted");
} else if (!file.exists()) {
if (!file.mkdirs()) {
throw new IOException("mkdir failed: " + file.getAbsolutePath());
}
} else if (file.isDirectory()) {
this.recordFile = new File(file, this.recordFileName);
} else {
throw new IOException(file.getAbsolutePath() + " is not a dir");
}
}
private boolean isOk(Response response) {
return response.isSuccessful() && response.header("X-Reqid") != null;
}
private void reset0() throws IOException {
ExecutorService executorService;
if (Config.isRecord) {
initRecordFile(getRecordDir(Config.recordDir));
}
if (!Config.isRecord && (executorService = singleServer) != null) {
executorService.shutdown();
}
if (Config.isRecord) {
ExecutorService executorService2 = singleServer;
if (executorService2 == null || executorService2.isShutdown()) {
singleServer = Executors.newSingleThreadExecutor();
}
}
}
/* access modifiers changed from: private */
/* access modifiers changed from: public */
private void tryRecode(String str, File file) {
if (Config.isRecord && file.length() < ((long) Config.maxRecordFileSize)) {
writeToFile(file, str + "\n", true);
}
}
/* access modifiers changed from: private */
/* access modifiers changed from: public */
private void tryUploadAndClean(UpToken upToken, File file) {
if (Config.isUpload && file.length() > ((long) Config.uploadThreshold)) {
long time = new Date().getTime();
if (time > this.lastUpload + ((long) (Config.interval * 60 * 1000))) {
this.lastUpload = time;
if (upload(upToken, file)) {
writeToFile(file, "", false);
writeToFile(file, "", false);
}
}
}
}
private boolean upload(UpToken upToken, File file) {
try {
OkHttpClient httpClient2 = getHttpClient();
RequestBody create = RequestBody.create(MediaType.parse("text/plain"), file);
Request.Builder url = new Request.Builder().url(this.serverURL);
Request.Builder post = url.addHeader("Authorization", "UpToken " + upToken.token).addHeader("User-Agent", UserAgent.instance().getUa(upToken.accessKey)).post(create);
String str = UploadInfoElement.x_log_client_id;
if (str != "") {
post.addHeader("X-Log-Client-Id", str);
}
Response execute = httpClient2.newCall(post.build()).execute();
UploadInfoElement.x_log_client_id = execute.header("X-Log-Client-Id");
try {
return isOk(execute);
} finally {
try {
execute.body().close();
} catch (Exception unused) {
}
}
} catch (Exception e14) {
e14.printStackTrace();
return false;
}
}
/* JADX WARNING: Removed duplicated region for block: B:25:0x0039 A[SYNTHETIC, Splitter:B:25:0x0039] */
/* JADX WARNING: Removed duplicated region for block: B:30:? A[RETURN, SYNTHETIC] */
/* JADX WARNING: Removed duplicated region for block: B:32:? A[RETURN, SYNTHETIC] */
private static void writeToFile(File file, String str, boolean z14) {
Throwable th3;
FileNotFoundException e14;
IOException e15;
FileOutputStream fileOutputStream = null;
try {
FileOutputStream fileOutputStream2 = new FileOutputStream(file, z14);
try {
fileOutputStream2.write(str.getBytes(Charset.forName("UTF-8")));
fileOutputStream2.flush();
try {
fileOutputStream2.close();
} catch (IOException unused) {
}
} catch (FileNotFoundException e16) {
e14 = e16;
fileOutputStream = fileOutputStream2;
e14.printStackTrace();
if (fileOutputStream == null) {
return;
}
fileOutputStream.close();
} catch (IOException e17) {
e15 = e17;
fileOutputStream = fileOutputStream2;
try {
e15.printStackTrace();
if (fileOutputStream == null) {
return;
}
fileOutputStream.close();
} catch (Throwable th4) {
th3 = th4;
if (fileOutputStream != null) {
try {
fileOutputStream.close();
} catch (IOException unused2) {
}
}
throw th3;
}
} catch (Throwable th5) {
th3 = th5;
fileOutputStream = fileOutputStream2;
if (fileOutputStream != null) {
}
throw th3;
}
} catch (FileNotFoundException e18) {
e14 = e18;
e14.printStackTrace();
if (fileOutputStream == null) {
}
fileOutputStream.close();
} catch (IOException e19) {
e15 = e19;
e15.printStackTrace();
if (fileOutputStream == null) {
}
fileOutputStream.close();
}
}
}