diff --git a/app/src/main/java/com/fongmi/android/tv/api/ApiConfig.java b/app/src/main/java/com/fongmi/android/tv/api/ApiConfig.java index 4b866e8c4..7f72e24dd 100644 --- a/app/src/main/java/com/fongmi/android/tv/api/ApiConfig.java +++ b/app/src/main/java/com/fongmi/android/tv/api/ApiConfig.java @@ -88,21 +88,22 @@ public class ApiConfig { }).start(); } - private void loadCache(String url, Callback callback) { - String json = Config.find(url).getJson(); - if (!TextUtils.isEmpty(json)) parseConfig(JsonParser.parseString(json).getAsJsonObject(), callback); - else handler.post(() -> callback.error(R.string.error_config_get)); - } - private void loadConfig(String url, Callback callback) { try { parseConfig(new Gson().fromJson(Decoder.getJson(url), JsonObject.class), callback); } catch (Exception e) { + if (url.isEmpty()) handler.post(() -> callback.error(0)); + else loadCache(url, callback); e.printStackTrace(); - loadCache(url, callback); } } + private void loadCache(String url, Callback callback) { + String json = Config.find(url).getJson(); + if (!TextUtils.isEmpty(json)) parseConfig(JsonParser.parseString(json).getAsJsonObject(), callback); + else handler.post(() -> callback.error(R.string.error_config_get)); + } + private void parseConfig(JsonObject object, Callback callback) { try { parseJson(object); diff --git a/app/src/main/java/com/fongmi/android/tv/db/AppDatabase.java b/app/src/main/java/com/fongmi/android/tv/db/AppDatabase.java index 2114f73fa..a5c790af7 100644 --- a/app/src/main/java/com/fongmi/android/tv/db/AppDatabase.java +++ b/app/src/main/java/com/fongmi/android/tv/db/AppDatabase.java @@ -2,12 +2,9 @@ package com.fongmi.android.tv.db; import android.content.Context; -import androidx.annotation.NonNull; import androidx.room.Database; import androidx.room.Room; import androidx.room.RoomDatabase; -import androidx.room.migration.Migration; -import androidx.sqlite.db.SupportSQLiteDatabase; import com.fongmi.android.tv.App; import com.fongmi.android.tv.bean.Config; @@ -33,7 +30,7 @@ public abstract class AppDatabase extends RoomDatabase { } private static AppDatabase create(Context context) { - return Room.databaseBuilder(context, AppDatabase.class, "tv").addMigrations(MIGRATION_8_9).addMigrations(MIGRATION_9_11).allowMainThreadQueries().fallbackToDestructiveMigration().build(); + return Room.databaseBuilder(context, AppDatabase.class, "tv").allowMainThreadQueries().fallbackToDestructiveMigration().build(); } public abstract KeepDao getKeepDao(); @@ -43,17 +40,4 @@ public abstract class AppDatabase extends RoomDatabase { public abstract ConfigDao getConfigDao(); public abstract HistoryDao getHistoryDao(); - - static final Migration MIGRATION_8_9 = new Migration(8, 9) { - @Override - public void migrate(@NonNull SupportSQLiteDatabase database) { - database.execSQL("CREATE TABLE IF NOT EXISTS `Keep` (`key` TEXT NOT NULL, `siteName` TEXT, `vodName` TEXT, `vodPic` TEXT, `createTime` INTEGER NOT NULL, `cid` INTEGER NOT NULL, PRIMARY KEY(`key`))"); - } - }; - - static final Migration MIGRATION_9_11 = new Migration(9, 11) { - @Override - public void migrate(@NonNull SupportSQLiteDatabase database) { - } - }; } diff --git a/app/src/main/java/com/fongmi/android/tv/ui/custom/CustomWebView.java b/app/src/main/java/com/fongmi/android/tv/ui/custom/CustomWebView.java index 165b497dd..6226d1ead 100644 --- a/app/src/main/java/com/fongmi/android/tv/ui/custom/CustomWebView.java +++ b/app/src/main/java/com/fongmi/android/tv/ui/custom/CustomWebView.java @@ -114,7 +114,7 @@ public class CustomWebView extends WebView { handler.removeCallbacks(mTimer); handler.post(() -> { if (callback != null) callback.onParseSuccess(news, url, ""); - SpiderDebug.log(url); + SpiderDebug.log(url + "," + headers); stop(false); }); } 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 b5e59eea6..930c8260d 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 @@ -70,9 +70,9 @@ public class FileUtil { BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(getLocal(path)))); StringBuilder sb = new StringBuilder(); String text; - while ((text = br.readLine()) != null) sb.append(text); + while ((text = br.readLine()) != null) sb.append(text).append("\n"); br.close(); - return sb.toString(); + return Utils.substring(sb.toString()); } catch (Exception e) { return ""; } diff --git a/app/src/main/java/com/fongmi/android/tv/utils/Sniffer.java b/app/src/main/java/com/fongmi/android/tv/utils/Sniffer.java index 537cbb10a..dcd360309 100644 --- a/app/src/main/java/com/fongmi/android/tv/utils/Sniffer.java +++ b/app/src/main/java/com/fongmi/android/tv/utils/Sniffer.java @@ -8,8 +8,6 @@ public class Sniffer { "http((?!http).){12,}?\\.(m3u8|mp4|flv|avi|mkv|rm|wmv|mpg)\\?.*|" + "http((?!http).){12,}\\.(m3u8|mp4|flv|avi|mkv|rm|wmv|mpg)|" + "http((?!http).)*?xg.php\\?id=|" + - "http((?!http).)*?cdn-tos|" + - "http((?!http).)*?obj/tos|" + "http((?!http).)*?video/tos*" ); } diff --git a/app/src/main/java/com/fongmi/android/tv/utils/Utils.java b/app/src/main/java/com/fongmi/android/tv/utils/Utils.java index 4d5a5ed21..311549da8 100644 --- a/app/src/main/java/com/fongmi/android/tv/utils/Utils.java +++ b/app/src/main/java/com/fongmi/android/tv/utils/Utils.java @@ -101,6 +101,15 @@ public class Utils { return Base64.encodeToString(ext.getBytes(), Base64.DEFAULT | Base64.NO_WRAP); } + public static String substring(String text) { + return substring(text, 1); + } + + public static String substring(String text, int num) { + if (text != null && text.length() > num) return text.substring(0, text.length() - num); + return text; + } + public static int getDigit(String text) { try { if (text.startsWith("上") || text.startsWith("下")) return -1;