From d0a64e32faefeb9dd9e5235f84f6dcd8665040ab Mon Sep 17 00:00:00 2001 From: FongMi Date: Sun, 23 Jun 2024 01:52:04 +0800 Subject: [PATCH] Fix bug --- .../main/java/com/fongmi/android/tv/bean/Parse.java | 3 ++- .../main/java/com/fongmi/android/tv/server/Nano.java | 3 ++- .../src/main/java/com/github/catvod/utils/Util.java | 12 ++++++++++-- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Parse.java b/app/src/main/java/com/fongmi/android/tv/bean/Parse.java index e262759a1..07b424aa0 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Parse.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Parse.java @@ -1,6 +1,7 @@ package com.fongmi.android.tv.bean; import android.text.TextUtils; +import android.util.Base64; import androidx.annotation.NonNull; @@ -127,7 +128,7 @@ public class Parse { public String extUrl() { int index = getUrl().indexOf("?"); if (getExt().isEmpty() || index == -1) return getUrl(); - return getUrl().substring(0, index + 1) + "cat_ext=" + Util.base64(getExt().toString()) + "&" + getUrl().substring(index + 1); + return getUrl().substring(0, index + 1) + "cat_ext=" + Util.base64(getExt().toString(), Base64.DEFAULT | Base64.URL_SAFE | Base64.NO_WRAP) + "&" + getUrl().substring(index + 1); } public HashMap mixMap() { 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 891af9900..a97bea91d 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 @@ -10,6 +10,7 @@ import com.fongmi.android.tv.server.process.Cache; import com.fongmi.android.tv.server.process.Local; import com.fongmi.android.tv.server.process.Process; import com.github.catvod.utils.Asset; +import com.github.catvod.utils.Util; import com.google.common.net.HttpHeaders; import java.io.InputStream; @@ -70,7 +71,7 @@ public class Nano extends NanoHTTPD { if (url.startsWith("/proxy")) return proxy(session); if (url.startsWith("/tvbus")) return success(LiveConfig.getResp()); if (url.startsWith("/device")) return success(Device.get().toString()); - if (url.startsWith("/license")) return success(new String(Base64.decode(url.substring(9), Base64.DEFAULT))); + if (url.startsWith("/license")) return success(Util.decode(url.substring(9))); for (Process process : process) if (process.isRequest(session, url)) return process.doResponse(session, url, files); return getAssets(url.substring(1)); } diff --git a/catvod/src/main/java/com/github/catvod/utils/Util.java b/catvod/src/main/java/com/github/catvod/utils/Util.java index fef6d896a..260794c3b 100644 --- a/catvod/src/main/java/com/github/catvod/utils/Util.java +++ b/catvod/src/main/java/com/github/catvod/utils/Util.java @@ -27,7 +27,11 @@ public class Util { public static final String CHROME = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"; public static String base64(String s) { - return base64(s.getBytes()); + return base64(s, Base64.URL_SAFE | Base64.NO_PADDING); + } + + public static String base64(String s, int flags) { + return base64(s.getBytes(), flags); } public static String base64(byte[] bytes) { @@ -38,8 +42,12 @@ public class Util { return Base64.encodeToString(bytes, flags); } + public static String decode(String s) { + return new String(Base64.decode(s, Base64.URL_SAFE | Base64.NO_PADDING)); + } + public static String basic(String userInfo) { - return "Basic " + base64(userInfo); + return "Basic " + base64(userInfo, Base64.NO_WRAP); } public static byte[] hex2byte(String s) {