- 首页热点推荐不出现的bug修复

- 嗅探的一些bug修复
pull/59/head
okjackcaptain 4 years ago
parent e9fc43e256
commit 675e81fe6c
  1. 30
      app/src/main/java/com/github/tvbox/osc/ui/activity/PlayActivity.java
  2. 32
      app/src/main/java/com/github/tvbox/osc/ui/fragment/PlayFragment.java
  3. 13
      app/src/main/java/com/github/tvbox/osc/ui/fragment/UserFragment.java
  4. 54
      app/src/main/java/com/github/tvbox/osc/util/UA.java

@ -584,6 +584,8 @@ public class PlayActivity extends BaseActivity {
String flag = info.optString("flag");
String url = info.getString("url");
HashMap<String, String> headers = null;
//web给个默认的UA
webUserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.54 Safari/537.36";
webHeaderMap = null;
if (info.has("header")) {
try {
@ -595,6 +597,9 @@ public class PlayActivity extends BaseActivity {
headers = new HashMap<>();
}
headers.put(key, hds.getString(key));
if (key.equalsIgnoreCase("user-agent")) {
webUserAgent = hds.getString(key).trim();
}
}
webHeaderMap = headers;
} catch (Throwable th) {
@ -813,6 +818,7 @@ public class PlayActivity extends BaseActivity {
private String progressKey;
private String parseFlag;
private String webUrl;
private String webUserAgent;
private Map<String, String > webHeaderMap;
private void initParse(String flag, boolean useParse, String playUrl, final String url) {
@ -1137,30 +1143,15 @@ public class PlayActivity extends BaseActivity {
}
}
// void loadUrl(String url) {
// runOnUiThread(new Runnable() {
// @Override
// public void run() {
// if (mXwalkWebView != null) {
// mXwalkWebView.stopLoading();
// mXwalkWebView.clearCache(true);
// mXwalkWebView.loadUrl(url);
// }
// if (mSysWebView != null) {
// mSysWebView.stopLoading();
// mSysWebView.clearCache(true);
// mSysWebView.loadUrl(url);
// }
// }
// });
// }
void loadUrl(String url) {
runOnUiThread(new Runnable() {
@Override
public void run() {
if (mXwalkWebView != null) {
mXwalkWebView.stopLoading();
Map<String, String > map = new HashMap<String, String>() ;
if(webUserAgent != null) {
mXwalkWebView.getSettings().setUserAgentString(webUserAgent);
}
//mXwalkWebView.clearCache(true);
if(webHeaderMap != null){
mXwalkWebView.loadUrl(url,webHeaderMap);
@ -1170,6 +1161,9 @@ public class PlayActivity extends BaseActivity {
}
if (mSysWebView != null) {
mSysWebView.stopLoading();
if(webUserAgent != null) {
mSysWebView.getSettings().setUserAgentString(webUserAgent);
}
//mSysWebView.clearCache(true);
if(webHeaderMap != null){
mSysWebView.loadUrl(url,webHeaderMap);

@ -582,6 +582,8 @@ public class PlayFragment extends BaseLazyFragment {
String flag = info.optString("flag");
String url = info.getString("url");
HashMap<String, String> headers = null;
//web给个默认的UA
webUserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.54 Safari/537.36";
webHeaderMap = null;
if (info.has("header")) {
try {
@ -593,6 +595,9 @@ public class PlayFragment extends BaseLazyFragment {
headers = new HashMap<>();
}
headers.put(key, hds.getString(key));
if (key.equalsIgnoreCase("user-agent")) {
webUserAgent = hds.getString(key).trim();
}
}
webHeaderMap = headers;
} catch (Throwable th) {
@ -832,6 +837,7 @@ public class PlayFragment extends BaseLazyFragment {
private String progressKey;
private String parseFlag;
private String webUrl;
private String webUserAgent;
private Map<String, String > webHeaderMap;
private void initParse(String flag, boolean useParse, String playUrl, final String url) {
@ -1157,30 +1163,15 @@ public class PlayFragment extends BaseLazyFragment {
}
}
// void loadUrl(String url) {
// requireActivity().runOnUiThread(new Runnable() {
// @Override
// public void run() {
// if (mXwalkWebView != null) {
// mXwalkWebView.stopLoading();
// mXwalkWebView.clearCache(true);
// mXwalkWebView.loadUrl(url);
// }
// if (mSysWebView != null) {
// mSysWebView.stopLoading();
// mSysWebView.clearCache(true);
// mSysWebView.loadUrl(url);
// }
// }
// });
// }
void loadUrl(String url) {
requireActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
if (mXwalkWebView != null) {
mXwalkWebView.stopLoading();
if(webUserAgent != null) {
mXwalkWebView.getSettings().setUserAgentString(webUserAgent);
}
//mXwalkWebView.clearCache(true);
if(webHeaderMap != null){
mXwalkWebView.loadUrl(url,webHeaderMap);
@ -1190,6 +1181,9 @@ public class PlayFragment extends BaseLazyFragment {
}
if (mSysWebView != null) {
mSysWebView.stopLoading();
if(webUserAgent != null) {
mSysWebView.getSettings().setUserAgentString(webUserAgent);
}
//mSysWebView.clearCache(true);
if(webHeaderMap != null){
mSysWebView.loadUrl(url,webHeaderMap);
@ -1330,7 +1324,7 @@ public class PlayFragment extends BaseLazyFragment {
//设置编码
settings.setDefaultTextEncodingName("utf-8");
settings.setUserAgentString(webView.getSettings().getUserAgentString());
// settings.setUserAgentString(ANDROID_UA);
// settings.setUserAgentString(ANDROID_UA);
webView.setWebChromeClient(new WebChromeClient() {
@Override

@ -25,6 +25,7 @@ import com.github.tvbox.osc.ui.activity.SettingActivity;
import com.github.tvbox.osc.ui.adapter.HomeHotVodAdapter;
import com.github.tvbox.osc.util.FastClickCheckUtil;
import com.github.tvbox.osc.util.HawkConfig;
import com.github.tvbox.osc.util.UA;
import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
@ -201,11 +202,17 @@ public class UserFragment extends BaseLazyFragment implements View.OnClickListen
if (requestDay.equals(today)) {
String json = Hawk.get("home_hot", "");
if (!json.isEmpty()) {
adapter.setNewData(loadHots(json));
return;
ArrayList<Movie.Video> hotMovies = loadHots(json);
if (hotMovies != null && hotMovies.size() > 0) {
adapter.setNewData(hotMovies);
return;
}
}
}
OkGo.<String>get("https://movie.douban.com/j/new_search_subjects?sort=U&range=0,10&tags=&playable=1&start=0&year_range=" + year + "," + year).execute(new AbsCallback<String>() {
String doubanUrl = "https://movie.douban.com/j/new_search_subjects?sort=U&range=0,10&tags=&playable=1&start=0&year_range=" + year + "," + year;
OkGo.<String>get(doubanUrl)
.headers("User-Agent", UA.randomOne())
.execute(new AbsCallback<String>() {
@Override
public void onSuccess(Response<String> response) {
String netJson = response.body();

@ -9,7 +9,7 @@ import java.io.InputStream;
import java.util.Random;
public class UA {
/*
private static String[] uas = new String[]{
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36",
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4557.4 Safari/537.36",
@ -5419,57 +5419,11 @@ public class UA {
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36",
};
public static void writeToFile() {
try {
FileOutputStream fos = new FileOutputStream("/sdcard/ua.db");
DataOutputStream dos = new DataOutputStream(fos);
dos.writeInt(uas.length);
for (int i = 0; i < uas.length; i++) {
dos.writeInt(0);
}
int strOffset = 0;
for (int i = 0; i < uas.length; i++) {
long oldPos = fos.getChannel().position();
dos.writeUTF(uas[i]);
long newPos = fos.getChannel().position();
fos.getChannel().position(4 + (i * 4));
dos.writeInt(strOffset);
strOffset += newPos - oldPos;
fos.getChannel().position(newPos);
}
dos.flush();
dos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static String randomOne() {
try {
FileInputStream fis = new FileInputStream("/sdcard/ua.db");
DataInputStream dis = new DataInputStream(fis);
int len = dis.readInt();
int random = new Random().nextInt(len);
int skipLen = 4 + random * 4;
fis.getChannel().position(0);
fis.getChannel().position(skipLen);
int offset = dis.readInt();
int strOffset = 4 + 4 * len + offset;
fis.getChannel().position(0);
fis.getChannel().position(strOffset);
String s = dis.readUTF();
return s;
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
int num = uas.length;
int key = (int)(Math.random()*num);
return uas[key];
}
*/
public static String random() {
try {

Loading…
Cancel
Save