pull/142/head
FongMi 2 years ago
parent 5974f25040
commit 5a7329990b
  1. 22
      app/src/main/java/com/fongmi/android/tv/bean/Flag.java
  2. 6
      app/src/main/java/com/fongmi/android/tv/model/SiteViewModel.java
  3. 19
      app/src/main/java/com/fongmi/android/tv/player/Source.java
  4. 9
      app/src/main/java/com/fongmi/android/tv/utils/ResUtil.java
  5. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java
  6. 8
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java

@ -118,22 +118,24 @@ public class Flag implements Parcelable {
return strict ? null : getEpisodes().get(0);
}
public static List<Flag> create(String flag, String name, String url) {
Flag item = Flag.create(flag);
item.getEpisodes().add(Episode.create(name, url));
return List.of(item);
}
public List<Magnet> getMagnet() {
Iterator<Episode> iterator = getEpisodes().iterator();
List<Magnet> items = new ArrayList<>();
while (iterator.hasNext()) {
String url = iterator.next().getUrl();
if (!Sniffer.isThunder(url)) continue;
items.add(Magnet.get(url));
iterator.remove();
}
while (iterator.hasNext()) addMagnet(iterator, items);
return items;
}
public static List<Flag> create(String flag, String name, String url) {
Flag item = Flag.create(flag);
item.getEpisodes().add(Episode.create(name, url));
return List.of(item);
private void addMagnet(Iterator<Episode> iterator, List<Magnet> items) {
String url = iterator.next().getUrl();
if (!Sniffer.isThunder(url)) return;
items.add(Magnet.get(url));
iterator.remove();
}
@Override

@ -156,7 +156,7 @@ public class SiteViewModel extends ViewModel {
ApiConfig.get().setRecent(site);
Result result = Result.fromJson(playerContent);
if (result.getFlag().isEmpty()) result.setFlag(flag);
result.setUrl(Source.get().fetch(result.getUrl().v()));
result.setUrl(Source.get().fetch(result));
result.setKey(key);
return result;
} else if (site.getType() == 4) {
@ -167,13 +167,13 @@ public class SiteViewModel extends ViewModel {
SpiderDebug.log(playerContent);
Result result = Result.fromJson(playerContent);
if (result.getFlag().isEmpty()) result.setFlag(flag);
result.setUrl(Source.get().fetch(result.getUrl().v()));
result.setUrl(Source.get().fetch(result));
return result;
} else if (site.isEmpty() && key.equals("push_agent")) {
Result result = new Result();
result.setParse(0);
result.setFlag(flag);
result.setUrl(Source.get().fetch(result.getUrl().v()));
result.setUrl(Source.get().fetch(result));
return result;
} else {
Url url = Url.create().add(id);

@ -1,5 +1,6 @@
package com.fongmi.android.tv.player;
import com.fongmi.android.tv.bean.Result;
import com.fongmi.android.tv.player.extractor.BiliBili;
import com.fongmi.android.tv.player.extractor.Force;
import com.fongmi.android.tv.player.extractor.JianPian;
@ -37,11 +38,23 @@ public class Source {
extractors.add(new ZLive());
}
public String fetch(String url) throws Exception {
private Extractor getExtractor(String url) {
String host = Util.host(url);
String scheme = Util.scheme(url);
for (Extractor extractor : extractors) if (extractor.match(scheme, host)) return extractor.fetch(url.trim());
return url;
for (Extractor extractor : extractors) if (extractor.match(scheme, host)) return extractor;
return null;
}
public String fetch(Result result) throws Exception {
String url = result.getUrl().v();
Extractor extractor = getExtractor(url);
if (extractor != null) result.setParse(0);
return extractor == null ? url : extractor.fetch(url.trim());
}
public String fetch(String url) throws Exception {
Extractor extractor = getExtractor(url);
return extractor == null ? url : extractor.fetch(url.trim());
}
public void stop() {

@ -1,6 +1,5 @@
package com.fongmi.android.tv.utils;
import android.app.Activity;
import android.content.Context;
import android.content.res.Configuration;
import android.content.res.Resources;
@ -86,12 +85,8 @@ public class ResUtil {
return e.getRawX() < edge || e.getRawX() > getScreenWidthNav() - edge || e.getRawY() < edge || e.getRawY() > getScreenHeightNav() - edge;
}
public static boolean isLand(Activity activity) {
return activity.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE;
}
public static boolean isPort(Activity activity) {
return activity.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT;
public static boolean isLand() {
return App.get().getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE;
}
public static int sp2px(int sp) {

@ -301,7 +301,7 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List
private void onRotate() {
setR1Callback();
setRotate(!isRotate());
setRequestedOrientation(ResUtil.isLand(this) ? ActivityInfo.SCREEN_ORIENTATION_USER_PORTRAIT : ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
setRequestedOrientation(ResUtil.isLand() ? ActivityInfo.SCREEN_ORIENTATION_USER_PORTRAIT : ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
}
private void onTrack(View view) {

@ -371,7 +371,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
private void setVideoView() {
mPlayers.set(getExo(), getIjk());
if (isPort() && ResUtil.isLand(this)) enterFullscreen();
if (isPort() && ResUtil.isLand()) enterFullscreen();
getExo().getSubtitleView().setStyle(ExoUtil.getCaptionStyle());
getIjk().getSubtitleView().setStyle(ExoUtil.getCaptionStyle());
setSubtitle(14);
@ -666,7 +666,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
private void onRotate() {
setR1Callback();
setRotate(!isRotate());
setRequestedOrientation(ResUtil.isLand(this) ? ActivityInfo.SCREEN_ORIENTATION_USER_PORTRAIT : ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
setRequestedOrientation(ResUtil.isLand() ? ActivityInfo.SCREEN_ORIENTATION_USER_PORTRAIT : ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
}
private void onSetting() {
@ -830,13 +830,13 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
private int getLockOrient() {
if (isLock()) {
return ResUtil.isLand(this) ? ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE : ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT;
return ResUtil.isLand() ? ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE : ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT;
} else if (isRotate()) {
return ActivityInfo.SCREEN_ORIENTATION_USER_PORTRAIT;
} else if (isPort() && Utils.isAutoRotate()) {
return ActivityInfo.SCREEN_ORIENTATION_FULL_USER;
} else {
return ResUtil.isLand(this) ? ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE : ActivityInfo.SCREEN_ORIENTATION_USER_PORTRAIT;
return ResUtil.isLand() ? ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE : ActivityInfo.SCREEN_ORIENTATION_USER_PORTRAIT;
}
}

Loading…
Cancel
Save