From 9109e262daff1560aaf27a61907fc577f7afa9d0 Mon Sep 17 00:00:00 2001 From: FongMi Date: Wed, 21 Dec 2022 09:39:41 +0800 Subject: [PATCH] Clean code --- .../com/fongmi/android/tv/server/Nano.java | 57 ++----------------- .../com/fongmi/android/tv/utils/FileUtil.java | 33 ++++++++--- app/src/main/res/raw/index.html | 2 +- app/src/main/res/raw/script.js | 4 +- 4 files changed, 33 insertions(+), 63 deletions(-) diff --git a/app/src/main/java/com/fongmi/android/tv/server/Nano.java b/app/src/main/java/com/fongmi/android/tv/server/Nano.java index 75529f646..9998a2093 100644 --- a/app/src/main/java/com/fongmi/android/tv/server/Nano.java +++ b/app/src/main/java/com/fongmi/android/tv/server/Nano.java @@ -1,7 +1,5 @@ package com.fongmi.android.tv.server; -import android.os.Environment; - import com.fongmi.android.tv.R; import com.fongmi.android.tv.api.ApiConfig; import com.fongmi.android.tv.server.process.InputRequestProcess; @@ -11,16 +9,10 @@ import com.fongmi.android.tv.utils.FileUtil; import com.google.gson.JsonArray; import com.google.gson.JsonObject; -import org.apache.commons.compress.archivers.zip.ZipArchiveEntry; -import org.apache.commons.compress.archivers.zip.ZipArchiveInputStream; - -import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; -import java.io.FileOutputStream; import java.io.InputStream; -import java.io.OutputStream; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; @@ -126,28 +118,10 @@ public class Nano extends NanoHTTPD { private Response doUpload(Map params, Map files) { String path = params.get("path"); for (String k : files.keySet()) { - if (k.startsWith("files-")) { - String fn = params.get(k); - String tmpFile = files.get(k); - File tmp = new File(tmpFile); - String root = Environment.getExternalStorageDirectory().getAbsolutePath(); - File file = new File(root + "/" + path + "/" + fn); - if (file.exists()) - file.delete(); - if (tmp.exists()) { - if (fn.toLowerCase().endsWith(".zip")) { - try { - unzip(tmp, root + "/" + path); - } catch (Exception e) { - e.printStackTrace(); - } - } else { - FileUtil.copy(tmp, file); - } - } - if (tmp.exists()) - tmp.delete(); - } + String fn = params.get(k); + File temp = new File(files.get(k)); + if (fn.toLowerCase().endsWith(".zip")) FileUtil.unzip(temp, FileUtil.getRootPath() + File.separator + path); + else FileUtil.copy(temp, FileUtil.getRootFile(path + File.separator + fn)); } return newFixedLengthResponse(Response.Status.OK, MIME_PLAINTEXT, "OK"); } @@ -196,29 +170,6 @@ public class Nano extends NanoHTTPD { return info.toString(); } - private void unzip(File file, String path) throws Exception { - try (ZipArchiveInputStream is = new ZipArchiveInputStream(new BufferedInputStream(new FileInputStream(file)))) { - ZipArchiveEntry entry; - while ((entry = is.getNextZipEntry()) != null) { - if (entry.isDirectory()) { - new File(path, entry.getName()).mkdirs(); - } else { - extractFile(is, path + File.separator + entry.getName()); - } - } - } - } - - private void extractFile(InputStream is, String path) { - try (OutputStream out = new FileOutputStream(path)) { - int len; - byte[] buf = new byte[2048]; - while ((len = is.read(buf)) > 0) out.write(buf, 0, len); - } catch (Exception e) { - e.printStackTrace(); - } - } - public static Response createPlainTextResponse(Response.IStatus status, String text) { return newFixedLengthResponse(status, MIME_PLAINTEXT, text); } diff --git a/app/src/main/java/com/fongmi/android/tv/utils/FileUtil.java b/app/src/main/java/com/fongmi/android/tv/utils/FileUtil.java index 9efd33c40..ee1c77b77 100644 --- a/app/src/main/java/com/fongmi/android/tv/utils/FileUtil.java +++ b/app/src/main/java/com/fongmi/android/tv/utils/FileUtil.java @@ -11,6 +11,11 @@ import androidx.core.content.FileProvider; import com.fongmi.android.tv.App; +import org.apache.commons.compress.archivers.zip.ZipArchiveEntry; +import org.apache.commons.compress.archivers.zip.ZipArchiveInputStream; +import org.apache.commons.compress.utils.IOUtils; + +import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; @@ -18,7 +23,6 @@ import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; -import java.io.OutputStream; import java.net.URLConnection; import java.security.MessageDigest; @@ -94,17 +98,32 @@ public class FileUtil { } } - public static void copy(File src, File dst) { - try (InputStream in = new FileInputStream(src)) { - try (OutputStream out = new FileOutputStream(dst)) { - int len; - byte[] buf = new byte[1024]; - while ((len = in.read(buf)) > 0) out.write(buf, 0, len); + public static void unzip(File target, String path) { + try (ZipArchiveInputStream in = new ZipArchiveInputStream(new BufferedInputStream(new FileInputStream(target)))) { + ZipArchiveEntry entry; + while ((entry = in.getNextZipEntry()) != null) { + File out = new File(path, entry.getName()); + if (entry.isDirectory()) out.mkdirs(); + else copy(in, out); } } catch (Exception ignored) { } } + public static void copy(File in, File out) { + try { + IOUtils.copy(new FileInputStream(in), new FileOutputStream(out)); + } catch (Exception ignored) { + } + } + + public static void copy(InputStream in, File out) { + try { + IOUtils.copy(in, new FileOutputStream(out)); + } catch (Exception ignored) { + } + } + public static String getMd5(File file) { try { MessageDigest digest = MessageDigest.getInstance("MD5"); diff --git a/app/src/main/res/raw/index.html b/app/src/main/res/raw/index.html index d60f3b12f..b360e7a9c 100644 --- a/app/src/main/res/raw/index.html +++ b/app/src/main/res/raw/index.html @@ -141,7 +141,7 @@